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

need sample prog to use REUSE_ALV_HIERSEQ_LIST_DISPLAY function module

Former Member
0 Likes
2,437

Hi Experts,

I need sample prog to use REUSE_ALV_HIERSEQ_LIST_DISPLAY function module

Regards,

Kali Pramod

Hi Experts,

I need sample prog to use REUSE_ALV_HIERSEQ_LIST_DISPLAY function module

Regards,

Kali Pramod

4 REPLIES 4
Read only

Former Member
0 Likes
652

hI

Just go through this demo program

BALVHD01.

Just copy and paste this piece of code also

REPORT ZTESTS .

type-pools:slis.

tables: ekko,ekpo.

data:begin of it_ekko occurs 0,

ebeln like ekko-ebeln,

bukrs like ekko-bukrs,

lifnr like ekko-lifnr,

bedat like ekko-bedat,

end of it_ekko.

data: begin of it_ekpo occurs 0,

sno like ekpo-ebeln,

ebelp like ekpo-ebelp,

menge like ekpo-menge,

netwr like ekpo-netwr,

end of it_ekpo.

data v_repid like sy-repid.

data it_fieldcat type slis_fieldcat_alv occurs 0 with header line.

data x_keyinfo type slis_keyinfo_alv.

select-options:s_ebeln for ekko-ebeln.

initialization.

v_repid = sy-repid.

s_ebeln-low = '1000'.

s_ebeln-sign = 'I'.

s_ebeln-option = 'EQ'.

S_ebeln-high = '5000'.

append s_ebeln.

start-of-selection.

perform get_data.

perform get_field.

perform get_key.

perform key_modify.

perform display.

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data.

select ebeln

bukrs

lifnr

bedat

from ekko into table it_ekko." where ebeln in s_ebeln.

select ebeln

ebelp

menge

netwr from ekpo into table it_ekpo." where ebeln in s_ebeln.

endform. " get_data

&----


*& Form get_field

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_field.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'IT_EKKO'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fieldcat[] .

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'IT_EKPO'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = it_fieldcat[]

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

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. " get_field

&----


*& Form get_key

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_key.

x_keyinfo-header01 = 'EBELN'.

x_keyinfo-item01 = 'SNO'.

endform. " get_key

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display.

*loop at it_ekko where ebeln eq '4500005016'.

  • write it_ekko-ebeln.

  • endloop.

*

*loop at it_ekpo where sno eq '4500005016'.

  • write it_ekpo-sno.

  • endloop.

*

**

*loop at it_fieldcat where key eq space .

  • write : / it_fieldcat-fieldname,it_fieldcat-key.

*endloop.

*

*loop at it_ekko.

  • loop at it_ekpo where sno eq it_ekko-ebeln.

  • write : / it_ekpo-menge,it_ekpo-ebelp.

  • endloop.

  • endloop.

*

*

*

call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

i_callback_program = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IS_LAYOUT =

it_fieldcat = it_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

i_tabname_header = 'IT_EKKO'

i_tabname_item = 'IT_EKPO'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

is_keyinfo = x_keyinfo

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab_header = it_ekko

t_outtab_item = it_ekpo

  • 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. " DISPLAY

&----


*& Form key_modify

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form key_modify.

loop at it_fieldcat. "Avoid Repitiotion of data.

case it_fieldcat-fieldname.

when 'SNO'.

if it_fieldcat-tabname = 'IT_EKPO'.

it_fieldcat-no_out = 'X'.

it_fieldcat-key = space.

endif.

endcase.

modify it_fieldcat index sy-tabix.

endloop.

endform. " key_modify

<b>OR</b>

See the code below.

REPORT z_alv_hierseq_list.

----


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

<b>rEWARD IF USEFULL</b>

Read only

Former Member
0 Likes
652
Check this example report : BALVHD01

chk a sample code.
REPORT  ZTEST_HIER LINE-COUNT 65
                             LINE-SIZE 200
                             NO STANDARD PAGE HEADING
                             MESSAGE-ID ZZ.
 
TYPE-POOLS: SLIS.
 
TYPES: BEGIN OF TY_HEAD,
      VBELN LIKE VBAK-VBELN,
      KUNNR LIKE VBAK-KUNNR,
      NAME  LIKE KNA1-NAME1,
      END OF TY_HEAD.
 
TYPES: BEGIN OF TY_ITEM,
       VBELN LIKE VBAP-VBELN,
       POSNR LIKE VBAP-POSNR,
       MATNR LIKE VBAP-MATNR,
       MAKTX LIKE MAKT-MAKTX,
       CHECK(1),
       END OF TY_ITEM.
DATA: IT_ITEM TYPE TABLE OF TY_ITEM.
DATA: IT_HEADER TYPE TABLE OF TY_HEAD,
       IT_EVENTS TYPE SLIS_T_EVENT,          "Events.
       IT_FIELDCAT      TYPE SLIS_T_FIELDCAT_ALV.
 
DATA: X_LAYOUT         TYPE SLIS_LAYOUT_ALV,
      X_FIELDCAT       TYPE SLIS_FIELDCAT_ALV,
      X_KEY           TYPE SLIS_KEYINFO_ALV,
      X_EVENTS TYPE SLIS_ALV_EVENT,      "Event
      X_VBELN LIKE VBAK-VBELN,
      X_ITEM TYPE TY_ITEM.
CONSTANTS: C_S(1) VALUE '/'.
DATA: V_FLAG.
*---------------------------------------------------------------------*
*                   SELECTION-SCREEN                                  *
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR X_VBELN.      "Sales order Number
SELECTION-SCREEN END OF BLOCK BLK.
 
AT SELECTION-SCREEN.
  IF NOT S_VBELN[] IS INITIAL.
    SELECT SINGLE VBELN
           INTO X_VBELN
           FROM VBAK
           WHERE VBELN IN S_VBELN.
    IF SY-SUBRC <> 0.
      MESSAGE E002 WITH 'Please enter valid Sales Order'(020).
    ENDIF.
  ENDIF.
*----------------------------------------------------------------------*
*       CLASS lcl_bill_complete DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_BILL_COMPLETE DEFINITION.
  PUBLIC SECTION.
    METHODS:GET_HEADER_DATA,
            GET_ITEM_DATA,
            SHOW_DATA,
            FILL_FIELDCAT,
            FILL_EVENTS,
            TOP_OF_PAGE.
