LOOP AT GT_DATA ASSIGNING FIELD-SYMBOL(<LS_DATA>).
* Code
ENDLOOP.
LOOP AT GT_DATA INTO DATA(LS_DATA).
* Code
ENDLOOP.
FIELD-SYMBOLS: <LS_DATA> LIKE LINE OF GT_DATA .
LOOP AT GT_DATA ASSIGNING <LS_DATA>.
* Code
ENDLOOP.
* ORR
data: LS_DATA LIKE LINE OF GT_DATA .
LOOP AT GT_DATA INTO LS_DATA.
* Code
ENDLOOP.
IF <LS_DATA>-NUM IS NOT INITIAL.
APPEND VALUE #( BUKRS = <LS_DATA>-BUK
BELNR = <LS_DATA>-BEL
GJAHR = <LS_DATA>-YR ) TO GT_DOC.
ENDIF.
DATA: LS_DOC LIKE LINE OF GT_DOC.
IF <LS_DATA>-NUM IS NOT INITIAL.
LS_DOC-BUKRS = <LS_DATA>-BUK.
LS_DOC-BELNR = <LS_DATA>-BEL.
LS_DOC-GJAHR = <LS_DATA>-YR.
APPEND LS_DOC TO GT_DOC.
ENDIF.
DATA(LT_DATA) = FILTER #( GT_DATA WHERE BUKRS = CONV #( CS_DATA-BUK )
AND BELNR = CONV #( CS_DATA-BEL )
AND GJAHR = CONV #( CS_DATA-YR ) ).
DATA: LT_DATA LIKE GT_DATA.
DATA: LS_DATA LIKE LINE OF GT_DATA.
DATA:LS_BUKRS TYPE BUKRS,
LS_BELNR TYPE BELNR,
LS_GJAHR TYPE GJAHR.
LS_BUKRS = CS_DATA-BUK.
LS_BELNR = CS_DATA-BEL.
LS_GJAHR = CS_DATA-YR.
LOOP AT GT_DATA INTO LS_DATA WHERE BUKRS = LS_BUKRS
AND BELNR = LS_BELNR
AND GJAHR = LS_GJAHR.
APPEND LS_DATA TO LT_DATA.
ENDLOOP.
GS_DATA-TAX = REDUCE #( INIT LV_TAX TYPE BSET-HWSTE
FOR LS_DATA IN LT_DATA
NEXT LV_TAX = LV_TAX + COND #
(
WHEN LS_DATA-SHKZG = CS_DATA-DEBIT THEN LS_DATA-HWSTE
WHEN LS_DATA-SHKZG = CS_DATA-CREDIT THEN ( LS_DATA-HWSTE * -1 )
)
).
DATA: LV_TAX TYPE BSET-HWSTE.
DATA: LS_DATA LIKE LINE OF LT_DATA.
LOOP AT LT_DATA INTO LS_DATA.
IF LS_DATA-SHKZG = CS_DATA-DEBIT.
LV_TAX = LV_TAX + LS_DATA-HWSTE.
ELSEIF LS_DATA-SHKZG = CS_DATA-CREDIT.
LV_TAX = LV_TAX + ( LS_DATA-HWSTE * -1 ).
ENDIF.
ENDLOOP.
GS_DATA-TAX = LV_TAX.
LOOP AT GT_DATA INTO LS_DATA WHERE VAR1 = ABAP_TRUE
AND VAR2 IS NOT INITIAL
GROUP BY ( BUKRS = LS_DATA-BUKRS
BELNR = LS_DATA-BELNR
GJHAR = LS_DATA-GJHAR
INDEX = GROUP INDEX )
ASCENDING
ASSIGNING FIELD-SYMBOL(<LT_GRP>).
* Code
LOOP AT GROUP <LT_GRP> ASSIGNING FIELD-SYMBOL(<LS_GRP_DATA>).
* Code
ENDLOOP.
* Code
ENDLOOP.
FIELD-SYMBOL: <LS_GRP_DATA> LIKE LINE OF GT_DATA.
DATA: GT_HEADER_DATA LIKE GT_DATA.
GT_HEADER_DATA[] = GT_DATA[].
SORT GT_HEADER_DATA BY BUKRS
BELNR
GJHAR.
DELETE ADJECENT DUPLICATES FROM GT_HEADER_DATA COMPARING BUKRS
BELNR
GJHAR.
LOOP AT GT_HEADER_DATA INTO LS_DATA WHERE VAR1 = ABAP_TRUE
AND VAR2 IS NOT INITIAL.
* Code
LOOP AT GT_DATA ASSIGNING <LS_GRP_DATA> WHERE VAR1 = ABAP_TRUE
AND VAR2 IS NOT INITIAL
AND BUKRS = LS_DATA-BUKRS
AND BELNR = LS_DATA-BELNR
AND GJHAR = LS_DATA-GJHAR.
* Code
ENDLOOP.
* Code
ENDLOOP.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
7 | |
6 | |
4 | |
3 | |
3 | |
2 | |
2 | |
2 | |
2 |