Application Development 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: 

How to display mutilpe list in a screen ( ALV list)

Former Member
0 Kudos

Hello,

Could you please help me the source code sample for displaying many list in an ALV screen (Basic list)

For example : I 've 2 table with different information.

Table A Col A1 col A2 Col A3

Table B Col B1 B2 B3 B4 B5

Now I need to display them in only 1 screen like :

List of record in table A

Col A1 Col A2 Col A3

.................................

....................................

List of record in table B

B1 B2 B3 B4 B5

.................................

....................................

Thanks,

1 ACCEPTED SOLUTION

Former Member
0 Kudos

for this kind of requirement use the LIst ALV.

The below sample code might help you

DATA : g_t_print TYPE slis_print_alv.

  • Initialize ALV

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = sy-repid.

  • ADD first ALC

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_strans'

it_events = g_t_events_strans

TABLES

t_outtab = g_t_strans

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_sretrev'

it_events = g_t_events_sretrev

TABLES

t_outtab = g_t_sretrev

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_stransrev'

it_events = g_t_events_stransrev

TABLES

t_outtab = g_t_stransrev

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_sret'

it_events = g_t_events_sret

TABLES

t_outtab = g_t_sret

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

is_print = g_t_print.

6 REPLIES 6

former_member1245113
Active Contributor
0 Kudos

Hi

Check the Following Thread

Regards

Ram

Former Member
0 Kudos

Hi,

In this case you can use block ALV,

Search SDN for example codes.

Here is one link,

http://wiki.sdn.sap.com/wiki/display/ABAP/DisplaytwoormoreALVsononescreenusingSplitterControl

Hope it helps you,

Regards,

Abhijit G. Borkar

0 Kudos

hi,

Go through this link,

http://wiki.sdn.sap.com/wiki/display/ABAP/DisplaytwoormoreALVsononescreenusingSplitterControl

Hope this helps you,

Regards,

Abhijit G. Borkar

former_member212653
Active Contributor
0 Kudos

Check out this link...

Link: [Multiple ALV List|http://abap-explorer.blogspot.com/2008/09/display-multiple-list-under-same-list.html]

Former Member
0 Kudos

for this kind of requirement use the LIst ALV.

The below sample code might help you

DATA : g_t_print TYPE slis_print_alv.

  • Initialize ALV

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = sy-repid.

  • ADD first ALC

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_strans'

it_events = g_t_events_strans

TABLES

t_outtab = g_t_strans

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_sretrev'

it_events = g_t_events_sretrev

TABLES

t_outtab = g_t_sretrev

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_stransrev'

it_events = g_t_events_stransrev

TABLES

t_outtab = g_t_stransrev

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = g_t_layout

it_fieldcat = g_t_fieldcat[]

i_tabname = 'g_t_sret'

it_events = g_t_events_sret

TABLES

t_outtab = g_t_sret

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2.

IF sy-subrc NE 0.

MESSAGE s999 WITH 'Error in ''REUSE_ALV_LIST_DISPLAY'' FM'.

STOP.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

is_print = g_t_print.

former_member184703
Participant
0 Kudos

Multiple screens can be achieved using Dock container.

Sample code is as follows:

For three internal table to be displayed in seperate screen

1. Declare three output internal tables.

2. Declare ALV components:

DATA: r_grid TYPE REF TO cl_gui_alv_grid,

r_grid1 TYPE REF TO cl_gui_alv_grid,

r_grid2 TYPE REF TO cl_gui_alv_grid,

g_dock1 TYPE REF TO cl_gui_docking_container,

g_dock2 TYPE REF TO cl_gui_docking_container,

it_fieldcat TYPE lvc_t_fcat,

it_fieldcat1 TYPE lvc_t_fcat,

wa_fieldcat TYPE lvc_s_fcat

IN PBO

IF g_dock IS INITIAL.

CREATE OBJECT g_dock

EXPORTING

repid = sy-repid

dynnr = sy-dynnr

side = g_dock->dock_at_left

extension = 300.

CREATE OBJECT r_grid

EXPORTING

i_parent = g_dock.

ENDIF.

IF g_dock1 IS INITIAL.

CREATE OBJECT g_dock1

EXPORTING

repid = sy-repid

dynnr = sy-dynnr

side = g_dock1->dock_at_right

extension = 300.

CREATE OBJECT r_grid1

EXPORTING

i_parent = g_dock1.

ENDIF.

IF g_dock2 IS INITIAL.

CREATE OBJECT g_dock2

EXPORTING

repid = sy-repid

dynnr = sy-dynnr

side = g_dock2->dock_at_top

extension = 100.

CREATE OBJECT r_grid2

EXPORTING

i_parent = g_dock2.

Similarly for other internal table

IF NOT itab[] IS INITIAL.

CALL METHOD r_grid->set_table_for_first_display

CHANGING

it_outtab = itab

it_fieldcatalog = it_fieldcat.

ENDIF.

IF NOT itab1[] IS INITIAL.

CALL METHOD r_grid1->set_table_for_first_display

CHANGING

it_outtab = itab1

it_fieldcatalog = it_fieldcat1.

ENDIF.

Similarly for other internal tables

ENDIF.

Hope this will help u.

Thanks

Subha

Edited by: subhacp on Jan 19, 2010 8:23 AM

Edited by: subhacp on Jan 19, 2010 8:26 AM