Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

REG : OOPS Controls Flow In Report

Former Member
0 Likes
760

Hii,

I have to create a report in which the screen should be divided into 3 parts given below..


________________________________________                
                |                                                               |
                |                                                               |
                |                                                               |
                |_______________________________ |
                |                                                               |
                |                                                               |
                |                                                               |
________|_______________________________ |

Now in the left hand side it should display the tree structure and when the user chooses any value from the left the right top screen should display a 2 tabstrip having some values in it. After the user chooses any tabstrip corresponding to that the below right box should display a table control having some entries.

Does anyone have any idea regarding this??

Regards,

Jhings.

Edited by: Jhings on Jan 11, 2012 9:05 PM

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
708

Hi,

I am Pasting the code which will already executed by me.

This code will give brief information to you.

REPORT  ZALVMLTP.

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.
SELECT * FROM sflight INTO TABLE gt_sflight_2 UP TO 18 ROWS.
SELECT * FROM sflight INTO TABLE gt_sflight_3 UP TO 9 ROWS.

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'.
*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 SY-UCOMM.
    WHEN 'BACK'.
      LEAVE SCREEN.
    WHEN 'CANCEL'.
      LEAVE PROGRAM.
    WHEN 'EXIT'.
      LEAVE SCREEN.
  ENDCASE.
ENDMODULE.                    "user_command_9010 INPUT

Warm Regars,

PavanKumar.G

Hii,

I have to create a report in which the screen should be divided into 3 parts given below..


________________________________________                
                |                                                               |
                |                                                               |
                |                                                               |
                |_______________________________ |
                |                                                               |
                |                                                               |
                |                                                               |
________|_______________________________ |

Now in the left hand side it should display the tree structure and when the user chooses any value from the left the right top screen should display a 2 tabstrip having some values in it. After the user chooses any tabstrip corresponding to that the below right box should display a table control having some entries.

Does anyone have any idea regarding this??

Regards,

Jhings.

Edited by: Jhings on Jan 11, 2012 9:05 PM

4 REPLIES 4
Read only

Former Member
0 Likes
708

This can be achieved by using docking container [CL_GUI_DOCKING_CONTAINER|http://help.sap.com/saphelp_nw70/helpdata/en/f5/4f6e0a9f2511d295cc00a0c930660b/frameset.htm]. For your requirement you shoud use a docking containers. docked to the left corner of screen to display the tree and then rest of the tab stip and table control can be created in screen painter.

Edited by: Gaurav B. on Jan 11, 2012 4:52 PM

Read only

Former Member
0 Likes
708

DEMO_ABAP_OBJECTS_DIALOG_BOX

check this report. just execute this first to know the feel

Read only

Former Member
0 Likes
709

Hi,

I am Pasting the code which will already executed by me.

This code will give brief information to you.

REPORT  ZALVMLTP.

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.
SELECT * FROM sflight INTO TABLE gt_sflight_2 UP TO 18 ROWS.
SELECT * FROM sflight INTO TABLE gt_sflight_3 UP TO 9 ROWS.

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'.
*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 SY-UCOMM.
    WHEN 'BACK'.
      LEAVE SCREEN.
    WHEN 'CANCEL'.
      LEAVE PROGRAM.
    WHEN 'EXIT'.
      LEAVE SCREEN.
  ENDCASE.
ENDMODULE.                    "user_command_9010 INPUT

Warm Regars,

PavanKumar.G

Read only

Saha_Arpan
Explorer
0 Likes
708

Hi,

are you actually speaking about combining a tree structure with table controls and tab controls...................then i think that this can be done using module pool only...........