Display more than one Internal Table in ALV using Object Oriented ABAP Programming

...Previous

*&---------------------------------------------------------------------*
*& Report ZPC_CONTAINER_CONTROL                          * 
*&---------------------------------------------------------------------*
REPORT zpc_container_control.
*Declaration
DATA: Splitter_1     TYPE REF TO cl_gui_splitter_container,
             Splitter_2     TYPE REF TO cl_gui_splitter_container,
             Container     TYPE REF TO cl_gui_custom_container,
             Container_1 TYPE REF TO cl_gui_container,
             Container_2 TYPE REF TO cl_gui_container,
             Container_3 TYPE REF TO cl_gui_container,
             Grid1            TYPE REF TO cl_gui_alv_grid,
             Grid2            TYPE REF TO cl_gui_alv_grid,
             Grid3            TYPE REF TO cl_gui_alv_grid.
DATA: Gt_sflight_1 TYPE TABLE OF sflight, 
             Gt_sflight_2 TYPE TABLE OF sflight, 
             Gt_sflight_3 TYPE TABLE OF sflight, 
             G_container TYPE scrfname VALUE 'CCONTAINER'.
DATA: ok_code TYPE sy-ucomm.
* fetching data from table for different internal tables 
SELECT * FROM sflight INTO TABLE gt_sflight_1. “Itab 1 
SELECT * FROM sflight INTO TABLE gt_sflight_2 UP TO 3 ROWS. “Itab 2 
SELECT * FROM sflight INTO TABLE gt_sflight_3 UP TO 2 ROWS. “Itab 3 
CALL SCREEN 9010. 
*&---------------------------------------------------------------------*
*& Module STATUS_9010 OUTPUT                                    *
*&---------------------------------------------------------------------*
MODULE status_9010 OUTPUT. 
SET PF-STATUS 'TEST'. 
*creating object reference for container 
CREATE OBJECT container 
EXPORTING 
   container_name = 'CCONTAINER'. “Pass name of container created in Screen no 9010
*splitting the main container into 1 row & 2 coloum 
CREATE OBJECT splitter_1 
EXPORTING 
   Parent     = container 
   Rows      = 1 
   Columns = 2. 
*getting the reference for the splited container (row 1 & col 1 container) 
CALL METHOD splitter_1->get_container 
EXPORTING 
   Row      = 1 
   Column = 1 
RECEIVING 
   Container = container_1. 
*getting the reference for the splited container (row 1 & col 2 container) 
CALL METHOD splitter_1->get_container 
EXPORTING 
   Row      = 1 
   Column = 2 
RECEIVING 
   Container = container_2. 
*splitting the 2nd coloum container in to 2 rows & 1 coloum 
CREATE OBJECT splitter_2 
EXPORTING 
   Parent     = container_2 
   Rows      = 2 
   Columns = 1. 
*getting the reference for the splited container2 (row 1 & col 2 container) 
CALL METHOD splitter_2->get_container 
EXPORTING 
   Row      = 1 
   Column = 1 
RECEIVING 
   Container = container_2. 
*getting the reference for the splited container2 (row 2 & col 1 container) 
CALL METHOD splitter_2->get_container 
EXPORTING 
   Row      = 2 
   Column = 1 
RECEIVING 
   Container = container_3.
*populating first internal table to the container 
CREATE OBJECT container
EXPORTING 
   container_name = g_container. 
CREATE OBJECT grid1
EXPORTING 
   i_parent = container_1.
CALL METHOD grid1->set_table_for_first_display 
EXPORTING 
   i_structure_name = 'SFLIGHT' 
CHANGING
    it_outtab = gt_sflight_1. 
*populating second internal table 
CREATE OBJECT container 
EXPORTING 
   container_name = g_container.
CREATE OBJECT grid2 
EXPORTING 
   i_parent = container_2. 
CALL METHOD grid2->set_table_for_first_display 
EXPORTING
   i_structure_name = 'SFLIGHT' 
CHANGING 
   it_outtab = gt_sflight_2.
*populating third internal table 
CREATE OBJECT container 
EXPORTING 
   container_name = g_container. 
CREATE OBJECT grid3 
EXPORTING
    i_parent = container_3. 
CALL METHOD grid3->set_table_for_first_display 
EXPORTING 
   i_structure_name = 'SFLIGHT'
CHANGING
   it_outtab = gt_sflight_3. 
ENDMODULE. “STATUS_9010 OUTPUT 
*&---------------------------------------------------------------------*
*& Module EXIT INPUT                                                        *
*&---------------------------------------------------------------------* 
MODULE exit INPUT.
*free the container memory when exit
CALL METHOD container->free. 
LEAVE PROGRAM. 
ENDMODULE.  “EXIT INPUT
*&---------------------------------------------------------------------* 
*& Module USER_COMMAND_9010 INPUT                      *
*&---------------------------------------------------------------------*
MODULE user_command_9010 INPUT. 
CALL METHOD cl_gui_cfw=>dispatch. 
CASE ok_code. 
   WHEN 'BACK'. 
        LEAVE SCREEN. 
   WHEN 'CANCEL'. 
        LEAVE PROGRAM. 
   WHEN 'EXIT'. 
       LEAVE SCREEN. 
ENDCASE. 
ENDMODULE.  “USER_COMMAND_9010 INPUT 

Output

The report will display as below screen shot.  

 

Please send us your feedback/suggestions at webmaster@SAPTechnical.COM 

HomeContribute About Us Privacy Terms Of Use • Disclaimer • SafeCompanies: Advertise on SAPTechnical.COM | Post JobContact Us  

Graphic Design by Round the Bend Wizards

footer image footer image