01-19-2010 6:51 AM
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,
01-19-2010 7:13 AM
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.
01-19-2010 7:04 AM
01-19-2010 7:05 AM
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
01-19-2010 7:16 AM
hi,
Go through this link,
http://wiki.sdn.sap.com/wiki/display/ABAP/DisplaytwoormoreALVsononescreenusingSplitterControl
Hope this helps you,
Regards,
Abhijit G. Borkar
01-19-2010 7:06 AM
Check out this link...
Link: [Multiple ALV List|http://abap-explorer.blogspot.com/2008/09/display-multiple-list-under-same-list.html]
01-19-2010 7:13 AM
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.
01-19-2010 7:14 AM
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