入账科目不一致需求

56 篇文章 0 订阅

 

 

TYPES:
      BEGIN OF ty_ZACCOUNT,
          FLAG           TYPE /BI0/OIFLAG,
         /BIC/ZACCOUN2           TYPE /BIC/OIZACCOUN2,
        /BIC/ZACCOUNT           TYPE /BIC/OIZACCOUNT,
      END   OF TY_ZACCOUNT.
DATA: LT_ZACCOUNT       TYPE STANDARD TABLE OF TY_ZACCOUNT
                        WITH NON-UNIQUE DEFAULT KEY.
DATA: LW_ZACCOUNT LIKE LINE OF  LT_ZACCOUNT .

DATA:  LW_result TYPE _ty_s_TG_1,
       LW_result2 TYPE _ty_s_TG_1,
       LW_result3 TYPE _ty_s_TG_1,
       LW_RESULT5 TYPE _ty_s_TG_1,
       LT_result TYPE _ty_t_TG_1,
       LT_result2 TYPE _ty_t_TG_1.
DATA: LT_RESULT3 TYPE STANDARD TABLE OF  /BIC/AZFGLBPX00 WITH
NON-UNIQUE DEFAULT KEY.
DATA: LW_RESULT4 TYPE   /BIC/AZFGLBPX00.

BREAK-POINT.
SELECT FLAG /BIC/ZACCOUN2  /BIC/ZACCOUNT
FROM /BIC/AZKCMX_YM00
INTO TABLE  LT_ZACCOUNT
FOR ALL ENTRIES IN RESULT_PACKAGE
WHERE /BIC/ZACCOUN2 = RESULT_PACKAGE-/BIC/ZACCOUNT
  .

LOOP AT LT_ZACCOUNT INTO LW_ZACCOUNT.
LOOP AT RESULT_PACKAGE INTO LW_RESULT  WHERE /BIC/ZACCOUNT  =
LW_ZACCOUNT-/BIC/ZACCOUN2.
CLEAR LW_RESULT-/BIC/ZINTERCO.
CLEAR LW_RESULT-RECORD.
COLLECT LW_RESULT INTO  LT_RESULT."压缩表,用于计算余额
ENDLOOP.
ENDLOOP.
CLEAR LW_ZACCOUNT.
 CLEAR LW_RESULT.

LOOP AT RESULT_PACKAGE INTO LW_RESULT2.
LOOP AT LT_RESULT INTO LW_RESULT
WHERE /BIC/ZACCOUNT = LW_RESULT2-/BIC/ZACCOUNT AND
/BIC/ZENTITY  = LW_RESULT2-/BIC/ZENTITY AND
/BIC/ZTIME = LW_RESULT2-/BIC/ZTIME  AND
/BIC/ZAUDITTRA    = LW_RESULT2-/BIC/ZAUDITTRA AND
/BIC/ZCATEGORY    = LW_RESULT2-/BIC/ZCATEGORY AND
/BIC/ZFLOW      = LW_RESULT2-/BIC/ZFLOW AND
/BIC/ZRPTCURRE  = LW_RESULT2-/BIC/ZRPTCURRE AND
/BIC/ZYL01   = LW_RESULT2-/BIC/ZYL01 AND
/BIC/ZYL02 = LW_RESULT2-/BIC/ZYL02 AND
/BIC/ZBP = LW_RESULT2-/BIC/ZBP     AND
/BIC/ZSCOPE = LW_RESULT2-/BIC/ZSCOPE.

IF LW_RESULT-BALANCE > 0 .
READ TABLE  LT_ZACCOUNT INTO LW_ZACCOUNT WITH KEY /BIC/ZACCOUN2  =
LW_RESULT-/BIC/ZACCOUNT FLAG = 'X'.
IF SY-SUBRC = 0.