ENDCLASS.                    "lcl_bill_complete DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_bill_complete IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_BILL_COMPLETE IMPLEMENTATION.
  METHOD GET_HEADER_DATA.
    DATA:X_HEADER LIKE LINE OF IT_HEADER.
    X_HEADER-VBELN = '12345'.
    X_HEADER-KUNNR = '1234'.
    X_HEADER-NAME = 'Test'.
    APPEND X_HEADER TO IT_HEADER.
    X_HEADER-VBELN = '12346'.
    X_HEADER-KUNNR = '1236'.
    X_HEADER-NAME = 'Test'.
    APPEND X_HEADER TO IT_HEADER.
    X_HEADER-VBELN = '12347'.
    X_HEADER-KUNNR = '1235'.
    X_HEADER-NAME = 'Test'.
    APPEND X_HEADER TO IT_HEADER.
  ENDMETHOD.                    "get_header_data
  METHOD GET_ITEM_DATA.
    DATA:X_ITEM LIKE LINE OF IT_ITEM.
    X_ITEM-VBELN = '12345'.
    X_ITEM-POSNR = '0010'.
    X_ITEM-MATNR = 'TESTMATNR'.
    X_ITEM-MAKTX = 'TESTMAT'.
    APPEND X_ITEM TO IT_ITEM.
    X_ITEM-VBELN = '12345'.
    X_ITEM-POSNR = '0020'.
    X_ITEM-MATNR = 'TESTMATNR'.
    X_ITEM-MAKTX = 'TESTMAT'.
    APPEND X_ITEM TO IT_ITEM.
    X_ITEM-VBELN = '12346'.
    X_ITEM-POSNR = '0010'.
    X_ITEM-MATNR = 'TESTMATNR'.
    X_ITEM-MAKTX = 'TESTMAT'.
    APPEND X_ITEM TO IT_ITEM.
    X_ITEM-VBELN = '12346'.
    X_ITEM-POSNR = '0020'.
    X_ITEM-MATNR = 'TESTMATNR'.
    X_ITEM-MAKTX = 'TESTMAT'.
    APPEND X_ITEM TO IT_ITEM.
    X_ITEM-VBELN = '12347'.
    X_ITEM-POSNR = '0010'.
    X_ITEM-MATNR = 'TESTMATNR'.
    X_ITEM-MAKTX = 'TESTMAT'.
    APPEND X_ITEM TO IT_ITEM.
    X_ITEM-VBELN = '12347'.
    X_ITEM-POSNR = '0020'.
    X_ITEM-MATNR = 'TESTMATNR'.
    X_ITEM-MAKTX = 'TESTMAT'.
    APPEND X_ITEM TO IT_ITEM.
  ENDMETHOD.                    "get_item_data
 
  METHOD SHOW_DATA.
    X_KEY-HEADER01 = 'VBELN'.
    X_KEY-ITEM01   = 'VBELN'.
    X_KEY-ITEM02   = 'POSNR'.
 
 
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM = SY-REPID
        IS_LAYOUT          = X_LAYOUT
        IT_FIELDCAT        = IT_FIELDCAT[]
        I_TABNAME_HEADER   = 'IT_HEADER'
        I_TABNAME_ITEM     = 'IT_ITEM'
        IS_KEYINFO         = X_KEY
        IT_EVENTS          = IT_EVENTS
      TABLES
        T_OUTTAB_HEADER    = IT_HEADER
        T_OUTTAB_ITEM      = IT_ITEM
      EXCEPTIONS
        PROGRAM_ERROR      = 1
        OTHERS             = 2.
  ENDMETHOD.                    "show_data
  METHOD FILL_FIELDCAT.
    DATA: L_POS TYPE I.
    X_LAYOUT-HEADER_TEXT      = 'HEADER'.
    X_LAYOUT-ITEM_TEXT        = 'ITEM'.
    X_LAYOUT-DEFAULT_ITEM     = ' '.
    X_LAYOUT-NO_KEYFIX        = 'X'.
    X_LAYOUT-BOX_TABNAME      = 'IT_ITEM'.
 
    L_POS = L_POS + 1.
*- Sales Order Number
    X_FIELDCAT-FIELDNAME   = 'VBELN'.
    X_FIELDCAT-TABNAME    = 'IT_HEADER'.
    X_FIELDCAT-SELTEXT_M   = 'Sales Order'(017).
    X_FIELDCAT-OUTPUTLEN  = 11.
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
    L_POS = L_POS + 1.
 
    X_FIELDCAT-FIELDNAME   = 'KUNNR'.
    X_FIELDCAT-TABNAME    = 'IT_HEADER'.
    X_FIELDCAT-SELTEXT_M   = 'Sold-to Party'(010).
    X_FIELDCAT-OUTPUTLEN  = 13.
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
    L_POS = L_POS + 1.
 
    X_FIELDCAT-FIELDNAME   = 'NAME'.
    X_FIELDCAT-TABNAME    = 'IT_HEADER'.
    X_FIELDCAT-OUTPUTLEN  = 15.
    X_FIELDCAT-SELTEXT_M   = 'Sold-to name'(011).
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
    L_POS = L_POS + 1.
 
    X_FIELDCAT-FIELDNAME   = 'CHECK'.
    X_FIELDCAT-TABNAME    = 'IT_ITEM'.
    X_FIELDCAT-CHECKBOX   = 'X'.
    X_FIELDCAT-INPUT  = 'X'.
    X_FIELDCAT-EDIT  = 'X'.
    X_FIELDCAT-SELTEXT_M   = ' '.
    X_FIELDCAT-OUTPUTLEN  = 2.
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
    L_POS = L_POS + 1.
    X_FIELDCAT-FIELDNAME   = 'VBELN'.
    X_FIELDCAT-TABNAME    = 'IT_ITEM'.
    X_FIELDCAT-SELTEXT_M   = 'Sales Order'(017).
    X_FIELDCAT-OUTPUTLEN  = 11.
    X_FIELDCAT-TECH = 'X'.
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
    L_POS = L_POS + 1.
*- Sales Order Item
    X_FIELDCAT-FIELDNAME   = 'POSNR'.
    X_FIELDCAT-TABNAME    = 'IT_ITEM'.
    X_FIELDCAT-SELTEXT_M   = 'SO Item'(018).
    X_FIELDCAT-OUTPUTLEN  = 7.
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
    L_POS = L_POS + 1.
 
    X_FIELDCAT-FIELDNAME   = 'MATNR'.
    X_FIELDCAT-TABNAME    = 'IT_ITEM'.
    X_FIELDCAT-OUTPUTLEN  = 18.
    X_FIELDCAT-SELTEXT_M   = 'Material number'(012).
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
    L_POS = L_POS + 1.
 
    X_FIELDCAT-FIELDNAME   = 'MAKTX'.
    X_FIELDCAT-TABNAME    = 'IT_ITEM'.
    X_FIELDCAT-OUTPUTLEN  = 40.
    X_FIELDCAT-SELTEXT_M   = 'Material Description'(013).
    X_FIELDCAT-COL_POS     = L_POS.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR  X_FIELDCAT.
 
  ENDMETHOD.                    "fill_fieldcat
*--Fill the events table
  METHOD FILL_EVENTS.
*-  Top of page
    X_EVENTS-NAME =  'TOP_OF_PAGE'.
    X_EVENTS-FORM =  'TOP_OF_PAGE'.
    APPEND X_EVENTS TO IT_EVENTS.
  ENDMETHOD.                    "fill_events
  "fill_events
  METHOD TOP_OF_PAGE.
*-  Call Steelcase Standard Header
    WRITE 'top_of_page here'.
  ENDMETHOD.                    "top_of_page
ENDCLASS.                    "lcl_bill_complete IMPLEMENTATION
 
START-OF-SELECTION.
  DATA: OBJ TYPE REF TO LCL_BILL_COMPLETE.
  CREATE OBJECT OBJ.
  CALL METHOD OBJ->GET_HEADER_DATA.
  CALL METHOD OBJ->GET_ITEM_DATA.
  CALL METHOD OBJ->FILL_FIELDCAT.
  CALL METHOD OBJ->FILL_EVENTS.
  CALL METHOD OBJ->SHOW_DATA.
*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*      TOP_OF_PAGE
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE.
*-To show the top of page
  CALL METHOD OBJ->TOP_OF_PAGE.
ENDFORM.                    "top_of_page
Read only

Former Member
0 Likes
652

hi

BCALV_TEST_HIERSEQ_LIST std program u check this one.

BCALV_TEST_HIERSEQ_LIST_EVENTS.

check this one aslo.

Read only

Former Member
0 Likes
652

hi

REPORT  Z_ALV_YWA.

TYPE-POOLS: slis.

DATA: BEGIN OF t_scarr OCCURS 0.
        INCLUDE STRUCTURE scarr.
DATA:   expand.
DATA:   END OF t_scarr.

DATA: BEGIN OF t_spfli OCCURS 0.
        INCLUDE STRUCTURE spfli.
DATA:   expand.
DATA:   END OF t_spfli.


DATA: BEGIN OF t_sflight OCCURS 0.
        INCLUDE STRUCTURE spfli.
DATA:   END OF t_sflight.

data: w_scarr type scarr,
      w_spfli type spfli,
      w_sflight type sflight.

tables scarr.

select-options: s_carrid for scarr-carrid.

select * from scarr into table t_scarr where carrid in s_carrid.

select * from spfli into table t_spfli for all entries in t_scarr
          where carrid = t_scarr-carrid.


DATA: gs_keyinfo       TYPE slis_keyinfo_alv ,
      g_expandname     TYPE slis_fieldname VALUE  'EXPAND',
      gs_layout        TYPE slis_layout_alv,
      g_tabname_header TYPE slis_tabname,
      g_tabname_item   TYPE slis_tabname,
      g_tabname_item1  type slis_tabname..


DATA:   t_fcat TYPE TABLE OF slis_fieldcat_alv,
        w_fcat TYPE slis_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv.

gs_keyinfo-header01 = 'CARRID'.
gs_keyinfo-item01   = 'CARRID'.
gs_keyinfo-item02   = 'CARRID'.
g_tabname_header    = 'T_SCARR'.
g_tabname_item      = 'T_SPFLI'.
g_tabname_item1      = 'T_SLIGHT'.

gs_layout-expand_fieldname     = g_expandname.





  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_internal_tabname = g_tabname_header
      i_structure_name   = 'SCARR'
    CHANGING
      ct_fieldcat        = t_fcat[].

*      loop at t_fcat into ls_fieldcat.
*          case ls_fieldcat-fieldname.
*          when 'CARRID'.
*          ls_fieldcat-no_out = 'X'.
*          when 'CARRNAME'.
*          ls_fieldcat-no_out = 'X'.
*          when 'CURRCODE'.
*          ls_fieldcat-NO_OUT = 'X'.
*          endcase.
*
*          MODIFY t_fcat[] FROM ls_fieldcat.
*
*      ENDLOOP.
  CLEAR w_fcat.
*  w_fcat-fieldname    = 'ADD1'.
*  w_fcat-tabname      = g_tabname_header.
*  w_fcat-KEY_SEL      = 'O'.
*  w_fcat-input        = 'X'.
*  w_fcat-NO_OUT = 'X'.

*  w_fcat-sp_group     = 'X'.
*  APPEND w_fcat TO t_fcat.


  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_internal_tabname = g_tabname_item
      i_structure_name   = 'SPFLI'
    CHANGING
      ct_fieldcat        = t_fcat[].


*CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
*    EXPORTING
*      i_internal_tabname = g_tabname_item1
*      i_structure_name   = 'SFLIGHT'
*    CHANGING
*      ct_fieldcat        = t_fcat[].


 CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
   EXPORTING
*    t_INTERFACE_CHECK              = ' '
   i_CALLBACK_PROGRAM             = sy-repid
*    t_CALLBACK_PF_STATUS_SET       = ' '
*    t_CALLBACK_USER_COMMAND        = ' '
   IS_LAYOUT                      = gs_layout

    IT_FIELDCAT                    = t_fcat[]
*    IT_EXCLUDING                   =
*    IT_SPECIAL_GROUPS              = 'A'
*    IT_SORT                        =
*    IT_FILTER                      =
*    IS_SEL_HIDE                    =
*    t_SCREEN_START_COLUMN          = 0
*    t_SCREEN_START_LINE            = 0
*    t_SCREEN_END_COLUMN            = 0
*    t_SCREEN_END_LINE              = 0
*    t_DEFAULT                      = 'X'
*    t_SAVE                         = ' '
*    IS_VARIANT                     =
*    IT_EVENTS                      =
*    IT_EVENT_EXIT                  =
     i_TABNAME_HEADER               = g_tabname_header
     i_TABNAME_ITEM                 =  g_tabname_item
*    t_STRUCTURE_NAME_HEADER        =
*    t_STRUCTURE_NAME_ITEM          =
     IS_KEYINFO                     = gs_keyinfo
*    IS_PRINT                       =
*    IS_REPREP_ID                   =
*    t_BYPASSING_BUFFER             =
*    t_BUFFER_ACTIVE                =
*    IR_SALV_HIERSEQ_ADAPTER        =
*    IT_EXCEPT_QINFO                =
*    t_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
*  IMPORTING
*    E_EXIT_CAUSED_BY_CALLER        =
*    ES_EXIT_CAUSED_BY_USER         =
   TABLES
     T_OUTTAB_HEADER                = t_SCARR
     T_OUTTAB_ITEM                  = t_SPFLI
*  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.