REPORT ZRA_TEST_023 LINE-SIZE
140
LINE-COUNT 60(3)
MESSAGE-ID zsaki
NO STANDARD PAGE HEADING.
INCLUDE ZRA_TEST_023_data. "Data Declaration
INCLUDE ZRA_TEST_023_sel. "Selection Screen
INCLUDE ZRA_TEST_023_form. "Subroutines
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
perform output.
START-OF-SELECTION.
IF r1 = 'X'.
PERFORM sales_data.
PERFORM display_data.
ENDIF.
IF r2 = 'X'.
PERFORM material_data.
PERFORM display1_data.
ENDIF.
LINE-COUNT 60(3)
MESSAGE-ID zsaki
NO STANDARD PAGE HEADING.
INCLUDE ZRA_TEST_023_data. "Data Declaration
INCLUDE ZRA_TEST_023_sel. "Selection Screen
INCLUDE ZRA_TEST_023_form. "Subroutines
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
perform output.
START-OF-SELECTION.
IF r1 = 'X'.
PERFORM sales_data.
PERFORM display_data.
ENDIF.
IF r2 = 'X'.
PERFORM material_data.
PERFORM display1_data.
ENDIF.
*&---------------------------------------------------------------------*
*& Include ZRA_TEST_023_DATA
*&---------------------------------------------------------------------*
*& Include ZRA_TEST_023_DATA
*&---------------------------------------------------------------------*
TYPES : BEGIN OF ty_vbak,
vbeln TYPE vbeln_va,
vkorg TYPE vkorg,
erdat TYPE erdat,
ernam TYPE ernam,
vtweg TYPE vtweg,
spart TYPE spart,
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbeln_va,
posnr TYPE posnr,
matnr TYPE matnr,
netwr TYPE netwr_ap,
END OF ty_vbap,
BEGIN OF ty_mara,
matnr TYPE matnr,
mbrsh TYPE mbrsh ,
mtart TYPE mtart,
matkl TYPE matkl,
meins TYPE meins,
END OF ty_mara,
BEGIN OF ty_makt,
matnr TYPE matnr,
maktx TYPE maktx,
maktg TYPE maktg,
spras TYPE spras,
END OF ty_makt,
BEGIN OF ty_main,
vbeln TYPE vbeln_va,
vkorg TYPE vkorg,
erdat TYPE erdat,
ernam TYPE ernam,
vtweg TYPE vtweg,
spart TYPE spart,
posnr TYPE posnr,
matnr TYPE matnr,
netwr TYPE netwr_ap,
END OF ty_main,
BEGIN OF ty_main1,
matnr TYPE matnr,
mbrsh TYPE mbrsh ,
mtart TYPE mtart,
matkl TYPE matkl,
meins TYPE meins,
maktx TYPE maktx,
maktg TYPE maktg,
spras TYPE spras,
END OF ty_main1.
DATA : it_vbak TYPE STANDARD TABLE OF ty_vbak INITIAL SIZE 0,
wa_vbak TYPE ty_vbak,
it_vbap TYPE STANDARD TABLE OF ty_vbap INITIAL SIZE 0,
wa_vbap TYPE ty_vbap,
it_main TYPE STANDARD TABLE OF ty_main INITIAL SIZE 0,
wa_main TYPE ty_main,
it_mara TYPE STANDARD TABLE OF ty_mara INITIAL SIZE 0,
wa_mara TYPE ty_mara,
vbeln TYPE vbeln_va,
vkorg TYPE vkorg,
erdat TYPE erdat,
ernam TYPE ernam,
vtweg TYPE vtweg,
spart TYPE spart,
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbeln_va,
posnr TYPE posnr,
matnr TYPE matnr,
netwr TYPE netwr_ap,
END OF ty_vbap,
BEGIN OF ty_mara,
matnr TYPE matnr,
mbrsh TYPE mbrsh ,
mtart TYPE mtart,
matkl TYPE matkl,
meins TYPE meins,
END OF ty_mara,
BEGIN OF ty_makt,
matnr TYPE matnr,
maktx TYPE maktx,
maktg TYPE maktg,
spras TYPE spras,
END OF ty_makt,
BEGIN OF ty_main,
vbeln TYPE vbeln_va,
vkorg TYPE vkorg,
erdat TYPE erdat,
ernam TYPE ernam,
vtweg TYPE vtweg,
spart TYPE spart,
posnr TYPE posnr,
matnr TYPE matnr,
netwr TYPE netwr_ap,
END OF ty_main,
BEGIN OF ty_main1,
matnr TYPE matnr,
mbrsh TYPE mbrsh ,
mtart TYPE mtart,
matkl TYPE matkl,
meins TYPE meins,
maktx TYPE maktx,
maktg TYPE maktg,
spras TYPE spras,
END OF ty_main1.
DATA : it_vbak TYPE STANDARD TABLE OF ty_vbak INITIAL SIZE 0,
wa_vbak TYPE ty_vbak,
it_vbap TYPE STANDARD TABLE OF ty_vbap INITIAL SIZE 0,
wa_vbap TYPE ty_vbap,
it_main TYPE STANDARD TABLE OF ty_main INITIAL SIZE 0,
wa_main TYPE ty_main,
it_mara TYPE STANDARD TABLE OF ty_mara INITIAL SIZE 0,
wa_mara TYPE ty_mara,
it_makt TYPE STANDARD TABLE OF
ty_makt INITIAL SIZE 0,
wa_makt TYPE ty_makt,
it_main1 TYPE STANDARD TABLE OF ty_main1 INITIAL SIZE 0,
wa_main1 TYPE ty_main1,
v_vbeln TYPE vbeln_va,
v_matnr TYPE matnr.
wa_makt TYPE ty_makt,
it_main1 TYPE STANDARD TABLE OF ty_main1 INITIAL SIZE 0,
wa_main1 TYPE ty_main1,
v_vbeln TYPE vbeln_va,
v_matnr TYPE matnr.
*&---------------------------------------------------------------------*
*& Include ZRA_TEST_023_SEL
*& Include ZRA_TEST_023_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME TITLE text-000.
PARAMETERS : r1 RADIOBUTTON GROUP gp1 DEFAULT 'X' USER-COMMAND aaa,
r2 RADIOBUTTON GROUP gp1.
SELECTION-SCREEN END OF BLOCK b0.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln FOR v_vbeln MODIF ID bbb.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_matnr FOR v_matnr MODIF ID ccc.
SELECTION-SCREEN END OF BLOCK b2.
*& Include ZRA_TEST_023_FORM
*& Subroutines
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form Clear
*&---------------------------------------------------------------------*
* text
*&---------------------------------------------------------------------*
* -->p1 text
* -->p2 text
*&---------------------------------------------------------------------*
FORM clear.
CLEAR: wa_vbak,
wa_mara,
wa_makt,
wa_vbap,
wa_main,
wa_main1.
REFRESH: it_vbak,
it_mara,
it_makt,
it_vbap,
it_main,
it_main1.
ENDFORM. "Clear
CLEAR: wa_vbak,
wa_mara,
wa_makt,
wa_vbap,
wa_main,
wa_main1.
REFRESH: it_vbak,
it_mara,
it_makt,
it_vbap,
it_main,
it_main1.
ENDFORM. "Clear
*&---------------------------------------------------------------------*
*& Include ZRA_TEST_023_FORM
*&---------------------------------------------------------------------*
*& Form output
*&---------------------------------------------------------------------*
* text
*&---------------------------------------------------------------------*
* -->p1 text
* -->p2 text
*&---------------------------------------------------------------------*
FORM output.
LOOP AT SCREEN.
IF r1 = 'X'.
IF screen-group1 = 'CCC'.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF r2 = 'X'.
IF screen-group1 = 'BBB'.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
endform.
*&---------------------------------------------------------------------*
*& Form sales_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sales_data .
SELECT vbeln
vkorg
erdat
ernam
vtweg
spart
FROM vbak
INTO TABLE it_vbak
WHERE vbeln IN s_vbeln. IF sy-subrc = 0.
SORT it_vbak BY vbeln.
ELSE.
MESSAGE e000.
ENDIF.
IF NOT it_vbak[] IS INITIAL.
SELECT vbeln
posnr
matnr
netwr
FROM vbap
INTO TABLE it_vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
IF sy-subrc = 0.
DELETE ADJACENT DUPLICATES FROM it_vbap COMPARING vbeln.
ELSE.
MESSAGE e001.
ENDIF.
ENDIF.
LOOP AT it_vbap INTO wa_vbap.
wa_main-vbeln = wa_vbap-vbeln.
wa_main-posnr = wa_vbap-posnr.
wa_main-matnr = wa_vbap-matnr.
wa_main-netwr = wa_vbap-netwr.
READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
wa_main-vkorg = wa_vbak-vkorg.
wa_main-erdat = wa_vbak-erdat.
wa_main-ernam = wa_vbak-ernam.
wa_main-vtweg = wa_vbak-vtweg.
wa_main-spart = wa_vbak-spart.
ENDIF.
APPEND wa_main TO it_main.
ENDLOOP.
ENDFORM. " sales_data
*& Include ZRA_TEST_023_FORM
*&---------------------------------------------------------------------*
*& Form output
*&---------------------------------------------------------------------*
* text
*&---------------------------------------------------------------------*
* -->p1 text
* -->p2 text
*&---------------------------------------------------------------------*
FORM output.
LOOP AT SCREEN.
IF r1 = 'X'.
IF screen-group1 = 'CCC'.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF r2 = 'X'.
IF screen-group1 = 'BBB'.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
endform.
*&---------------------------------------------------------------------*
*& Form sales_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sales_data .
SELECT vbeln
vkorg
erdat
ernam
vtweg
spart
FROM vbak
INTO TABLE it_vbak
WHERE vbeln IN s_vbeln. IF sy-subrc = 0.
SORT it_vbak BY vbeln.
ELSE.
MESSAGE e000.
ENDIF.
IF NOT it_vbak[] IS INITIAL.
SELECT vbeln
posnr
matnr
netwr
FROM vbap
INTO TABLE it_vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
IF sy-subrc = 0.
DELETE ADJACENT DUPLICATES FROM it_vbap COMPARING vbeln.
ELSE.
MESSAGE e001.
ENDIF.
ENDIF.
LOOP AT it_vbap INTO wa_vbap.
wa_main-vbeln = wa_vbap-vbeln.
wa_main-posnr = wa_vbap-posnr.
wa_main-matnr = wa_vbap-matnr.
wa_main-netwr = wa_vbap-netwr.
READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
wa_main-vkorg = wa_vbak-vkorg.
wa_main-erdat = wa_vbak-erdat.
wa_main-ernam = wa_vbak-ernam.
wa_main-vtweg = wa_vbak-vtweg.
wa_main-spart = wa_vbak-spart.
ENDIF.
APPEND wa_main TO it_main.
ENDLOOP.
ENDFORM. " sales_data
*&---------------------------------------------------------------------*
*& Form material_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM material_data .
*& Form material_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM material_data .
SELECT matnr
mbrsh
mtart
matkl
meins
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
SELECT matnr
maktx
maktg
spras
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
LOOP AT it_makt INTO wa_makt.
wa_main1-matnr = wa_makt-matnr.
wa_main1-maktx = wa_makt-maktx.
wa_main1-maktg = wa_makt-maktg.
wa_main1-spras = wa_makt-spras.
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_makt-matnr BINARY SEARCH.
IF sy-subrc EQ 0.
wa_main1-mbrsh = wa_mara-mbrsh.
wa_main1-mtart = wa_mara-mtart.
wa_main1-matkl = wa_mara-matkl.
wa_main1-meins = wa_mara-meins.
ENDIF.
APPEND wa_main1 TO it_main1.
ENDLOOP.
ENDFORM. " material_data
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
mbrsh
mtart
matkl
meins
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
SELECT matnr
maktx
maktg
spras
FROM makt
INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
LOOP AT it_makt INTO wa_makt.
wa_main1-matnr = wa_makt-matnr.
wa_main1-maktx = wa_makt-maktx.
wa_main1-maktg = wa_makt-maktg.
wa_main1-spras = wa_makt-spras.
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_makt-matnr BINARY SEARCH.
IF sy-subrc EQ 0.
wa_main1-mbrsh = wa_mara-mbrsh.
wa_main1-mtart = wa_mara-mtart.
wa_main1-matkl = wa_mara-matkl.
wa_main1-meins = wa_mara-meins.
ENDIF.
APPEND wa_main1 TO it_main1.
ENDLOOP.
ENDFORM. " material_data
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_data .
LOOP AT it_main INTO wa_main.
WRITE:/ wa_main-vbeln,
wa_main-vkorg,
wa_main-erdat,
wa_main-ernam,
wa_main-vtweg,
wa_main-spart,
wa_main-posnr,
wa_main-matnr,
wa_main-netwr.
ENDLOOP.
ENDFORM. " display_data
*&---------------------------------------------------------------------*
*& Form display1_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
LOOP AT it_main INTO wa_main.
WRITE:/ wa_main-vbeln,
wa_main-vkorg,
wa_main-erdat,
wa_main-ernam,
wa_main-vtweg,
wa_main-spart,
wa_main-posnr,
wa_main-matnr,
wa_main-netwr.
ENDLOOP.
ENDFORM. " display_data
*&---------------------------------------------------------------------*
*& Form display1_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display1_data .
LOOP AT it_main1 INTO wa_main1.
WRITE:/ wa_main1-matnr,
wa_main1-mbrsh,
wa_main1-mtart,
wa_main1-matkl,
wa_main1-meins,
wa_main1-maktx,
wa_main1-maktg,
wa_main1-spras.
LOOP AT it_main1 INTO wa_main1.
WRITE:/ wa_main1-matnr,
wa_main1-mbrsh,
wa_main1-mtart,
wa_main1-matkl,
wa_main1-meins,
wa_main1-maktx,
wa_main1-maktg,
wa_main1-spras.
ENDLOOP.
ENDFORM. " display1_data