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

oops alv with two screen in same container

Former Member
0 Likes
1,586

is it possible to create a two containers in the same screen with alv display in them?

If so please send me the procedure and code.

If it is not possible please let me know how to display two different itabs in the same screen in two different blocks.

Thanks in advance,

1 ACCEPTED SOLUTION
Read only

former_member194669
Active Contributor
0 Likes
1,134

Hi,

Check for demo program RSDEMO_SPLITTER_CONTROL

aRs

is it possible to create a two containers in the same screen with alv display in them?

If so please send me the procedure and code.

If it is not possible please let me know how to display two different itabs in the same screen in two different blocks.

Thanks in advance,

4 REPLIES 4
Read only

Former Member
0 Likes
1,134

Hi,

Yeah you can have two containers in the same screen with alv display in them.

To do that create 2 containers in the screen paiter.Give some names to them.

Create 2 grid objects and refer to them. Procedure is same as we do for one grid.

Thanks&Regards,

Siri.

Read only

former_member194669
Active Contributor
0 Likes
1,135

Hi,

Check for demo program RSDEMO_SPLITTER_CONTROL

aRs

Read only

pavel_parshenkov2
Participant
0 Likes
1,134

hi, yeah it's possible

look example code:


DATA: "Containers for screen element
 g_container   TYPE REF TO cl_gui_docking_container.

* ALV Grids:
 grid_req             TYPE REF TO cl_gui_alv_grid,
 grid_reqitem         TYPE REF TO cl_gui_alv_grid,
 grid_ord             TYPE REF TO cl_gui_alv_grid,
 grid_orditem         TYPE REF TO cl_gui_alv_grid.

FORM create_screen_controls.

* Spliters
  DATA l_vsplitter       TYPE REF TO cl_gui_splitter_container.
  DATA l_hsplitter_left  TYPE REF TO cl_gui_splitter_container.
  DATA l_hsplitter_right TYPE REF TO cl_gui_splitter_container.

* Right and left sides
  DATA l_panel_left      TYPE REF TO cl_gui_container.
  DATA l_panel_right     TYPE REF TO cl_gui_container.

* Subscreens
  DATA l_container_1     TYPE REF TO cl_gui_container.
  DATA l_container_2     TYPE REF TO cl_gui_container.
  DATA l_container_3     TYPE REF TO cl_gui_container.
  DATA l_container_4     TYPE REF TO cl_gui_container.


* Main container
  CREATE OBJECT g_container
   EXPORTING
    repid      = sy-repid
    dynnr      = '0100'
    side       = cl_gui_docking_container=>dock_at_left
    extension  = 2048
   EXCEPTIONS
    cntl_error                  = 1
    cntl_system_error           = 2
    create_error                = 3
    lifetime_error              = 4
    lifetime_dynpro_dynpro_link = 5
    OTHERS                      = 6.

  PERFORM check_sys_mess.

*** Subcontainers

* Vertical Spliter
  CREATE OBJECT l_vsplitter
   EXPORTING
     parent  = g_container
     rows    = 1
     columns = 2.

  PERFORM check_sys_mess.

  l_vsplitter->set_border( border = cl_gui_cfw=>false ).

* Two parts of vertical spliter
  l_panel_left  = l_vsplitter->get_container( row = 1 column = 1 ).
  l_panel_right = l_vsplitter->get_container( row = 1 column = 2 ).


* Left Horisontal spliter
  CREATE OBJECT l_hsplitter_left
   EXPORTING
    parent  = l_panel_left
    rows    = 2
    columns = 1.

  PERFORM check_sys_mess.

* Right Horisontal spliter
  CREATE OBJECT l_hsplitter_right
   EXPORTING
    parent = l_panel_right
    rows    = 2
    columns = 1.

  PERFORM check_sys_mess.

  l_hsplitter_left->set_border( border = cl_gui_cfw=>false ).
  l_hsplitter_right->set_border( border = cl_gui_cfw=>false ).

  l_container_1 = l_hsplitter_left->get_container( row = 1 column = 1 ).
  l_container_3 = l_hsplitter_left->get_container( row = 2 column = 1 ).
  l_container_2 = l_hsplitter_right->get_container( row = 1 column = 1 ).
  l_container_4 = l_hsplitter_right->get_container( row = 2 column = 1 ).

  PERFORM check_sys_mess.

*  IF sy-uname EQ 'PARSHENKOV'.
*    l_hsplitter_left->set_visible( visible = space ).
*  ENDIF.

*** Assign Alv Greeds to containers

* GRID of Source Headers
  CREATE OBJECT grid_req
    EXPORTING
     i_parent = l_container_1.

  PERFORM check_sys_mess.

* GRID of Target Headers
  CREATE OBJECT grid_ord
   EXPORTING
    i_parent = l_container_2.

  PERFORM check_sys_mess.

* GRID of Source Items
  CREATE OBJECT grid_reqitem
   EXPORTING
    i_parent = l_container_3.

  PERFORM check_sys_mess.

* GRID of Target Items
  CREATE OBJECT grid_orditem
   EXPORTING
    i_parent = l_container_4.

  PERFORM check_sys_mess.


ENDFORM.                    "create_screen_controls

Read only

Former Member
0 Likes
1,134

Hi,

it is possible to create two containers in the same screen.

DATA:G_CONTAINER TYPE SCRFNAME VALUE 'TABC',

G_CONTAINER1 TYPE SCRFNAME VALUE 'TABC1',

GRID TYPE REF TO CL_GUI_ALV_GRID,

G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

GRID1 TYPE REF TO CL_GUI_ALV_GRID,

G_CUSTOM_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

perform grid_disp.

perform grid_disp1.

FORM GRID_DISP.

IF NOT G_CUSTOM_CONTAINER IS INITIAL.

PERFORM CLEAR_GRID.

ENDIF.

CREATE OBJECT G_CUSTOM_CONTAINER

EXPORTING CONTAINER_NAME = G_CONTAINER.

CREATE OBJECT GRID

EXPORTING I_PARENT = G_CUSTOM_CONTAINER.

PERFORM FIELD_CAT.

PERFORM FILL_DATA.

CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY

CHANGING

IT_FIELDCATALOG = FCAT[]

IT_OUTTAB = table[].

ENDFORM.

FORM GRID_DISP1.

IF NOT G_CUSTOM_CONTAINER1 IS INITIAL.

PERFORM CLEAR_GRID1.

ENDIF.

CREATE OBJECT G_CUSTOM_CONTAINER1

EXPORTING CONTAINER_NAME = G_CONTAINER1.

CREATE OBJECT GRID1

EXPORTING I_PARENT = G_CUSTOM_CONTAINER1.

PERFORM FIELD_CAT1.

PERFORM FILL_DATA1.

CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY

CHANGING

IT_FIELDCATALOG = FCAT1[]

IT_OUTTAB = table1[].

ENDFORM.

regards,

bharat.