内表行操作逻辑
来源:互联网 发布:php set timezone 编辑:程序博客网 时间:2024/04/30 00:53
LOOP AT GT_ITAB INTO GW_ITAB.
GW_ITAB-POPER = GW_ITAB-BLDAT+4(2).
IF GW_ITAB-BUKRS IN S_RATE OR GW_ITAB-DFZGS IN S_RATE.
GW_ITAB-RATE = '0.009'.
ELSE.
GW_ITAB-RATE = '0.008'.
ENDIF.
IF SY-TABIX = 1.
"若是第一行,余额不用算,只需要取下一行,计算计息天数,计算利息
CLEAR LW_ITAB.
CLEAR LV_LINE.
LV_LINE = SY-TABIX + 1.
READ TABLE GT_ITAB INTO LW_ITAB INDEX LV_LINE.
IF SY-SUBRC = 0.
GW_ITAB-DAY = LW_ITAB-BLDAT - GW_ITAB-BLDAT.
GW_ITAB-LIXI = GW_ITAB-DMBTR * GW_ITAB-DAY * GW_ITAB-RATE / 30.
ELSE.
IF LINES( GT_ITAB ) = 1.
CLEAR LV_LASTDAY.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = GW_ITAB-BLDAT
IMPORTING
E_DATE = LV_LASTDAY.
GW_ITAB-DAY = LV_LASTDAY - GW_ITAB-BLDAT + 1.
GW_ITAB-LIXI = GW_ITAB-DMBTR * GW_ITAB-DAY * GW_ITAB-RATE / 30.
ENDIF.
ENDIF.
ELSE.
CLEAR LW_ITAB.
CLEAR LV_LINE.
LV_LINE = SY-TABIX + 1.
READ TABLE GT_ITAB INTO LW_ITAB INDEX LV_LINE.
IF SY-SUBRC = 0.
GW_ITAB-DAY = LW_ITAB-BLDAT - GW_ITAB-BLDAT.
ELSE.
"当处于内表最后一行时候,取值失败,计息天数为当月总天数 - 当前日期 + 1
CLEAR LV_LASTDAY.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = GW_ITAB-BLDAT
IMPORTING
E_DATE = LV_LASTDAY.
GW_ITAB-DAY = LV_LASTDAY - GW_ITAB-BLDAT + 1.
ENDIF.
"第二行开始的余额要根据第一行的余额 + 借方 - 贷方 得到
CLEAR LW_ITAB.
LV_LINE = LV_LINE - 2."上一行
READ TABLE GT_ITAB INTO LW_ITAB INDEX LV_LINE.
IF SY-SUBRC = 0.
GW_ITAB-DMBTR = LW_ITAB-DMBTR + GW_ITAB-DMBTRS - GW_ITAB-DMBTRH.
GW_ITAB-LIXI = GW_ITAB-DMBTR * GW_ITAB-DAY * GW_ITAB-RATE / 30 + LW_ITAB-LIXI.
ENDIF.
ENDIF.
MODIFY GT_ITAB FROM GW_ITAB.
ENDLOOP.
GW_ITAB-POPER = GW_ITAB-BLDAT+4(2).
IF GW_ITAB-BUKRS IN S_RATE OR GW_ITAB-DFZGS IN S_RATE.
GW_ITAB-RATE = '0.009'.
ELSE.
GW_ITAB-RATE = '0.008'.
ENDIF.
IF SY-TABIX = 1.
"若是第一行,余额不用算,只需要取下一行,计算计息天数,计算利息
CLEAR LW_ITAB.
CLEAR LV_LINE.
LV_LINE = SY-TABIX + 1.
READ TABLE GT_ITAB INTO LW_ITAB INDEX LV_LINE.
IF SY-SUBRC = 0.
GW_ITAB-DAY = LW_ITAB-BLDAT - GW_ITAB-BLDAT.
GW_ITAB-LIXI = GW_ITAB-DMBTR * GW_ITAB-DAY * GW_ITAB-RATE / 30.
ELSE.
IF LINES( GT_ITAB ) = 1.
CLEAR LV_LASTDAY.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = GW_ITAB-BLDAT
IMPORTING
E_DATE = LV_LASTDAY.
GW_ITAB-DAY = LV_LASTDAY - GW_ITAB-BLDAT + 1.
GW_ITAB-LIXI = GW_ITAB-DMBTR * GW_ITAB-DAY * GW_ITAB-RATE / 30.
ENDIF.
ENDIF.
ELSE.
CLEAR LW_ITAB.
CLEAR LV_LINE.
LV_LINE = SY-TABIX + 1.
READ TABLE GT_ITAB INTO LW_ITAB INDEX LV_LINE.
IF SY-SUBRC = 0.
GW_ITAB-DAY = LW_ITAB-BLDAT - GW_ITAB-BLDAT.
ELSE.
"当处于内表最后一行时候,取值失败,计息天数为当月总天数 - 当前日期 + 1
CLEAR LV_LASTDAY.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
I_DATE = GW_ITAB-BLDAT
IMPORTING
E_DATE = LV_LASTDAY.
GW_ITAB-DAY = LV_LASTDAY - GW_ITAB-BLDAT + 1.
ENDIF.
"第二行开始的余额要根据第一行的余额 + 借方 - 贷方 得到
CLEAR LW_ITAB.
LV_LINE = LV_LINE - 2."上一行
READ TABLE GT_ITAB INTO LW_ITAB INDEX LV_LINE.
IF SY-SUBRC = 0.
GW_ITAB-DMBTR = LW_ITAB-DMBTR + GW_ITAB-DMBTRS - GW_ITAB-DMBTRH.
GW_ITAB-LIXI = GW_ITAB-DMBTR * GW_ITAB-DAY * GW_ITAB-RATE / 30 + LW_ITAB-LIXI.
ENDIF.
ENDIF.
MODIFY GT_ITAB FROM GW_ITAB.
ENDLOOP.
1 0
- 内表行操作逻辑
- 逻辑操作
- 逻辑操作
- 逻辑操作类指令
- shell 逻辑操作
- MongoDB 逻辑与操作
- PHP逻辑操作符
- 缓存操作流程逻辑
- 逻辑操作符
- MongoDB_逻辑操作符
- R语言-逻辑操作
- ORACLE逻辑操作符
- Python逻辑操作符
- mysql逻辑操作符
- 算数和逻辑操作
- 逻辑操作符
- 逻辑或操作符
- 逻辑非操作符
- 整数循环节求和-华为机试题
- HTML5 & CSS3初学者指南(1) – 编写第一行代码
- 第十五周-OJ-D字符串长度
- 解决服务器windows主机显示本地连接网络电缆没插好问题
- java springmvc mybaits maven shiro
- 内表行操作逻辑
- 字节流与字符流的区别
- 其他应收款的贷方是什么意思?借方又表示什么意思?
- HDU 3529 Bomberman - Just Search!(DLX可重复覆盖)
- Go语言中使用MySql数据库
- 关于lxml.cssselect
- 第十五周-OJ-E连接字符串
- 欢迎使用CSDN-markdown编辑器
- 触发器、存储过程的建立与使用—实验报告