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

Multiple ALV

Former Member
0 Likes
539

1.shall we use multiple ALV screen in a single window and

if possible shall we drilldown further?

Rgds,

Venkonk.

1 ACCEPTED SOLUTION
3 REPLIES 3
Read only

former_member402443
Contributor
0 Likes
471

Hi ,

It is possible to display multiple alv report in a single screen.

Check this code . It helps u.

----


  • FM REUSE_ALV_LIST_DISPLAY - Several Lists *

----


CONSTANTS :

c_x VALUE 'X'.

----


  • Macro definition

DEFINE m_fieldcat.

ls_fieldcat-fieldname = &1.

ls_fieldcat-ref_tabname = &2.

ls_fieldcat-tabname = &3.

append ls_fieldcat to lt_fieldcat.

END-OF-DEFINITION.

DEFINE m_sort.

ls_sort-fieldname = &1.

ls_sort-up = c_x.

append ls_sort to lt_sort.

END-OF-DEFINITION.

----


TYPE-POOLS: slis. " ALV Global types

TYPES:

  • 1st Table

BEGIN OF ty_kna1,

kunnr TYPE kna1-kunnr, " Customer number

ernam TYPE kna1-ernam, " Name of Person who Created

erdat TYPE kna1-erdat, " Creation date

name1 TYPE kna1-name1, " Name 1 .

END OF ty_kna1,

  • 2nd Table

BEGIN OF ty_mara,

matnr TYPE mara-matnr, " Material number

ernam TYPE mara-ernam, " Name of Person who Created

ersda TYPE mara-ersda, " Creation date

mtart TYPE mara-mtart, " Material type

matkl TYPE mara-matkl, " Material group

END OF ty_mara,

  • 3rd Table

BEGIN OF ty_vbak,

vbeln TYPE vbak-vbeln, " Sales document

vkorg TYPE vbak-vkorg, " Sales organization

vtweg TYPE vbak-vtweg, " Distribution channel

kunnr TYPE vbak-kunnr, " Sold-to party

erdat TYPE vbak-erdat, " Creation date

END OF ty_vbak.

----


DATA:

gs_layout TYPE slis_layout_alv,

gt_kna1 TYPE TABLE OF ty_kna1,

gt_mara TYPE TABLE OF ty_mara,

gt_vbak TYPE TABLE OF ty_vbak.

----


SELECTION-SCREEN :

SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED

PARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

----


INITIALIZATION.

v_1 = 'Maximum of records to read'.

----


START-OF-SELECTION.

  • Read data

SELECT kunnr ernam erdat name1

FROM kna1

UP TO p_max ROWS

INTO TABLE gt_kna1.

SELECT matnr ernam ersda mtart matkl

FROM mara

UP TO p_max ROWS

INTO TABLE gt_mara.

SELECT vbeln vkorg vtweg kunnr erdat

FROM vbak

UP TO p_max ROWS

INTO TABLE gt_vbak.

----


END-OF-SELECTION.

PERFORM f_display_data.

----


  • FORM USER_COMMAND *

----


FORM user_command USING u_ucomm TYPE sy-ucomm

us_selfield TYPE slis_selfield. "#EC CALLED

DATA:

ls_vbak TYPE ty_vbak.

CASE u_ucomm.

WHEN '&IC1'. " Pick

CASE us_selfield-tabname.

WHEN 'GT_MARA'.

WHEN 'GT_KNA1'.

WHEN 'GT_VBAK'.

READ TABLE gt_vbak INDEX us_selfield-tabindex INTO ls_vbak.

IF sy-subrc EQ 0.

SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDCASE.

ENDFORM. " USER_COMMAND

----


  • Form f_display_data

----


FORM f_display_data.

DATA :

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog

ls_sort TYPE slis_sortinfo_alv,

lt_sort TYPE slis_t_sortinfo_alv, " Sort table

lt_events TYPE slis_t_event,

ls_event TYPE slis_alv_event.

gs_layout-group_change_edit = c_x.

gs_layout-colwidth_optimize = c_x.

gs_layout-zebra = c_x.

gs_layout-detail_popup = c_x.

gs_layout-get_selinfos = c_x.

  • Build field catalog and sort table

m_fieldcat 'KUNNR' 'KNA1' 'GT_KNA1'.

m_fieldcat 'ERNAM' 'KNA1' 'GT_KNA1'.

m_fieldcat 'ERDAT' 'KNA1' 'GT_KNA1'.

m_fieldcat 'NAME1' 'KNA1' 'GT_KNA1'.

m_sort 'KUNNR'.

  • Build Event Table

MOVE 'TOP_OF_PAGE' TO ls_event-name.

MOVE 'TOP_OF_PAGE' TO ls_event-form.

APPEND ls_event TO lt_events.

MOVE 'END_OF_LIST' TO ls_event-name.

MOVE 'END_OF_LIST' TO ls_event-form.

APPEND ls_event TO lt_events.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = lt_fieldcat

is_layout = gs_layout

it_events = lt_events

it_sort = lt_sort

i_save = 'A'

TABLES

t_outtab = gt_kna1.

ENDFORM. " F_DISPLAY_DATA

----


  • FORM top_of_page *

----


FORM top_of_page. "#EC CALLED

ULINE.

WRITE : sy-uname, sy-title(56) CENTERED, sy-datum.

ULINE.

ENDFORM. " TOP_OF_PAGE

----


  • FORM End_of_list *

----


FORM end_of_list. "#EC CALLED

DATA :

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog

ls_sort TYPE slis_sortinfo_alv,

lt_sort TYPE slis_t_sortinfo_alv, " Sort table

lt_events TYPE slis_t_event,

ls_event TYPE slis_alv_event.

  • Build field catalog and sort table

m_fieldcat 'MATNR' 'MARA' 'GT_MARA'.

m_fieldcat 'ERNAM' 'MARA' 'GT_MARA'.

m_fieldcat 'ERSDA' 'MARA' 'GT_MARA'.

m_fieldcat 'MTART' 'MARA' 'GT_MARA'.

m_fieldcat 'MATKL' 'MARA' 'GT_MARA'.

m_sort 'MATNR'.

  • Build Event Table

MOVE 'END_OF_LIST' TO ls_event-name.

MOVE 'END_OF_LIST_2' TO ls_event-form.

APPEND ls_event TO lt_events.

gs_layout-list_append = c_x.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

it_fieldcat = lt_fieldcat

is_layout = gs_layout

it_sort = lt_sort

it_events = lt_events

i_save = 'A'

TABLES

t_outtab = gt_mara.

ENDFORM. " END_OF_LIST

----


  • FORM End_of_list_2 *

----


FORM end_of_list_2. "#EC CALLED

DATA :

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog

ls_sort TYPE slis_sortinfo_alv,

lt_sort TYPE slis_t_sortinfo_alv, " Sort table

lt_events TYPE slis_t_event,

ls_event TYPE slis_alv_event.

  • Build field catalog and sort table

m_fieldcat 'VBELN' 'VBAK' 'GT_VBAK'.

m_fieldcat 'VKORG' 'VBAK' 'GT_VBAK'.

m_fieldcat 'VTWEG' 'VBAK' 'GT_VBAK'.

m_fieldcat 'KUNNR' 'VBAK' 'GT_VBAK'.

m_fieldcat 'ERDAT' 'VBAK' 'GT_VBAK'.

m_sort 'VBELN'.

  • Build Event Table

MOVE 'TOP_OF_PAGE' TO ls_event-name.

MOVE 'TOP_OF_PAGE' TO ls_event-form.

APPEND ls_event TO lt_events.

gs_layout-list_append = c_x.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

it_fieldcat = lt_fieldcat

is_layout = gs_layout

it_sort = lt_sort

it_events = lt_events

i_save = 'A'

TABLES

t_outtab = gt_vbak.

ENDFORM. " END_OF_LIST_2

Reward Points, if useful.

Regards,

Manoj Kumar

Read only

Former Member
0 Likes
471

Hi you can check the sample code.

REPORT zdouble_alv.

TYPE-POOLS : slis.

DATA :

gs_stable TYPE lvc_s_stbl,

gt_right LIKE lvc_s_objs OCCURS 0 WITH HEADER LINE,

gt_left LIKE lvc_s_objs OCCURS 0 WITH HEADER LINE,

layout TYPE slis_layout_alv,

field_tab TYPE slis_t_fieldcat_alv.

DATA:

wa_field_tab TYPE slis_fieldcat_alv.

gs_stable-row = 'X'.

gs_stable-col = 'X'.

*Fill the tables'

gt_right-id = '1'.

gt_right-text = 'TOM'.

APPEND gt_right.

gt_right-id = '2'.

gt_right-text = 'PATRICK'.

APPEND gt_right.

gt_right-id = '3'.

gt_right-text = 'BURGES'.

APPEND gt_right.

gt_right-id = '4'.

gt_right-text = 'VITRIO'.

APPEND gt_right.

gt_right-id = '5'.

gt_right-text = 'GREG'.

APPEND gt_right.

*--- fill layout

layout-colwidth_optimize = 'X'.

layout-zebra = 'X'.

CALL FUNCTION 'REUSE_DOUBLE_ALV'

EXPORTING

i_title_left = 'List of Names'

i_title_right = 'List of Names'

i_popup_title = 'List of Names'

  • IS_LAYOUT_DOUBLE_ALV =

  • IT_SP_GROUP =

  • I_DISPLAY_ONLY =

is_stable = gs_stable

  • IMPORTING

  • E_CANCELLED =

TABLES

t_leftx = gt_right

t_rightx = gt_left

Also check the

*Reward if useful.