Upload
jeeva-darling
View
115
Download
1
Tags:
Embed Size (px)
Citation preview
630PMALV
PROGRAM1
REPORT Z630PMALV1.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform display.endif.
ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY CHANGING IT_OUTTAB = lt_vbak[].ENDFORM. " displayPROGRAM2
REPORT Z630PMALV2.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
initialization.
so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'VBAK' CHANGING IT_OUTTAB = lt_vbak[]. "" HERE OUTPUT WILL NOT COME DUE TO
"" INCORREACT SEQUENCE OF VBAK & INTERNAL TABLE FIELDSENDFORM. " displayPROGRAM3
REPORT Z630PMALV3.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform display.
endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'ZMYVBAK'(001) CHANGING IT_OUTTAB = lt_vbak[].ENDFORM. " displayPROGRAM4
REPORT Z630PMALV4.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY
CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM fldcat . CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING I_STRUCTURE_NAME = 'ZMYVBAK' CHANGING CT_FIELDCAT = lt_fcat[].ENDFORM. " fldcatPROGRAM5
REPORT Z630PMALV5.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat,* ls_fcat type lvc_s_fcat. ls_fcat like line of lt_fcat.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM fldcat . CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING I_STRUCTURE_NAME = 'ZMYVBAK' CHANGING CT_FIELDCAT = lt_fcat[].
if lt_fcat[] is not initial. loop at lt_fcat into ls_fcat. if ls_fcat-fieldname = 'VBELN'. ls_fcat-coltext = 'Sales Doc'. modify lt_fcat from ls_fcat transporting coltext. elseif ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 3. modify lt_fcat from ls_fcat transporting col_pos. elseif ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 2. modify lt_fcat from ls_fcat transporting col_pos. endif. endloop. endif.ENDFORM. " fldcatPROGRAM6
REPORT Z630PMALV6.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat, ls_fcat type lvc_s_fcat.* ls_fcat like line of lt_fcat.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection.
call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'vbeln'. " HERE WE USE LOWER CASE LETTERS THAT'S WHY IT IS TERMINATED
ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.endform.PROGRAM7
REPORT Z630PMALV7.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak,
vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak,
ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat,* ls_fcat type lvc_s_fcat. ls_fcat like line of lt_fcat, ls_layo type lvc_s_layo.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform layout. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.
ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. ls_fcat-emphasize = 'C314'. append ls_fcat to lt_fcat.endform.
FORM layout .
clear ls_layo. ls_layo-zebra = 'X'. ls_layo-grid_title = 'SALES DOCUMENT HEADER DATA'.ENDFORM. " layoutPROGRAM8
REPORT Z630PMALV8.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
data lv_matnr type matnr.
data : vbak_cont type ref to cl_gui_custom_container, vbak_grid type ref to cl_gui_alv_grid.
data : vbap_cont type ref to cl_gui_custom_container, vbap_grid type ref to cl_gui_alv_grid.
data : mara_cont type ref to cl_gui_custom_container, mara_grid type ref to cl_gui_alv_grid.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
types : begin of ty_vbap, vbeln type vbap-vbeln, posnr type vbap-posnr, matnr type vbap-matnr, end of ty_vbap.
data : lt_vbap type standard table of ty_vbap, ls_vbap type ty_vbap.
types : begin of ty_mara, matnr type mara-matnr, matkl type mara-matkl,
mtart type mara-mtart, end of ty_mara.
data : lt_mara type standard table of ty_mara, ls_mara type ty_mara.
data : lt_fcat type lvc_t_fcat,* ls_fcat type lvc_s_fcat. ls_fcat like line of lt_fcat, ls_layo type lvc_s_layo.
class lcl_eventreceiver definition. public section. methods handle_hotspot_click for event hotspot_click of cl_gui_alv_grid importing e_row_id. methods handle_button_click for event button_click of cl_gui_alv_grid importing ES_ROW_NO.endclass.
class lcl_eventreceiver implementation. method handle_hotspot_click. clear ls_vbak. read table lt_vbak into ls_vbak index e_row_id-index. if sy-subrc eq 0. lv_vbeln = ls_vbak-vbeln. if lv_vbeln is not initial. perform getvbap. if lt_vbap[] is not initial. perform fldcatvbap. perform layoutvbap. call screen 200. else. message 'No item data' type 'I'. endif. endif. endif. endmethod.
method handle_button_click. read table lt_vbap into ls_vbap index es_row_no-row_id. if sy-subrc eq 0. clear lv_matnr. lv_matnr = ls_vbap-matnr. if lv_matnr is not initial. perform getmara.
if lt_mara[] is not initial. perform fldcatmara. perform layoutmara. call screen 300. else. message 'No material' type 'I'. endif. endif. endif. endmethod.endclass.
data ob type ref to lcl_eventreceiver.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform layout. perform registerhandlers. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'.
leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. ls_fcat-hotspot = 'X'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'.
ls_fcat-col_pos = 4. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. ls_fcat-emphasize = 'C314'. append ls_fcat to lt_fcat.endform.
FORM layout . clear ls_layo. ls_layo-zebra = 'X'. ls_layo-grid_title = 'SALES DOCUMENT HEADER DATA'.ENDFORM. " layout
FORM registerhandlers . create object ob. set handler ob->handle_hotspot_click for vbak_grid.ENDFORM. " registerhandlers
FORM getvbap . select vbeln posnr matnr from vbap into table lt_vbap where vbeln = lv_vbeln.ENDFORM. " getvbap
FORM fldcatvbap . refresh lt_fcat. clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'POSNR'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Item no'. ls_fcat-outputlen = 5. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'MATNR'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Material'.
ls_fcat-outputlen = 10. ls_fcat-style = cl_gui_alv_grid=>MC_STYLE_BUTTON. append ls_fcat to lt_fcat.
ENDFORM. " fldcatvbap
FORM layoutvbap . clear ls_layo. ls_layo-grid_title = 'SALES DOCUMENT ITEM DATA'. ls_layo-zebra = 'X'.ENDFORM. " layoutvbap
MODULE STATUS_0200 OUTPUT. SET PF-STATUS 'ABC1'.if vbap_cont is initial. CREATE OBJECT VBAP_CONT EXPORTING CONTAINER_NAME = 'CUST2'.
CREATE OBJECT VBAP_GRID EXPORTING I_PARENT = vbap_cont.
perform register. perform displayvbap.else. CALL METHOD VBAP_GRID->REFRESH_TABLE_DISPLAY.endif.
ENDMODULE. " STATUS_0200 OUTPUT
FORM displayvbap . CALL METHOD VBAP_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbap[] IT_FIELDCATALOG = lt_fcat[].
ENDFORM. " displayvbap
MODULE USER_COMMAND_0200 INPUT. case sy-ucomm. when 'BACK'. leave to screen 100. endcase.ENDMODULE. " USER_COMMAND_0200 INPUT
FORM register . create object ob. set handler ob->handle_button_click for vbap_grid.ENDFORM. " register
FORM getmara . select single matnr matkl mtart from mara into ls_mara where matnr = lv_matnr. if sy-subrc eq 0. refresh lt_mara. append ls_mara to lt_mara. endif.ENDFORM. " getmara
FORM fldcatmara . refresh lt_fcat. clear ls_fcat. ls_fcat-fieldname = 'MATNR'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Material'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'MATKL'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Material Group'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'MTART'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Material Type'. append ls_fcat to lt_fcat.
ENDFORM. " fldcatmara
FORM layoutmara . clear ls_layo. ls_layo-grid_title = 'MATERIAL DATA'.ENDFORM. " layoutmara
MODULE STATUS_0300 OUTPUT. SET PF-STATUS 'ABC2'.if mara_cont is initial. CREATE OBJECT MARA_CONT EXPORTING CONTAINER_NAME = 'CUST3'.
CREATE OBJECT MARA_GRID EXPORTING I_PARENT = mara_cont.
perform displaymara.else. CALL METHOD MARA_GRID->REFRESH_TABLE_DISPLAY.endif.ENDMODULE. " STATUS_0300 OUTPUT
FORM displaymara . CALL METHOD MARA_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_mara[] IT_FIELDCATALOG = lt_fcat[].
ENDFORM. " displaymara
MODULE USER_COMMAND_0300 INPUT. case sy-ucomm. when 'BACK'. leave to screen 200. endcase.ENDMODULE. " USER_COMMAND_0300 INPUTPROGRAM9
REPORT Z630PMALV9.
type-pools cntl.data : cust_cont type ref to cl_gui_custom_container, o_split1 type ref to cl_gui_splitter_container, o_cont1 type ref to cl_gui_container, o_cont2 type ref to cl_gui_container, o_split2 type ref to cl_gui_splitter_container, o_cont3 type ref to cl_gui_container, o_cont4 type ref to cl_gui_container, o_cont5 type ref to cl_gui_container, o_tree type ref to cl_gui_simple_tree, vbak_grid type ref to cl_gui_alv_grid.
data : lt_fcat type lvc_t_fcat, ls_fcat type lvc_s_fcat.
data : ls_layo type lvc_s_layo.
types : begin of ty_vbak, cellstyles type lvc_t_styl, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : ls_styl type lvc_s_styl.
types : begin of ty_nodes. include structure abdemonode.types : end of ty_nodes.
data : lt_nodes type standard table of ty_nodes, ls_nodes type ty_nodes.
types : begin of ty_events. include type cntl_simple_event.types end of ty_events.
data : lt_events type table of ty_events, ls_events type ty_events.
class lcl_eventreceiver definition. public section. methods handle_node_double_click
for event node_double_click of cl_gui_simple_tree importing node_key.endclass.
class lcl_eventreceiver implementation. method handle_node_double_click. case node_key. when 'CSO'. call transaction 'VA01'. when 'CHSO'. call transaction 'VA02'. when 'DSO'. perform vbakgrid. when 'CPO'. call transaction 'ME21'. when 'CHPO'. call transaction 'ME22'. endcase. endmethod.endclass.
data ob type ref to lcl_eventreceiver.start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if cust_cont is initial. CREATE OBJECT CUST_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT O_SPLIT1 EXPORTING PARENT = cust_cont ROWS = 1 COLUMNS = 2.
CALL METHOD O_SPLIT1->SET_COLUMN_WIDTH EXPORTING ID = 1 WIDTH = 6.
CALL METHOD O_SPLIT1->SET_COLUMN_WIDTH
EXPORTING ID = 2 WIDTH = 10.
CALL METHOD O_SPLIT1->GET_CONTAINER EXPORTING ROW = 1 COLUMN = 1 RECEIVING CONTAINER = o_cont1.
CALL METHOD O_SPLIT1->GET_CONTAINER EXPORTING ROW = 1 COLUMN = 2 RECEIVING CONTAINER = o_cont2.
CREATE OBJECT O_SPLIT2 EXPORTING PARENT = o_cont2 ROWS = 3 COLUMNS = 1.
CALL METHOD O_SPLIT2->SET_ROW_HEIGHT EXPORTING ID = 1 HEIGHT = 1.
CALL METHOD O_SPLIT2->SET_ROW_HEIGHT EXPORTING ID = 2 HEIGHT = 7.
CALL METHOD O_SPLIT2->SET_ROW_HEIGHT EXPORTING ID = 3 HEIGHT = 1.
CALL METHOD O_SPLIT2->GET_CONTAINER EXPORTING ROW = 1 COLUMN = 1 RECEIVING CONTAINER = o_cont3.
CALL METHOD O_SPLIT2->GET_CONTAINER EXPORTING ROW = 2 COLUMN = 1 RECEIVING CONTAINER = o_cont4.
CALL METHOD O_SPLIT2->GET_CONTAINER EXPORTING ROW = 3 COLUMN = 1 RECEIVING CONTAINER = o_cont5.
perform constructtree.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM constructtree . CREATE OBJECT O_TREE EXPORTING PARENT = o_cont1 NODE_SELECTION_MODE = cl_gui_simple_tree=>node_sel_mode_single.
perform addnodes.ENDFORM. " constructtree
FORM addnodes . clear ls_nodes. ls_nodes-node_key = 'ROOT'. ls_nodes-isfolder = 'X'. ls_nodes-text = 'Transactions'. append ls_nodes to lt_nodes.
clear ls_nodes.
ls_nodes-node_key = 'SO'. ls_nodes-relatkey = 'ROOT'. ls_nodes-isfolder = 'X'. ls_nodes-text = 'Sales order'. append ls_nodes to lt_nodes.
clear ls_nodes. ls_nodes-node_key = 'CSO'. ls_nodes-relatkey = 'SO'. ls_nodes-n_image = '@15@'. ls_nodes-text = 'Create Sales order'. append ls_nodes to lt_nodes.
clear ls_nodes. ls_nodes-node_key = 'CHSO'. ls_nodes-relatkey = 'SO'. ls_nodes-n_image = '@15@'. ls_nodes-text = 'Change Sales order'. append ls_nodes to lt_nodes.
clear ls_nodes. ls_nodes-node_key = 'DSO'. ls_nodes-relatkey = 'SO'. ls_nodes-n_image = '@15@'. ls_nodes-text = 'Display Sales order'. append ls_nodes to lt_nodes.
clear ls_nodes. ls_nodes-node_key = 'PO'. ls_nodes-relatkey = 'ROOT'. ls_nodes-isfolder = 'X'. ls_nodes-text = 'Purchase order'. append ls_nodes to lt_nodes.
clear ls_nodes. ls_nodes-node_key = 'CPO'. ls_nodes-relatkey = 'PO'. ls_nodes-exp_image = '@16@'. ls_nodes-text = 'Create Purchase order'. append ls_nodes to lt_nodes.
clear ls_nodes. ls_nodes-node_key = 'CHPO'. ls_nodes-relatkey = 'PO'. ls_nodes-exp_image = '@16@'. ls_nodes-text = 'Change Purchase order'.
append ls_nodes to lt_nodes.
*Register the handler create object ob. set handler ob->handle_node_double_click for o_tree.
clear ls_events. ls_events-eventid = cl_gui_simple_tree=>eventid_node_double_click. append ls_events to lt_events.
CALL METHOD O_TREE->SET_REGISTERED_EVENTS EXPORTING EVENTS = lt_events[].
CALL METHOD O_TREE->ADD_NODES EXPORTING TABLE_STRUCTURE_NAME = 'ABDEMONODE' NODE_TABLE = lt_nodes[].
ENDFORM. " addnodes
FORM vbakgrid . CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = o_cont4.
perform getvbak. if lt_vbak[] is not initial. perform fldcatvbak. perform layoutvbak. perform styles. perform displayvbak. endif.
ENDFORM. " vbakgrid
FORM getvbak . select vbeln erdat erzet from vbak into corresponding fields of table lt_vbak up to 50 rows.ENDFORM. " getvbak
FORM fldcatvbak . refresh lt_fcat. clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. append ls_fcat to lt_fcat.
ENDFORM. " fldcatvbak
FORM layoutvbak . clear ls_layo. ls_layo-grid_title = 'Sales Document Header data'. ls_layo-stylefname = 'CELLSTYLES'.ENDFORM. " layoutvbak
FORM displayvbak . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " displayvbak
FORM styles . clear ls_styl.
loop at lt_vbak into ls_vbak. if ls_vbak-erdat = '19970121'. ls_styl-fieldname = 'VBELN'. ls_styl-style = cl_gui_alv_grid=>mc_style_button. append ls_styl to ls_vbak-cellstyles. modify lt_vbak from ls_vbak transporting cellstyles. endif. endloop.ENDFORM. " stylesPROGRAM10
REPORT Z630PMALV10.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, "" CLASS REFERANCE VARIABLE CREATION vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln. ""SELECTION SCREEN CREATION
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat, ""USED FOR PREAPAIR FIELD CATALOG* ls_fcat type lvc_s_fcat. ls_fcat like line of lt_fcat, ls_layo type lvc_s_layo. "" USED FOR LAYOUT PREAPARATION
data ls_toolbar type stb_button.class lcl_eventreceiver definition. public section. methods handle_toolbar for event toolbar of cl_gui_alv_grid importing E_OBJECT. methods handle_menu_button for event menu_button of cl_gui_alv_grid importing e_object e_ucomm.endclass.
class lcl_eventreceiver implementation. method handle_toolbar. clear ls_toolbar. ls_toolbar-function = 'P1'. ls_toolbar-icon = '@15@'. ls_toolbar-quickinfo = 'Custom button1'. ls_toolbar-butn_type = 0. ls_toolbar-disabled = ' '. ls_toolbar-text = 'Button1'. append ls_toolbar to e_object->mt_toolbar.
clear ls_toolbar. ls_toolbar-function = 'P2'. ls_toolbar-icon = '@15@'. ls_toolbar-quickinfo = 'Custom button2'. ls_toolbar-butn_type = 3. ls_toolbar-disabled = ' '. ls_toolbar-text = 'Button2'. append ls_toolbar to e_object->mt_toolbar.
clear ls_toolbar. ls_toolbar-function = 'P3'. ls_toolbar-icon = '@15@'. ls_toolbar-quickinfo = 'Custom button3'. ls_toolbar-butn_type = 2. ls_toolbar-disabled = ' '. ls_toolbar-text = 'Button2'. append ls_toolbar to e_object->mt_toolbar. endmethod.
method handle_menu_button. case e_ucomm. when 'P3'. CALL METHOD E_OBJECT->ADD_FUNCTION EXPORTING FCODE = 'M1' TEXT = 'Menu Item1'.
CALL METHOD E_OBJECT->ADD_FUNCTION EXPORTING FCODE = 'M2' TEXT = 'Menu Item2'.
CALL METHOD E_OBJECT->ADD_FUNCTION EXPORTING FCODE = 'M3'
TEXT = 'Menu Item3'.
endcase. endmethod.endclass.
data ob type ref to lcl_eventreceiver.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. """" CLASS OBJECT CREATION CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform layout. perform handlers. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam
from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12.* ls_fcat-icon = 'X'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. ls_fcat-emphasize = 'C314'. append ls_fcat to lt_fcat.endform.
FORM layout . clear ls_layo. ls_layo-zebra = 'X'. "" IT PROVIDES ALTERNATIVE COLOUR STRIP
ls_layo-grid_title = 'SALES DOCUMENT HEADER DATA'. " IT PROVIDES TITLE TEXT BARENDFORM. " layout
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM handlers . create object ob. set handler ob->handle_toolbar for vbak_grid. set handler ob->handle_menu_button for vbak_grid.ENDFORM. " handlersPROGRAM11:
REPORT Z630PMALV11.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, "" CLASS REFERANCE VARIABLE CREATION o_split type ref to cl_gui_splitter_container, o_cont1 type ref to cl_gui_container, o_cont2 type ref to cl_gui_container, vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln. ""SELECTION SCREEN CREATION
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat, ""USED FOR PREAPAIR FIELD CATALOG* ls_fcat type lvc_s_fcat. ls_fcat like line of lt_fcat,
ls_layo type lvc_s_layo. "" USED FOR LAYOUT PREAPARATION
class lcl_eventreceiver definition.public section. methods handle_top_of_page for event top_of_page of cl_gui_alv_grid importing e_dyndoc_id.endclass.
class lcl_eventreceiver implementation. method handle_top_of_page.* Associate top of page with container CALL METHOD E_DYNDOC_ID->ADD_TEXT EXPORTING TEXT = text-001.
CALL METHOD E_DYNDOC_ID->ADD_GAP EXPORTING WIDTH = 5.
CALL METHOD E_DYNDOC_ID->ADD_TEXT EXPORTING TEXT = text-002.
CALL METHOD E_DYNDOC_ID->NEW_LINE EXPORTING REPEAT = 1.
CALL METHOD E_DYNDOC_ID->ADD_TEXT EXPORTING TEXT = text-003.
CALL METHOD E_DYNDOC_ID->DISPLAY_DOCUMENT EXPORTING PARENT = o_cont1.
endmethod.endclass.
data ob type ref to lcl_eventreceiver.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. """" CLASS OBJECT CREATION CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT O_SPLIT EXPORTING PARENT = vbak_cont ROWS = 2 COLUMNS = 1.
CALL METHOD O_SPLIT->GET_CONTAINER EXPORTING ROW = 1 COLUMN = 1 RECEIVING CONTAINER = o_cont1.
CALL METHOD O_SPLIT->GET_CONTAINER EXPORTING ROW = 2 COLUMN = 1 RECEIVING CONTAINER = o_cont2.
CALL METHOD O_SPLIT->SET_ROW_HEIGHT EXPORTING ID = 1 HEIGHT = 4.
CALL METHOD O_SPLIT->SET_ROW_HEIGHT EXPORTING ID = 2 HEIGHT = 6.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = o_cont2.
perform getvbak. perform fldcat. perform layout. perform handlers. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. ls_fcat-emphasize = 'C314'. append ls_fcat to lt_fcat.endform.
FORM layout .
clear ls_layo. ls_layo-zebra = 'X'. "" IT PROVIDES ALTERNATIVE COLOUR STRIP ls_layo-grid_title = 'SALES DOCUMENT HEADER DATA'. " IT PROVIDES TITLE TEXT BARENDFORM. " layout
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM handlers . create object ob. set handler ob->handle_top_of_page for vbak_grid.* Explicit registration of top of pagedata k type ref to cl_dd_document.create object k.
CALL METHOD VBAK_GRID->LIST_PROCESSING_EVENTS EXPORTING I_EVENT_NAME = 'TOP_OF_PAGE' I_DYNDOC_ID = k.
ENDFORM. " handlers
PROGRAM12:
REPORT Z630PMALV12.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, "" CLASS REFERANCE VARIABLE CREATION vbak_grid type ref to cl_gui_alv_grid, o_dock type ref to cl_gui_docking_container.
data mode type i.
select-options so_vbeln for lv_vbeln. ""SELECTION SCREEN CREATION
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet,
ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat, ""USED FOR PREAPAIR FIELD CATALOG* ls_fcat type lvc_s_fcat. ls_fcat like line of lt_fcat, ls_layo type lvc_s_layo. "" USED FOR LAYOUT PREAPARATION
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.mode = cl_gui_alv_grid=>offline( ).if mode eq 0. if vbak_cont is initial. """" CLASS OBJECT CREATION CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont. endif.else. CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = o_dock.endif.
perform getvbak. perform fldcat. perform layout. perform display.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program.
endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. ls_fcat-emphasize = 'C314'. append ls_fcat to lt_fcat.endform.
FORM layout . clear ls_layo. ls_layo-zebra = 'X'. "" IT PROVIDES ALTERNATIVE COLOUR STRIP ls_layo-grid_title = 'SALES DOCUMENT HEADER DATA'. " IT PROVIDES TITLE TEXT BARENDFORM. " layout
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
PROGRAM13:
REPORT Z630PMALV13.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, "" CLASS REFERANCE VARIABLE CREATION vbak_grid type ref to cl_gui_alv_grid, o_dock type ref to cl_gui_docking_container.
select-options so_vbeln for lv_vbeln. ""SELECTION SCREEN CREATION
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat, ""USED FOR PREAPAIR FIELD CATALOG* ls_fcat type lvc_s_fcat. ls_fcat like line of lt_fcat, ls_layo type lvc_s_layo. "" USED FOR LAYOUT PREAPARATION
class lcl_eventreceiver definition. public section. methods handle_onf1 for event onf1 of cl_gui_alv_grid importing e_fieldname er_event_data.endclass.
class lcl_eventreceiver implementation. method handle_onf1. case e_fieldname.
when 'VBELN'. er_event_data->m_event_handled = 'X'. "suppress standard F1 help CALL FUNCTION 'POPUP_TO_INFORM' EXPORTING TITEL = 'Custom F1 help' TXT1 = 'VBAK Table' TXT2 = 'VBELN Field'. endcase. endmethod.endclass.
data ob type ref to lcl_eventreceiver.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'. if vbak_cont is initial. """" CLASS OBJECT CREATION CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform layout. perform handlers. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. ls_fcat-ref_table = 'VBAK'. ls_fcat-ref_field = 'VBELN'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. ls_fcat-emphasize = 'C314'. append ls_fcat to lt_fcat.endform.
FORM layout . clear ls_layo. ls_layo-zebra = 'X'. "" IT PROVIDES ALTERNATIVE COLOUR STRIP ls_layo-grid_title = 'SALES DOCUMENT HEADER DATA'. " IT PROVIDES TITLE TEXT BARENDFORM. " layout
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM handlers . create object ob. set handler ob->handle_onf1 for vbak_grid.ENDFORM. " handlers
PROGRAM14:
REPORT Z630PMALV14.
data : o_cont type ref to cl_gui_custom_container, o_grid type ref to cl_gui_alv_grid.
types : begin of ty_emp. include structure z730emp.types end of ty_emp.
data : lt_emp type standard table of ty_emp, ls_emp type ty_emp.
types : begin of ty_emp1, empno type z730emp-empno, ename type z730emp-ename, end of ty_emp1.
data : gt_emp type standard table of ty_emp1.
data : lt_fcat type lvc_t_fcat, ls_fcat type lvc_s_fcat.
data : lt_f4 type lvc_t_f4, ls_f4 like line of lt_f4.
data : lt_retval type table of DDSHRETVAL, ls_retval like line of lt_retval.
class lcl_eventreceiver definition. public section.
methods handle_onf4 for event onf4 of cl_gui_alv_grid importing e_fieldname ES_ROW_NO.endclass.
class lcl_eventreceiver implementation. method handle_onf4. case e_fieldname. when 'EMPNO'. perform f4help using es_row_no. endcase. endmethod.endclass.
data ob type ref to lcl_eventreceiver.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if o_cont is initial. CREATE OBJECT O_CONT EXPORTING CONTAINER_NAME = 'CST'.
CREATE OBJECT O_GRID EXPORTING I_PARENT = o_cont.
perform fldcat. perform getemp. perform handlers. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'MANDT'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Client'. ls_fcat-outputlen = 5. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'EMPNO'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Employee no'.
ls_fcat-outputlen = 12. ls_fcat-F4AVAILABL = 'X'.* ls_fcat-edit = 'X'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ENAME'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Employee name'. ls_fcat-outputlen = 14.* ls_fcat-F4AVAILABL = 'X'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'EMPDESIG'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Emp Designation'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
ENDFORM. " fldcat
FORM display . CALL METHOD O_GRID->SET_TABLE_FOR_FIRST_DISPLAY CHANGING IT_OUTTAB = lt_emp[] IT_FIELDCATALOG = lt_fcat[].
ENDFORM. " display
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getemp . select * from z730emp into table lt_emp.ENDFORM. " getemp
FORM handlers . create object ob. set handler ob->handle_onf4 for o_grid.* Explicit registration of onF4
clear ls_f4. ls_f4-fieldname = 'EMPNO'. ls_f4-register = 'X'. append ls_f4 to lt_f4.
*clear ls_f4.* ls_f4-fieldname = 'ENAME'.* ls_f4-register = 'X'.* append ls_f4 to lt_f4.** CALL METHOD O_GRID->REGISTER_F4_FOR_FIELDS EXPORTING IT_F4 = lt_f4[].
ENDFORM. " handlers
FORM f4help using es_row_no structure LVC_S_ROID. select empno ename from z730emp into table gt_emp. if gt_emp[] is not initial. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'EMPNO' DYNPPROG = sy-repid DYNPNR = sy-dynnr DYNPROFIELD = 'EMPNO' VALUE_ORG = 'S' TABLES VALUE_TAB = gt_emp[] RETURN_TAB = lt_retval[].
read table lt_emp into ls_emp index es_row_no-row_id. if sy-subrc eq 0. read table lt_retval into ls_retval index 1. if sy-subrc eq 0. ls_emp-empno = ls_retval-fieldval. modify lt_emp from ls_emp index es_row_no-row_id.
CALL METHOD O_GRID->REFRESH_TABLE_DISPLAY. endif. endif.
endif.ENDFORM. " f4help
PROGRAM15:
REPORT Z630PMALV15.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak.
initialization.so_vbeln-low = '4970'.so_vbeln-high = '4975'.append so_vbeln.
start-of-selection. perform getvbak. if lt_vbak[] is not initial. perform displayvbak. endif.
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM displayvbak . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " displayvbak
PROGRAM16:
REPORT Z630PMALV16.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak.
initialization.so_vbeln-low = '4970'.so_vbeln-high = '4975'.append so_vbeln.
start-of-selection. perform getvbak. if lt_vbak[] is not initial. perform displayvbak. endif.
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM displayvbak . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'ZMYVBAK' TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " displayvbak
PROGRAM17:
REPORT Z630PMALV17.
type-pools slis.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak.
data : lt_fcat type table of slis_fieldcat_alv.
initialization.so_vbeln-low = '4970'.so_vbeln-high = '4975'.append so_vbeln.
start-of-selection. perform getvbak. if lt_vbak[] is not initial. perform fldcat. perform displayvbak. endif.
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM displayvbak . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING IT_FIELDCAT = lt_fcat[] TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " displayvbak
FORM fldcat . CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING
I_STRUCTURE_NAME = 'ZMYVBAK' CHANGING CT_FIELDCAT = lt_fcat[].ENDFORM. " fldcat
PROGRAM18:
REPORT Z630PMALV18.
type-pools slis.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak.
data : lt_fcat type table of slis_fieldcat_alv, ls_fcat like line of lt_fcat.
data ls_layo type slis_layout_alv.
initialization.so_vbeln-low = '4970'.so_vbeln-high = '4975'.append so_vbeln.
start-of-selection. perform getvbak. if lt_vbak[] is not initial. perform fldcat. perform displayvbak. endif.
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM displayvbak . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_GRID_TITLE = 'SALES DOCUMENT HEADER DATA' IT_FIELDCAT = lt_fcat[] TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " displayvbak
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-seltext_m = 'Sales Doc'. ls_fcat-outputlen = 10. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-seltext_m = 'Creation date'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-seltext_m = 'Creation Time'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-seltext_m = 'Created by'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
endform.
PROGRAM19:
REPORT Z630PMALV19.
type-pools slis.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat,
erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak.
data : lt_fcat type table of slis_fieldcat_alv, ls_fcat like line of lt_fcat.
data : lt_events type table of slis_alv_event, ls_events like line of lt_events.
initialization.so_vbeln-low = '4970'.so_vbeln-high = '4975'.append so_vbeln.
start-of-selection. perform getvbak. if lt_vbak[] is not initial. perform fldcat. perform registerevents. perform displayvbak. endif.
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM displayvbak . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = sy-repid I_GRID_TITLE = 'SALES DOCUMENT HEADER DATA' IT_FIELDCAT = lt_fcat[] IT_EVENTS = lt_events[] TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " displayvbak
FORM fldcat .
clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-seltext_m = 'Sales Doc'. ls_fcat-outputlen = 10. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-seltext_m = 'Creation date'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-seltext_m = 'Creation Time'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-seltext_m = 'Created by'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
endform.
FORM registerevents . clear ls_events. ls_events-name = 'USER_COMMAND'. ls_events-form = 'ITEMDATA'. append ls_events to lt_events.ENDFORM. " registerevents
PROGRAM20:
REPORT Z630PMALV20.
type-pools slis.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak.
data : lt_fcat type table of slis_fieldcat_alv, ls_fcat like line of lt_fcat.
data : lt_events type table of slis_alv_event, ls_events like line of lt_events.
initialization.so_vbeln-low = '4970'.so_vbeln-high = '4975'.append so_vbeln.
start-of-selection. perform getvbak. if lt_vbak[] is not initial. perform fldcat. perform registerevents. perform displayvbak. endif.
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM displayvbak . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = sy-repid I_GRID_TITLE = 'SALES DOCUMENT HEADER DATA' IT_FIELDCAT = lt_fcat[] IT_EVENTS = lt_events[] TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " displayvbak
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-seltext_m = 'Sales Doc'. ls_fcat-outputlen = 10.
append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-seltext_m = 'Creation date'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-seltext_m = 'Creation Time'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-seltext_m = 'Created by'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
endform.
FORM registerevents . clear ls_events. ls_events-name = 'USER_COMMAND'. ls_events-form = 'ITEMDATA'. append ls_events to lt_events.ENDFORM. " registerevents
form itemdata. message 'User command event' type 'I'.endform.
PROGRAM21:
REPORT Z630PMALV21.
type-pools slis.
data lv_vbeln type vbeln.select-options so_vbeln for lv_vbeln.
types : begin of ty_vbak, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak.
types : begin of ty_vbap, vbeln type vbap-vbeln, posnr type vbap-posnr, matnr type vbap-matnr, end of ty_vbap.
data : lt_vbap type standard table of ty_vbap, ls_vbap type ty_vbap.
data : lt_fcat type table of slis_fieldcat_alv, ls_fcat like line of lt_fcat.
data : lt_events type table of slis_alv_event, ls_events like line of lt_events.
data : ls_selfield type slis_selfield.
initialization.so_vbeln-low = '4970'.so_vbeln-high = '4975'.append so_vbeln.
start-of-selection. perform getvbak. if lt_vbak[] is not initial. perform fldcat. perform registerevents. perform displayvbak. endif.
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM displayvbak . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = sy-repid
I_GRID_TITLE = 'SALES DOCUMENT HEADER DATA' IT_FIELDCAT = lt_fcat[] IT_EVENTS = lt_events[] TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " displayvbak
FORM fldcat . clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-seltext_m = 'Sales Doc'. ls_fcat-outputlen = 10. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-seltext_m = 'Creation date'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-seltext_m = 'Creation Time'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-seltext_m = 'Created by'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
endform.
FORM registerevents . clear ls_events. ls_events-name = 'USER_COMMAND'. ls_events-form = 'ITEMDATA'. append ls_events to lt_events.ENDFORM. " registerevents
form itemdata using ucomm type sy-ucomm ls_selfield type slis_selfield. if ls_selfield-fieldname = 'VBELN'. lv_vbeln = ls_selfield-value.
if lv_vbeln is not initial. perform getvbap. if lt_vbap[] is not initial. perform fldcatvbap. perform events. perform displayvbap. endif. endif. endif.endform.
FORM getvbap . select vbeln posnr matnr from vbap into table lt_vbap where vbeln = lv_vbeln.ENDFORM. " getvbap
FORM fldcatvbap . refresh lt_fcat. clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-seltext_m = 'Sales doc'. ls_fcat-outputlen = 10. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'POSNR'. ls_fcat-seltext_m = 'Item Number'. ls_fcat-outputlen = 10. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'MATNR'. ls_fcat-seltext_m = 'Material'. ls_fcat-outputlen = 10. append ls_fcat to lt_fcat.
ENDFORM. " fldcatvbap
FORM displayvbap . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = sy-repid
I_GRID_TITLE = 'SALES DOCUMENT ITEM DATA' IT_FIELDCAT = lt_fcat[] IT_EVENTS = lt_events[] TABLES T_OUTTAB = lt_vbap[].
ENDFORM. " displayvbap
FORM events . refresh lt_events. clear ls_events. ls_events-name = 'TOP_OF_PAGE'. ls_events-form = 'PRINTHEADING'. append ls_events to lt_events.ENDFORM. " events
form printheading. data : lt_header type table of slis_listheader, ls_header like line of lt_header.
clear ls_header. ls_header-typ = 'H'. ls_header-info = 'Sales Document Item'. append ls_header to lt_header.
clear ls_header. ls_header-typ = 'S'. ls_header-info = 'VBAP Table'. append ls_header to lt_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING IT_LIST_COMMENTARY = lt_header[] i_logo = 'Z630FM'.
endform.
PROGRAM22:
REPORT Z630PMALV22.
type-pools slis.data : ls_layo type slis_layout_alv.
types : begin of ty_vbak,
vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
types : begin of ty_vbap, vbeln type vbap-vbeln, posnr type vbap-posnr, matnr type vbap-matnr, matkl type vbap-matkl, end of ty_vbap.
data : lt_vbap type standard table of ty_vbap, ls_vbap type ty_vbap.
data lt_fcat type table of slis_fieldcat_alv.
data lt_events type slis_t_event.
start-of-selection.* Initialize the ALV Blocked List perform init.
* prepare First block perform fldcatvbak. perform getvbak. perform appendvbak.
* prepare second block perform fldcatvbap. perform getvbap. perform appendvbap.
* Display blocked list perform display.
FORM init . CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' EXPORTING I_CALLBACK_PROGRAM = sy-repid.
ENDFORM. " init
FORM fldcatvbak . CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_PROGRAM_NAME = sy-repid I_STRUCTURE_NAME = 'ZMYVBAK' CHANGING CT_FIELDCAT = lt_fcat[].ENDFORM. " fldcatvbak
FORM getvbak . select vbeln erdat erzet ernam from vbak into table lt_vbak where vbeln in ('0000004970','0000004974').ENDFORM. " getvbak
FORM appendvbak . CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING IS_LAYOUT = ls_layo IT_FIELDCAT = lt_fcat[] I_TABNAME = 'LT_VBAK[]' IT_EVENTS = lt_events[] TABLES T_OUTTAB = lt_vbak[].
ENDFORM. " appendvbak
FORM fldcatvbap . refresh lt_fcat. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_PROGRAM_NAME = sy-repid I_STRUCTURE_NAME = 'ZMYVBAP' CHANGING CT_FIELDCAT = lt_fcat[].
ENDFORM. " fldcatvbap
FORM getvbap . select vbeln posnr matnr matkl into table lt_vbap from vbap
for all entries in lt_vbak where vbeln = lt_vbak-vbeln.ENDFORM. " getvbap
FORM appendvbap . CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING IS_LAYOUT = ls_layo IT_FIELDCAT = lt_fcat[] I_TABNAME = 'LT_VBAP[]' IT_EVENTS = lt_events[] TABLES T_OUTTAB = lt_vbap[].
ENDFORM. " appendvbap
FORM display . CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.ENDFORM. " display
PROGRAM23:
REPORT Z630PMALV23.
TYPE-POOLS SLIS.
TYPES : BEGIN OF TY_VBAK, VBELN TYPE VBAK-VBELN, ERDAT TYPE VBAK-ERDAT, ERZET TYPE VBAK-ERZET, ERNAM TYPE VBAK-ERNAM, END OF TY_VBAK.
DATA : LT_VBAK TYPE STANDARD TABLE OF TY_VBAK, LS_VBAK TYPE TY_VBAK.
TYPES : BEGIN OF TY_VBAP, VBELN TYPE VBAP-VBELN, POSNR TYPE VBAP-POSNR, MATNR TYPE VBAP-MATNR, MATKL TYPE VBAP-MATKL, END OF TY_VBAP.
DATA : LT_VBAP TYPE STANDARD TABLE OF TY_VBAP, LS_VBAP TYPE TY_VBAP.
DATA LT_FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV.
DATA : LS_KEYINFO TYPE SLIS_KEYINFO_ALV.
START-OF-SELECTION. PERFORM FLDCATVBAK. PERFORM FLDCATVBAP.
PERFORM KEYINFO.
PERFORM GETVBAK. PERFORM GETVBAP.
PERFORM DISPLAY.
FORM FLDCATVBAK . CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_PROGRAM_NAME = SY-REPID I_INTERNAL_TABNAME = 'LT_VBAK[]' I_STRUCTURE_NAME = 'ZMYVBAK' CHANGING CT_FIELDCAT = LT_FCAT[].
ENDFORM. " fldcatvbak
FORM FLDCATVBAP . CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING I_PROGRAM_NAME = SY-REPID I_INTERNAL_TABNAME = 'LT_VBAP[]' I_STRUCTURE_NAME = 'ZMYVBAP' CHANGING CT_FIELDCAT = LT_FCAT[].ENDFORM. " fldcatvbap
FORM KEYINFO . CLEAR LS_KEYINFO. LS_KEYINFO-HEADER01 = 'VBELN'. LS_KEYINFO-ITEM01 = 'VBELN'. LS_KEYINFO-HEADER02 = ' '. LS_KEYINFO-ITEM02 = 'POSNR'.ENDFORM. " keyinfo
FORM GETVBAK . SELECT VBELN ERDAT ERZET ERNAM FROM VBAK INTO TABLE LT_VBAK
WHERE VBELN >= '0000004970' AND VBELN <= '0000004974'.ENDFORM. " getvbak
FORM GETVBAP . SELECT VBELN POSNR MATNR MATKL FROM VBAP INTO TABLE LT_VBAP FOR ALL ENTRIES IN LT_VBAK WHERE VBELN = LT_VBAK-VBELN.
ENDFORM. " getvbap
FORM DISPLAY . CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID IT_FIELDCAT = LT_FCAT[] I_TABNAME_HEADER = 'LT_VBAK[]' I_TABNAME_ITEM = 'LT_VBAP[]' IS_KEYINFO = LS_KEYINFO TABLES T_OUTTAB_HEADER = LT_VBAK[] T_OUTTAB_ITEM = LT_VBAP[].ENDFORM. " display
PROGRAM24:
REPORT Z630PMALV24.
data lv_vbeln type vbeln.
data : vbak_cont type ref to cl_gui_custom_container, "" CLASS REFERANCE VARIABLE CREATION vbak_grid type ref to cl_gui_alv_grid.
select-options so_vbeln for lv_vbeln. ""SELECTION SCREEN CREATION
types : begin of ty_vbak, product(10) type c, vbeln type vbak-vbeln, erdat type vbak-erdat, erzet type vbak-erzet, ernam type vbak-ernam, end of ty_vbak.
data : lt_vbak type standard table of ty_vbak, ls_vbak type ty_vbak.
data : lt_fcat type lvc_t_fcat, ""USED FOR PREAPAIR FIELD CATALOG* ls_fcat type lvc_s_fcat.
ls_fcat like line of lt_fcat, ls_layo type lvc_s_layo. "" USED FOR LAYOUT PREAPARATION
data : lt_drop type lvc_t_drop, ls_drop like line of lt_drop.
initialization. so_vbeln-low = '4970'. so_vbeln-high = '4975'. append so_vbeln.
start-of-selection. call screen 100.
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'ABC'.if vbak_cont is initial. """" CLASS OBJECT CREATION CREATE OBJECT VBAK_CONT EXPORTING CONTAINER_NAME = 'CUST1'.
CREATE OBJECT VBAK_GRID EXPORTING I_PARENT = vbak_cont.
perform getvbak. perform fldcat. perform layout. perform dropdown. perform display.endif.ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT. case sy-ucomm. when 'BACK'. leave program. endcase.ENDMODULE. " USER_COMMAND_0100 INPUT
FORM getvbak . select vbeln erdat erzet ernam from vbak into corresponding fields of table lt_vbak where vbeln in so_vbeln.ENDFORM. " getvbak
FORM fldcat .
clear ls_fcat. ls_fcat-fieldname = 'PRODUCT'. ls_fcat-col_pos = 1. ls_fcat-coltext = 'Course Name'. ls_fcat-outputlen = 12. ls_fcat-drdn_hndl = 30. ls_fcat-edit = 'X'. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'VBELN'. ls_fcat-col_pos = 2. ls_fcat-coltext = 'Sales Doc'. ls_fcat-outputlen = 12. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERDAT'. ls_fcat-col_pos = 3. ls_fcat-coltext = 'Creation Date'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERZET'. ls_fcat-col_pos = 4. ls_fcat-coltext = 'Creation Time'. ls_fcat-outputlen = 15. append ls_fcat to lt_fcat.
clear ls_fcat. ls_fcat-fieldname = 'ERNAM'. ls_fcat-col_pos = 5. ls_fcat-coltext = 'Created by'. ls_fcat-outputlen = 15. ls_fcat-emphasize = 'C314'. append ls_fcat to lt_fcat.endform.
FORM layout . clear ls_layo. ls_layo-zebra = 'X'. "" IT PROVIDES ALTERNATIVE COLOUR STRIP ls_layo-grid_title = 'SALES DOCUMENT HEADER DATA'. " IT PROVIDES TITLE TEXT BARENDFORM. " layout
FORM display . CALL METHOD VBAK_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IS_LAYOUT = ls_layo CHANGING IT_OUTTAB = lt_vbak[] IT_FIELDCATALOG = lt_fcat[].ENDFORM. " display
FORM dropdown . clear ls_drop. ls_drop-handle = 30. ls_drop-value = 'ABAP'. append ls_drop to lt_drop.
clear ls_drop. ls_drop-handle = 30. ls_drop-value = 'OOPS ABAP'. append ls_drop to lt_drop.
clear ls_drop. ls_drop-handle = 30. ls_drop-value = 'CROSS APPS'. append ls_drop to lt_drop.
clear ls_drop. ls_drop-handle = 30. ls_drop-value = 'WEBDYNPRO ABAP'. append ls_drop to lt_drop.
CALL METHOD VBAK_GRID->SET_DROP_DOWN_TABLE EXPORTING IT_DROP_DOWN = lt_drop[].
ENDFORM. " dropdown
PROGRAM25: