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: 

ALV GRID DISPLAY

Former Member
0 Kudos

Hi,

I Have two internal tables. i need to display each row of first internal table in the first row and a separate row for the each row of the second table.

like mentioned below.

OUTPUT FORAMT SHOULD BE

first table 1st row

second table 1st row .

first table 2nd row

second table 2nd row.

-


-


--

Please suggest me and give me sample code to do this.

thanks in advance.

KP

2 REPLIES 2

Former Member
0 Kudos

Hello KP,

Y dont U try for the ALV Hierarcy Display.

<b>REUSE_ALV_HIERSEQ_LIST_DISPLAY</b>

REPORT z_alv_hierseq_list.

----


  • Program with FM REUSE_ALV_HIERSEQ_LIST_DISPLAY *

----


SELECTION-SCREEN :

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

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

SELECTION-SCREEN END OF LINE.

----


CONSTANTS :

c_x VALUE 'X'.

----


TYPES :

  • 1st Table

BEGIN OF ty_vbak,

vbeln TYPE vbak-vbeln, " Sales document

kunnr TYPE vbak-kunnr, " Sold-to party

netwr TYPE vbak-netwr, " Net Value of the Sales Order

waerk TYPE vbak-waerk, " SD document currency

END OF ty_vbak,

  • 2nd Table

BEGIN OF ty_vbap,

vbeln TYPE vbap-vbeln, " Sales document

posnr TYPE vbap-posnr, " Sales document

matnr TYPE vbap-matnr, " Material number

netwr TYPE vbap-netwr, " Net Value of the Sales Order

waerk TYPE vbap-waerk, " SD document currency

END OF ty_vbap.

----


DATA :

  • 1st Table

gt_vbak TYPE TABLE OF ty_vbak,

  • 2nd Table

gt_vbap TYPE TABLE OF ty_vbap.

----


INITIALIZATION.

v_1 = 'Maximum of records to read'.

----


START-OF-SELECTION.

  • Read Sales Document: Header Data

SELECT vbeln kunnr netwr waerk

FROM vbak

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_vbak.

IF NOT gt_vbak[] IS INITIAL.

  • Read Sales Document: Item Data

SELECT vbeln posnr matnr netwr waerk

FROM vbap

INTO CORRESPONDING FIELDS OF TABLE gt_vbap

FOR ALL ENTRIES IN gt_vbak

WHERE vbeln = gt_vbak-vbeln.

ENDIF.

PERFORM f_display.

----


  • Form F_DISPLAY

----


FORM f_display.

TYPE-POOLS: slis. " ALV Global types

  • Macro definition

DEFINE m_fieldcat.

ls_fieldcat-tabname = &1.

ls_fieldcat-fieldname = &2.

ls_fieldcat-ref_tabname = &3.

append ls_fieldcat to lt_fieldcat.

END-OF-DEFINITION.

DEFINE m_sort.

ls_sort-tabname = &1.

ls_sort-fieldname = &2.

ls_sort-up = c_x.

append ls_sort to lt_sort.

END-OF-DEFINITION.

DATA:

ls_layout TYPE slis_layout_alv,

ls_keyinfo TYPE slis_keyinfo_alv,

ls_sort TYPE slis_sortinfo_alv,

lt_sort TYPE slis_t_sortinfo_alv," Sort table

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv." Field catalog

ls_layout-group_change_edit = c_x.

ls_layout-colwidth_optimize = c_x.

ls_layout-zebra = c_x.

ls_layout-detail_popup = c_x.

ls_layout-get_selinfos = c_x.

  • Build field catalog and sort table

m_fieldcat 'GT_VBAK' 'VBELN' 'VBAK'.

m_fieldcat 'GT_VBAK' 'KUNNR' 'VBAK'.

m_fieldcat 'GT_VBAK' 'NETWR' 'VBAK'.

m_fieldcat 'GT_VBAK' 'ERDAT' 'VBAK'.

m_fieldcat 'GT_VBAK' 'WAERK' 'VBAK'.

m_fieldcat 'GT_VBAP' 'POSNR' 'VBAP'.

m_fieldcat 'GT_VBAP' 'MATNR' 'VBAP'.

m_fieldcat 'GT_VBAP' 'NETWR' 'VBAP'.

m_fieldcat 'GT_VBAP' 'WAERK' 'VBAP'.

m_sort 'GT_VBAK' 'KUNNR'.

m_sort 'GT_VBAP' 'NETWR'.

ls_keyinfo-header01 = 'VBELN'.

ls_keyinfo-item01 = 'VBELN'.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND'

is_layout = ls_layout

it_fieldcat = lt_fieldcat

it_sort = lt_sort

i_tabname_header = 'GT_VBAK'

i_tabname_item = 'GT_VBAP'

is_keyinfo = ls_keyinfo

TABLES

t_outtab_header = gt_vbak

t_outtab_item = gt_vbap

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " F_LIST_DISPLAY

----


  • FORM USER_COMMAND *

----


FORM user_command USING i_ucomm TYPE sy-ucomm

is_selfield TYPE slis_selfield. "#EC CALLED

DATA ls_vbak TYPE ty_vbak.

CASE i_ucomm.

WHEN '&IC1'. " Pick

CASE is_selfield-tabname.

WHEN 'GT_VBAP'.

WHEN 'GT_VBAK'.

READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.

IF sy-subrc EQ 0.

  • Sales order number

SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.

  • Display Sales Order

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDCASE.

ENDFORM. " USER_COMMAND

                            • END OF PROGRAM Z_ALV_HIERSEQ_LIST ***********************

Vasanth

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

You might want to take a look at the heirarchical list display. Check program BALVHD01

REgards,

Rich Heilman