LW_RESULT3-/BIC/ZACCOUNT = LW_RESULT2-/BIC/ZACCOUNT.
LW_RESULT3-/BIC/ZENTITY  = LW_RESULT2-/BIC/ZENTITY.
LW_RESULT3-/BIC/ZINTERCO = LW_RESULT2-/BIC/ZINTERCO.
LW_RESULT3-/BIC/ZTIME  = LW_RESULT2-/BIC/ZTIME .
LW_RESULT3-/BIC/ZAUDITTRA    = LW_RESULT2-/BIC/ZAUDITTRA   .
LW_RESULT3-/BIC/ZCATEGORY    = LW_RESULT2-/BIC/ZCATEGORY   .
LW_RESULT3-/BIC/ZFLOW      = LW_RESULT2-/BIC/ZFLOW    .
LW_RESULT3-/BIC/ZRPTCURRE  = LW_RESULT2-/BIC/ZRPTCURRE .
LW_RESULT3-/BIC/ZYL01   = LW_RESULT2-/BIC/ZYL01  .
LW_RESULT3-/BIC/ZYL02 = LW_RESULT2-/BIC/ZYL02.
LW_RESULT3-/BIC/ZBP = LW_RESULT2-/BIC/ZBP.
LW_RESULT3-/BIC/ZSCOPE = LW_RESULT2-/BIC/ZSCOPE.
LW_RESULT3-BALANCE = 0.
LW_RESULT3-CURRENCY = LW_RESULT2-CURRENCY.

APPEND LW_RESULT3 TO LT_RESULT2." 原来的balance清零
LW_RESULT2-/BIC/ZACCOUNT = LW_ZACCOUNT-/BIC/ZACCOUNT."改科目号
CLEAR LW_RESULT2-RECORD.
APPEND LW_RESULT2 TO LT_RESULT2.

***将原来数据清零,
SELECT * FROM /BIC/AZFGLBPX00
INTO TABLE LT_RESULT3
FOR ALL ENTRIES IN LT_ZACCOUNT
WHERE /BIC/ZACCOUNT = LT_ZACCOUNT-/BIC/ZACCOUNT AND
  /BIC/ZENTITY  = LW_RESULT2-/BIC/ZENTITY AND
/BIC/ZTIME = LW_RESULT2-/BIC/ZTIME  AND
/BIC/ZAUDITTRA    = LW_RESULT2-/BIC/ZAUDITTRA AND
/BIC/ZCATEGORY    = LW_RESULT2-/BIC/ZCATEGORY AND
/BIC/ZFLOW      = LW_RESULT2-/BIC/ZFLOW AND
/BIC/ZRPTCURRE  = LW_RESULT2-/BIC/ZRPTCURRE AND
/BIC/ZYL01   = LW_RESULT2-/BIC/ZYL01 AND
/BIC/ZYL02 = LW_RESULT2-/BIC/ZYL02 AND
/BIC/ZBP = LW_RESULT2-/BIC/ZBP     AND
/BIC/ZSCOPE = LW_RESULT2-/BIC/ZSCOPE.

LOOP AT LT_RESULT3 INTO LW_RESULT4.
LW_RESULT4-BALANCE = 0.
"CLEAR LW_RESULT4-RECORD.
CLEAR LW_RESULT4-RECORDMODE.
MOVE-CORRESPONDING LW_RESULT4 TO LW_RESULT5.
APPEND LW_RESULT5 TO LT_RESULT2.
ENDLOOP.


ENDIF.
ELSEIF LW_RESULT-BALANCE < 0 .
IF   LW_RESULT2-/BIC/ZACCOUNT = '2221011200'.
READ TABLE  LT_ZACCOUNT INTO LW_ZACCOUNT WITH KEY /BIC/ZACCOUN2  =
LW_RESULT-/BIC/ZACCOUNT FLAG = 'Y'

.
IF SY-SUBRC = 0.

LW_RESULT3-/BIC/ZACCOUNT = LW_RESULT2-/BIC/ZACCOUNT.
LW_RESULT3-/BIC/ZENTITY  = LW_RESULT2-/BIC/ZENTITY.
LW_RESULT3-/BIC/ZINTERCO = LW_RESULT2-/BIC/ZINTERCO.
LW_RESULT3-/BIC/ZTIME  = LW_RESULT2-/BIC/ZTIME .
LW_RESULT3-/BIC/ZAUDITTRA    = LW_RESULT2-/BIC/ZAUDITTRA   .
LW_RESULT3-/BIC/ZCATEGORY    = LW_RESULT2-/BIC/ZCATEGORY   .
LW_RESULT3-/BIC/ZFLOW      = LW_RESULT2-/BIC/ZFLOW    .
LW_RESULT3-/BIC/ZRPTCURRE  = LW_RESULT2-/BIC/ZRPTCURRE .
LW_RESULT3-/BIC/ZYL01   = LW_RESULT2-/BIC/ZYL01  .
LW_RESULT3-/BIC/ZYL02 = LW_RESULT2-/BIC/ZYL02.
LW_RESULT3-/BIC/ZBP = LW_RESULT2-/BIC/ZBP.
LW_RESULT3-/BIC/ZSCOPE = LW_RESULT2-/BIC/ZSCOPE.
LW_RESULT3-BALANCE = 0.
LW_RESULT3-CURRENCY = LW_RESULT2-CURRENCY.

APPEND LW_RESULT3 TO LT_RESULT2.
LW_RESULT2-/BIC/ZACCOUNT = LW_ZACCOUNT-/BIC/ZACCOUNT.
CLEAR LW_RESULT2-RECORD.
APPEND LW_RESULT2 TO LT_RESULT2.
ENDIF.
***将原来数据清零-1
SELECT * FROM /BIC/AZFGLBPX00
INTO TABLE LT_RESULT3
FOR ALL ENTRIES IN LT_ZACCOUNT
WHERE /BIC/ZACCOUNT = LT_ZACCOUNT-/BIC/ZACCOUNT
AND /BIC/ZENTITY  = LW_RESULT2-/BIC/ZENTITY AND
/BIC/ZTIME = LW_RESULT2-/BIC/ZTIME  AND
/BIC/ZAUDITTRA    = LW_RESULT2-/BIC/ZAUDITTRA AND
/BIC/ZCATEGORY    = LW_RESULT2-/BIC/ZCATEGORY AND
/BIC/ZFLOW      = LW_RESULT2-/BIC/ZFLOW AND
/BIC/ZRPTCURRE  = LW_RESULT2-/BIC/ZRPTCURRE AND
/BIC/ZYL01   = LW_RESULT2-/BIC/ZYL01 AND
/BIC/ZYL02 = LW_RESULT2-/BIC/ZYL02 AND
/BIC/ZBP = LW_RESULT2-/BIC/ZBP     AND
/BIC/ZSCOPE = LW_RESULT2-/BIC/ZSCOPE.

LOOP AT LT_RESULT3 INTO LW_RESULT4.
LW_RESULT4-BALANCE = 0.
"CLEAR LW_RESULT4-RECORD.
CLEAR LW_RESULT4-RECORDMODE.
MOVE-CORRESPONDING LW_RESULT4 TO LW_RESULT5.
APPEND LW_RESULT5 TO LT_RESULT2.
ENDLOOP.

ENDIF.
***将原来数据清零-2
SELECT * FROM /BIC/AZFGLBPX00
INTO TABLE LT_RESULT3
FOR ALL ENTRIES IN LT_ZACCOUNT
WHERE /BIC/ZACCOUNT = LT_ZACCOUNT-/BIC/ZACCOUNT AND
 /BIC/ZENTITY  = LW_RESULT2-/BIC/ZENTITY AND
/BIC/ZTIME = LW_RESULT2-/BIC/ZTIME  AND
/BIC/ZAUDITTRA    = LW_RESULT2-/BIC/ZAUDITTRA AND
/BIC/ZCATEGORY    = LW_RESULT2-/BIC/ZCATEGORY AND
/BIC/ZFLOW      = LW_RESULT2-/BIC/ZFLOW AND
/BIC/ZRPTCURRE  = LW_RESULT2-/BIC/ZRPTCURRE AND
/BIC/ZYL01   = LW_RESULT2-/BIC/ZYL01 AND
/BIC/ZYL02 = LW_RESULT2-/BIC/ZYL02 AND
/BIC/ZBP = LW_RESULT2-/BIC/ZBP     AND
/BIC/ZSCOPE = LW_RESULT2-/BIC/ZSCOPE..

