内表行操作逻辑
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 .
?????? "若是第一行,余額不用算,只需要取下一行,計算計息天數(shù),計算利息
?????? 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 .
???????? "當(dāng)處于內(nèi)表最后一行時候,取值失敗,計息天數(shù)為當(dāng)月總天數(shù)?-?當(dāng)前日期?+?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 .
?????? "第二行開始的余額要根據(jù)第一行的余額?+?借方?-?貸方?得到
?????? 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 .
?????? "若是第一行,余額不用算,只需要取下一行,計算計息天數(shù),計算利息
?????? 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 .
???????? "當(dāng)處于內(nèi)表最后一行時候,取值失敗,計息天數(shù)為當(dāng)月總天數(shù)?-?當(dāng)前日期?+?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 .
?????? "第二行開始的余額要根據(jù)第一行的余額?+?借方?-?貸方?得到
?????? 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 .
總結(jié)
- 上一篇: SAP导出Excel错点拒绝处理
- 下一篇: BI工具选型指标,如何选择好的BI工具