*&---------------------------------------------------------------------*
*& Report ZALV5
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zalv5 NO STANDARD PAGE HEADING.
TABLES: vbak,
vbap.
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
ernam TYPE ernam,
netwr TYPE netwr_ak,
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbeln_va,
posnr TYPE posnr_va,
matnr TYPE matnr,
matkl TYPE matkl,
END OF ty_vbap.
DATA: it_vbak TYPE STANDARD TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak,
it_vbap TYPE STANDARD TABLE OF ty_vbap,
wa_vbap TYPE ty_vbap.
DATA: it_fcat TYPE lvc_t_fcat,
it_fcat2 TYPE lvc_t_fcat,
wa_fcat TYPE lvc_s_fcat,
wa_layo TYPE lvc_s_layo.
DATA: grid TYPE REF TO cl_gui_alv_grid,
grid2 TYPE REF TO cl_gui_alv_grid,
cust_cont TYPE REF TO cl_gui_custom_container,
cust_cont2 TYPE REF TO cl_gui_custom_container.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln for vbak-vbeln.
SELECTION-SCREEN END OF BLOCK b1.
CLASS cl_interactive DEFINITION.
PUBLIC SECTION.
METHODS: handle_double_click
FOR EVENT double_click of cl_gui_alv_grid IMPORTING e_row.
ENDCLASS.
CLASS cl_interactive IMPLEMENTATION.
METHOD handle_double_click.
READ TABLE it_vbak INDEX e_row-index into wa_vbak.
PERFORM getvbap.
CALL SCREEN 104.
ENDMETHOD.
ENDCLASS.
DATA: event_receiver TYPE REF TO cl_interactive.
INITIALIZATION.
START-OF-SELECTION.
CALL SCREEN 103.
*&---------------------------------------------------------------------*
*& Module STATUS_0103 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_0103 output.
SET PF-STATUS 'STATUS_VBAK'.
SET TITLEBAR 'TITLE1'.
IF cust_cont IS INITIAL.
CREATE OBJECT cust_cont
EXPORTING
container_name = 'CONTAINER1'.
CREATE OBJECT grid
EXPORTING
i_parent = cust_cont.
PERFORM getvbak.
PERFORM layout.
PERFORM fieldcatalog.
PERFORM display_vbak.
ELSE.
CALL METHOD grid->refresh_table_display.
ENDIF.
endmodule. " STATUS_0103 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0103 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_0103 input.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
endmodule. " USER_COMMAND_0103 INPUT
*&---------------------------------------------------------------------*
*& Form GETVBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form GETVBAK .
SELECT vbeln
erdat
ernam
netwr FROM vbak
INTO CORRESPONDING FIELDS OF TABLE it_vbak
WHERE vbeln in s_vbeln.
endform. " GETVBAK
*&---------------------------------------------------------------------*
*& Form GETVBAP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form GETVBAP .
SELECT *
FROM vbap
INTO CORRESPONDING FIELDS OF TABLE it_vbap
WHERE vbeln = wa_vbak-vbeln.
endform. " GETVBAP
*&---------------------------------------------------------------------*
*& Form LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form LAYOUT .
wa_layo-grid_title = 'Sales Header Data'.
wa_layo-cwidth_opt = 'X'.
wa_layo-zebra = 'X'.
endform. " LAYOUT
*&---------------------------------------------------------------------*
*& Form FIELDCATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form FIELDCATALOG .
REFRESH it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'VBELN'.
wa_fcat-col_pos = 1.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Sales Document'.
APPEND wa_fcat to it_fcat.
wa_fcat-fieldname = 'ERDAT'.
wa_fcat-col_pos = 2.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Date'.
append wa_fcat to it_fcat.
wa_fcat-fieldname = 'ERNAM'.
wa_fcat-col_pos = 3.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Name'.
append wa_fcat to it_fcat.
wa_fcat-fieldname = 'NETWR'.
wa_fcat-col_pos = 4.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Net Value'.
append wa_fcat to it_fcat.
endform. " FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form DISPLAY_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DISPLAY_VBAK .
CALL METHOD grid->set_table_for_first_display
EXPORTING
is_layout = wa_layo
CHANGING
it_outtab = it_vbak
it_fieldcatalog = it_fcat.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_double_click for grid.
endform. " DISPLAY_VBAK
*&---------------------------------------------------------------------*
*& Module STATUS_0104 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_0104 output.
SET PF-STATUS 'STATUS_VBAP'.
SET TITLEBAR 'TITLE2'.
IF cust_cont2 IS INITIAL.
CREATE OBJECT cust_cont2
EXPORTING
container_name = 'CONTAINER2'.
CREATE OBJECT grid2
EXPORTING
i_parent = cust_cont2.
PERFORM fieldcatalog_2.
PERFORM layout_2.
PERFORM display_2.
ELSE.
CALL METHOD grid2->refresh_table_display.
ENDIF.
endmodule. " STATUS_0104 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0104 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_0104 input.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 103.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
endmodule. " USER_COMMAND_0104 INPUT
*&---------------------------------------------------------------------*
*& Form FIELDCATALOG_2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form FIELDCATALOG_2 .
REFRESH it_fcat2.
CLEAR wa_fcat.
wa_fcat-fieldname = 'VBELN'.
wa_fcat-col_pos = 1.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Sales Document'.
APPEND wa_fcat to it_fcat2.
wa_fcat-fieldname = 'POSNR'.
wa_fcat-col_pos = 2.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Sales Doc. Item'.
append wa_fcat to it_fcat2.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-col_pos = 3.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Material No.'.
append wa_fcat to it_fcat2.
wa_fcat-fieldname = 'MATKL'.
wa_fcat-col_pos = 4.
wa_fcat-outputlen = 15.
wa_fcat-coltext = 'Material Group'.
append wa_fcat to it_fcat2.
endform. " FIELDCATALOG_2
*&---------------------------------------------------------------------*
*& Form LAYOUT_2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form LAYOUT_2 .
wa_layo-grid_title = 'Sales Item Data'.
wa_layo-cwidth_opt = 'X'.
wa_layo-zebra = 'X'.
endform. " LAYOUT_2
*&---------------------------------------------------------------------*
*& Form DISPLAY_2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DISPLAY_2 .
CALL METHOD grid2->set_table_for_first_display
EXPORTING
is_layout = wa_layo
CHANGING
it_outtab = it_vbap
it_fieldcatalog = it_fcat2.
endform. " DISPLAY_2
Output:
After providing the input...
Double clicking Sales Document 179... we get the Sales Item Information
No comments:
Post a Comment