LOOP AT LT_RESULT3 INTO LW_RESULT4.
LW_RESULT4-BALANCE = 0.
"CLEAR LW_RESULT4-RECORD.
CLEAR LW_RESULT4-RECORDMODE.
MOVE-CORRESPONDING LW_RESULT4 TO LW_RESULT5.
APPEND LW_RESULT5 TO LT_RESULT2.
ENDLOOP.
*****将原来数据清零-2

  APPEND LW_RESULT2 TO LT_RESULT2.
ELSE." BALANCE = 0
  APPEND LW_RESULT2 TO LT_RESULT2.
ENDIF.
ENDLOOP.
ENDLOOP.

CLEAR LW_RESULT4.
CLEAR LW_RESULT5.

***将原来数据清零,
*SELECT * FROM /BIC/AZFGLBPX00
*INTO TABLE LT_RESULT3
*FOR ALL ENTRIES IN LT_ZACCOUNT
*WHERE /BIC/ZACCOUNT = LT_ZACCOUNT-/BIC/ZACCOUNT.
*
*LOOP AT LT_RESULT3 INTO LW_RESULT4.
*LW_RESULT4-BALANCE = 0.
*"CLEAR LW_RESULT4-RECORD.
*CLEAR LW_RESULT4-RECORDMODE.
*MOVE-CORRESPONDING LW_RESULT4 TO LW_RESULT5.
*APPEND LW_RESULT5 TO LT_RESULT2.
*ENDLOOP.
*****将原来数据清零

CLEAR LT_RESULT.
CLEAR LW_RESULT. CLEAR LW_RESULT4.
CLEAR LT_RESULT3.
LOOP AT LT_RESULT2 INTO LW_RESULT.
LW_RESULT4-/BIC/ZACCOUNT = LW_RESULT-/BIC/ZACCOUNT.
LW_RESULT4-/BIC/ZENTITY  = LW_RESULT-/BIC/ZENTITY.
LW_RESULT4-/BIC/ZINTERCO = LW_RESULT-/BIC/ZINTERCO.
LW_RESULT4-/BIC/ZTIME  = LW_RESULT-/BIC/ZTIME .
LW_RESULT4-/BIC/ZAUDITTRA    = LW_RESULT-/BIC/ZAUDITTRA   .
LW_RESULT4-/BIC/ZCATEGORY    = LW_RESULT-/BIC/ZCATEGORY   .
LW_RESULT4-/BIC/ZFLOW      = LW_RESULT-/BIC/ZFLOW    .
LW_RESULT4-/BIC/ZRPTCURRE  = LW_RESULT-/BIC/ZRPTCURRE .
LW_RESULT4-/BIC/ZYL01   = LW_RESULT2-/BIC/ZYL01  .
LW_RESULT4-/BIC/ZYL02 = LW_RESULT-/BIC/ZYL02.
LW_RESULT4-/BIC/ZBP = LW_RESULT-/BIC/ZBP.
LW_RESULT4-/BIC/ZSCOPE = LW_RESULT-/BIC/ZSCOPE.
LW_RESULT4-BALANCE = LW_RESULT-BALANCE.
LW_RESULT4-CURRENCY = LW_RESULT-CURRENCY.

COLLECT LW_RESULT4 INTO LT_RESULT3.
ENDLOOP.


CLEAR RESULT_PACKAGE.
MOVE-CORRESPONDING  LT_RESULT3[] TO RESULT_PACKAGE.

DATA: I_RECORD TYPE I.

I_RECORD = 0.
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
I_RECORD = I_RECORD + 1.
 <RESULT_FIELDS>-RECORD = I_RECORD.
 ENDLOOP.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值