SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
TYPES :BEGIN OF IT, BELNR TYPE RBKP-BELNR, BUKRS TYPE RBKP-BUKRS, GJAHR TYPE RBKP-GJAHR, LIFNR TYPE RBKP-LIFNR, BUDAT TYPE RBKP-BUDAT, blart TYPE RBKP-BLART, Xrech TYPE RBKP-Xrech, OBJKE TYPE BKPF-AWKEY, FI_NO TYPE BKPF-BELNR, Doc_Date TYPE BKPF-BLDAT, NAME1 TYPE T001W-NAME1, EBELN TYPE RSEG-EBELN, VEN_NAME TYPE LFA1-NAME1, STCD3 TYPE LFA1-STCD3, XBLNR TYPE RBKP-XBLNR, WERKS TYPE RSEG-WERKS, HWBAS TYPE bset-HWBAS, KBETR TYPE bset-KBETR, JIS TYPE bset-HWSTE, JIC TYPE bset-HWSTE, JII TYPE bset-HWSTE, JIU TYPE bset-HWSTE, DMBTR TYPE bseg-DMBTR, MENGE TYPE RSEG-MENGE, DMBTR_TAX TYPE BSEG-DMBTR, NOT TYPE STRING, BEZEI TYPE T005U-BEZEI, ORT01 TYPE lfa1-ORT01, SGTXT TYPE bseg-SGTXT, HSN_SAC TYPE bseg-HSN_SAC, END OF IT. DATA : IT001 TYPE TABLE OF IT. TYPES : BEGIN OF TAB, VBELN TYPE VBRK-VBELN, BUKRS TYPE VBRK-BUKRS, FKSTO TYPE VBRK-FKSTO, FKART TYPE VBRK-FKART, BLART TYPE VBRK-BLART, GJAHR TYPE VBRK-GJAHR, KUNAG TYPE VBRK-KUNAG, XBLNR TYPE VBRK-XBLNR, BELNR TYPE BSEG-BELNR, BUZEI TYPE BSEG-BUZEI, BLDAT TYPE BKPF-BLDAT, BUDAT TYPE BKPF-BUDAT, AUBEL TYPE VBRP-AUBEL, WERKS TYPE VBRP-WERKS, NAME1 TYPE T001W-NAME1, KUNNR TYPE KNA1-KUNNR, STCD3 TYPE KNA1-STCD3, NAME1_KNA1 TYPE KNA1-NAME1, KBETR TYPE bset-KBETR, JOS TYPE bset-HWSTE, JOC TYPE bset-HWSTE, JOI TYPE bset-HWSTE, JOU TYPE bset-HWSTE, MENGE TYPE bseg-MENGE, DMBTR TYPE bseg-DMBTR, HWBAS TYPE bseT-HWBAS, KBETR_KAB TYPE bseT-KBETR, DMBTR_TAX TYPE BSEG-DMBTR, NOT_NA TYPE STRING, BEZEI TYPE T005U-BEZEI, ORT01 TYPE lfa1-ORT01, SGTXT TYPE bseg-SGTXT, HSN_SAC TYPE bseg-HSN_SAC, END OF TAB. DATA : TAB001 TYPE TABLE OF TAB. ranges : r_blnr for bseg-belnr. ranges : r_blnr_fi for bseg-belnr. ranges : r_bu for bseg-bukrs. ranges : r_gj for bseg-gjahr. DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV, WA_LAYOUT TYPE SLIS_LAYOUT_ALV. SELECTION-SCREEN BEGIN OF BLOCK b2 ."WITH FRAME TITLE TEXT-002. SELECT-OPTIONS: s_bukrs FOR bseg-bukrs . SELECT-OPTIONS: p_Lifnr FOR rbkp-Lifnr MODIF ID G1 . SELECT-OPTIONS: P_VBELN FOR VBRK-VBELN MODIF ID G2. SELECT-OPTIONS: p_budat FOR rbkp-budat . SELECT-OPTIONS: p_GJAHR FOR rbkp-GJAHR . SELECTION-SCREEN END OF BLOCK b2 . SELECTION-SCREEN BEGIN OF BLOCK b1." WITH FRAME TITLE text. PARAMETERS :rad1 RADIOBUTTON GROUP rad USER-COMMAND frad1 DEFAULT 'X', rad2 RADIOBUTTON GROUP rad . SELECTION-SCREEN END OF BLOCK b1. AT SELECTION-SCREEN OUTPUT. IF rad1 = 'X'. LOOP AT SCREEN. IF screen-group1 = 'G1' . screen-active = '1'. ELSEIF screen-group1 = 'G2'. screen-active = '0'. ENDIF. MODIFY SCREEN. ENDLOOP. ELSEIF rad2 = 'X'. LOOP AT SCREEN. IF screen-group1 = 'G1' . screen-active = '0'. ELSEIF screen-group1 = 'G2'. screen-active = '1'. ENDIF. MODIFY SCREEN. ENDLOOP. ENDIF. clear sy-ucomm. START-OF-SELECTION. IF rad1 = 'X'. PERFORM get_data. PERFORM DISPLAY_DATA. ELSE . PERFORM get_data_0001. PERFORM DISPLAY_DATA_0001. ENDIF. *&---------------------------------------------------------------------* *& Form get_data *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* *& --> p1 text *& <-- p2 text *&---------------------------------------------------------------------* FORM get_data . SELECT A~belnr, A~GJAHR, A~BUKRS, A~LIFNR, A~BUDAT, A~blart, A~Xrech, A~XBLNR, b~WERKS, C~NAME1, B~EBELN, D~NAME1 AS VEN_NAME, D~STCD3, f~kbetr FROM rbkp AS A INNER JOIN RSEG AS B ON ( A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR AND A~BUKRS = B~BUKRS ) LEFT JOIN T001W AS C ON ( C~WERKS = B~WERKS ) LEFT JOIN LFA1 AS D ON ( D~lifnr = a~lifnr ) LEFT JOIN bset AS f ON ( f~BELNR = a~BELNR AND f~GJAHR = a~GJAHR AND f~BUKRS = a~BUKRS ) into CORRESPONDING FIELDS OF TABLE @it001 BYPASSING BUFFER WHERE a~bukrs in @s_bukrs and A~Lifnr in @p_lifnr and A~GJAHR in @p_gjahr and A~budat in @p_budat AND A~blart = 'RE' and A~Xrech = ' ' . SELECT A~BELNR AS FI_NO, A~BUKRS, A~GJAHR, A~LIFNR, A~DMBTR, B~BUDAT, B~blart, C~HWBAS, C~kbetr, b~XBLNR, B~BLDAT AS Doc_Date, D~WERKS,E~NAME1, f~NAME1 AS VEN_NAME, f~STCD3 FROM BSEG AS A INNER JOIN BKPF AS B ON ( A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR AND A~BUKRS = B~BUKRS ) LEFT OUTER JOIN BSET AS C ON ( C~BELNR = A~BELNR AND C~BUKRS = A~BUKRS AND C~GJAHR = A~GJAHR AND C~BUZEI = A~BUZEI ) LEFT JOIN RSEG AS D ON ( D~BELNR = A~BELNR AND D~GJAHR = A~GJAHR AND D~BUKRS = A~BUKRS ) LEFT JOIN T001W AS E ON ( E~WERKS = D~WERKS ) LEFT JOIN LFA1 AS f ON ( f~lifnr = a~lifnr ) APPENDING CORRESPONDING FIELDS OF TABLE @it001 BYPASSING BUFFER WHERE A~BUKRS IN @S_BUKRS AND A~GJAHR IN @P_GJAHR AND A~LIFNR in @p_LIFNR AND B~budat in @p_budat AND A~KOART = 'K' AND B~BLART = 'KG' AND B~XREVERSAL = '' . loop at it001 ASSIGNING FIELD-SYMBOL(<F001>) . CONCATENATE <F001>-belnr <F001>-gjahr INTO <F001>-OBJKE. CONDENSE <F001>-OBJKE NO-GAPS. ENDLOOP. IF it001 IS NOT INITIAL. SELECT a~belnr, a~GJAHR,a~BUKRS, a~AWKEY ,a~BUDAT, a~BLDAT, b~DMBTR, b~KOART FROM BKPF as a INNER JOIN bseg as b on ( A~BELNR = B~BELNR AND A~GJAHR = B~GJAHR AND A~BUKRS = B~BUKRS ) into TABLE @DATA(it002) FOR ALL ENTRIES IN @it001 WHERE a~bukrs = @IT001-bukrs and a~GJAHR = @IT001-gjahr and a~budat = @IT001-budat AND a~AWKEY = @IT001-objke and b~KOART = 'K'. ELSE. MESSAGE 'DATA NOT FOUND' TYPE 'I'. ENDIF. loop at it001 ASSIGNING FIELD-SYMBOL(<WA001>) . READ TABLE IT002 INTO DATA(WA002) WITH KEY AWKEY = <WA001>-objke . IF SY-SUBRC = 0. <WA001>-FI_NO = WA002-belnr. <WA001>-Doc_Date = WA002-bldat. <WA001>-BUDAT = WA002-bUdat. <wa001>-DMBTR = WA002-DMBTR . ENDIF . <wa001>-KBETR = <wa001>-KBETR / 10. CLEAR : WA002. ENDLOOP. loop at it001 into DATA(hj). r_blnr-sign = 'I'. r_blnr-option = 'EQ'. r_blnr-low = hj-belnr. append r_blnr. endloop. loop at it001 into hj. r_blnr_fi-sign = 'I'. r_blnr_fi-option = 'EQ'. r_blnr_fi-low = hj-fi_no. append r_blnr_fi. endloop. loop at it001 into hj. r_bu-sign = 'I'. r_bu-option = 'EQ'. r_bu-low = hj-bukrs. append r_bu. endloop. loop at it001 into hj. r_gj-sign = 'I'. r_gj-option = 'EQ'. r_gj-low = hj-gjahr. append r_gj. endloop. ****-----------------------------BLAT = RE ---------------* SELECT A~BELNR,A~BUKRS, A~GJAHR, SUM( A~DMBTR ) AS DMBTR FROM BSEG AS A INTO TABLE @data(it_DMBTR) WHERE A~BELNR in @r_blnr AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~KOART = 'S' AND A~BUZID <> 'T' GROUP BY A~belnr,A~BUKRS, A~GJAHR. SELECT A~BELNR,A~BUKRS, A~GJAHR, SUM( A~DMBTR ) AS DMBTR FROM BSEG AS A APPENDING TABLE @it_DMBTR WHERE A~BELNR in @r_blnr_FI AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~KOART = 'S' AND A~BUZID <> 'T' GROUP BY A~belnr,A~BUKRS, A~GJAHR. SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JIC) WHERE A~BELNR in @r_blnr_FI AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JIC' GROUP BY A~belnr, A~BUKRS, A~GJAHR. SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JIS) WHERE A~BELNR in @r_blnr_FI AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JIS' GROUP BY A~belnr, A~BUKRS, A~GJAHR. SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JII) WHERE A~BELNR in @r_blnr_FI AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JII' GROUP BY A~belnr, A~BUKRS, A~GJAHR. SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JIU) WHERE A~BELNR in @r_blnr_FI AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JIU' GROUP BY A~belnr, A~BUKRS, A~GJAHR. ****-----------------------------BLAT = KG ----- ---------------* SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JIC_1) WHERE A~BELNR in @r_blnr_FI AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JIC' GROUP BY A~belnr, A~BUKRS, A~GJAHR. SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JIS_1) WHERE A~BELNR in @r_blnr AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JIS' GROUP BY A~belnr, A~BUKRS, A~GJAHR. SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JII_1) WHERE A~BELNR in @r_blnr AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JII' GROUP BY A~belnr, A~BUKRS, A~GJAHR. SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~HWSTE ) AS HWSTE FROM BSet AS A INTO TABLE @data(it_HWSTE_JIU_1) WHERE A~BELNR in @r_blnr AND A~bukrs in @r_bu AND A~GJAHR in @r_gj AND A~Ktosl = 'JIU' GROUP BY A~belnr, A~BUKRS, A~GJAHR. ****-----------------------------END OF BLAR ---------------* ****----------------------------- RE ---------------* SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~MENGE ) AS MENGE FROM RSEG AS A INTO TABLE @data(MENGE_RE) WHERE A~BELNR in @r_blnr AND A~bukrs in @r_bu AND A~GJAHR in @r_gj GROUP BY A~belnr, A~BUKRS, A~GJAHR. ****----------------------------- KG----------- ---------------* SELECT A~BELNR, A~BUKRS, A~GJAHR, SUM( A~MENGE ) AS MENGE FROM BSEG AS A INTO TABLE @data(MENGE_KG) WHERE A~BELNR in @r_blnr_FI AND A~bukrs in @r_bu AND A~GJAHR in @r_gj GROUP BY A~belnr, A~BUKRS, A~GJAHR. ****----------------------------- END OF ---------------* SELECT B~belnr, B~GJAHR,B~BUKRS, b~DMBTR, b~KOART,B~SHKZG,B~LIFNR,b~BUPLA,b~SGTXT,b~HSN_SAC,C~REGIO,D~BEZEI, e~ORT01 FROM bseg as b INNER JOIN LFA1 AS C on ( C~LIFNR = B~LIFNR ) LEFT JOIN T005U AS D ON ( D~BLAND = C~REGIO ) LEFT JOIN lfa1 AS E ON ( e~WERKS = b~BUPLA ) into TABLE @DATA(it003) FOR ALL ENTRIES IN @it001 WHERE B~bukrs = @IT001-bukrs and B~GJAHR = @IT001-gjahr AND B~BELNR = @IT001-FI_NO and b~KOART = 'K' AND D~SPRAS = 'E' AND d~LAND1 = 'IN'. LOOP AT it001 ASSIGNING FIELD-SYMBOL(<fk>). READ TABLE it_dmbtr INTO data(hk) WITH KEY belnr = <fk>-fi_no bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <fk>-dmbtr_tax = hk-dmbtr. ENDIF . IF <FK>-blart = 'RE'. READ TABLE it_HWSTE_JIS_1 INTO data(WA_HWSTE_JIS_1) WITH KEY belnr = <fk>-belnr bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JIS = WA_HWSTE_JIS_1-hwste . ENDIF . READ TABLE it_HWSTE_JIC_1 INTO data(WA_HWSTE_JIC_1) WITH KEY belnr = <fk>-belnr bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JIC = WA_HWSTE_JIC_1-hwste . ENDIF . READ TABLE it_HWSTE_JII_1 INTO data(WA_HWSTE_JII_1) WITH KEY belnr = <fk>-belnr bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JII = WA_HWSTE_JII_1-hwste . ENDIF . READ TABLE it_HWSTE_JIU_1 INTO data(WA_HWSTE_JIU_1) WITH KEY belnr = <fk>-belnr bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JIU = WA_HWSTE_JIU_1-hwste . ENDIF . ELSE. READ TABLE it_HWSTE_JIS INTO data(WA_HWSTE_JIS) WITH KEY belnr = <fk>-FI_NO bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JIS = WA_HWSTE_JIS-hwste . ENDIF . READ TABLE it_HWSTE_JIC INTO data(WA_HWSTE_JIC) WITH KEY belnr = <fk>-fi_no bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JIC = WA_HWSTE_JIC-hwste . ENDIF . READ TABLE it_HWSTE_JII INTO data(WA_HWSTE_JII) WITH KEY belnr = <fk>-fi_no bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JII = WA_HWSTE_JII-hwste . ENDIF . READ TABLE it_HWSTE_JIU INTO data(WA_HWSTE_JIU) WITH KEY belnr = <fk>-fi_no bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-JIU = WA_HWSTE_JIU-hwste . ENDIF . ENDIF. IF <FK>-blart = 'RE'. READ TABLE MENGE_RE INTO data(WA_MENGE_RE) WITH KEY belnr = <fk>-belnr bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-menge = WA_MENGE_RE-menge . ENDIF . ELSE. READ TABLE MENGE_KG INTO data(WA_MENGE_KG) WITH KEY belnr = <fk>-FI_NO bukrs = <fk>-bukrs gjahr = <fk>-gjahr. if sy-subrc = 0 . <FK>-menge = WA_MENGE_KG-menge . ENDIF . ENDIF. READ TABLE IT003 INTO DATA(WA003) WITH KEY BELNR = <fk>-FI_NO bukrs = <fk>-bukrs gjahr = <fk>-GJAHR. IF SY-SUBRC = 0. IF WA003-shkzg = 'S'. DATA(NOT) = 'Debit Note'. ELSE. NOT = 'Credit Note'. ENDIF. <fk>-NOT = NOT . <fk>-BEZEI = wa003-BEZEI. <fk>-ORT01 = wa003-ORT01. <fk>-SGTXT = wa003-SGTXT. <fk>-HSN_SAC = wa003-HSN_SAC. ENDIF. CLEAR : WA_HWSTE_JIS ,WA_HWSTE_JIC, WA_HWSTE_JIU ,WA_HWSTE_JII, WA_HWSTE_JIU_1 , WA_HWSTE_JIS_1 ,WA_HWSTE_JIC_1 ,WA_HWSTE_JII_1,WA_MENGE_RE,WA003. ENDLOOP. SORT it001 BY belnr. ENDFORM.
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear