‎2008 May 15 3:27 PM
Hi friends,
i am using REUSE_ALV_HIERSEQ_LIST_DISPLAY to display header and item deatials.
g_repid = sy-repid.
g_tabname_header = 'IT_HEADER'.
g_tabname_item = 'IT_ITEM'.
define keyinfo
CLEAR gs_keyinfo.
gs_keyinfo-header01 = 'SPMON'.
gs_keyinfo-item01 = 'SPMON'.
gs_keyinfo-header02 = 'ZZ_KATR10'.
gs_keyinfo-item02 = 'ZZ_KATR10'.
gs_keyinfo-header03 = 'MATNR'.
gs_keyinfo-item03 = 'MATNR'.
i have written above code but not working.
how can use at header & item level.
please help.
‎2008 May 15 4:33 PM
Hi,
Here is the sample code.
Its working fine.
So you can use it as a reference.
And just compare once.
REPORT z50871_alv_hierseq_list.
----
STRUCTURE DECLARATIONS
INTERNAL TABLE DECLARATIONS
WORKAREA DECLARATIONS
TYPE-POOLS DECLARATION
----
TYPE-POOLS : slis.
*TYPES : BEGIN OF st_ekko,
ebeln TYPE ekko-ebeln, "Purchasing Document Number
bstyp TYPE ekko-bstyp, "Purchasing Document Category
bsart TYPE ekko-bsart, "Purchasing Document Type
aedat TYPE ekko-aedat, "record created on
ernam TYPE ekko-ernam, "Person who Created the Object
END OF st_ekko.
*
*TYPES : BEGIN OF st_ekpo,
ebeln TYPE ekko-ebeln, "Purchasing Document Number
ebelp TYPE ekpo-ebelp, "Item Number of Purchasing Document
ematn TYPE ekpo-ematn, "Material number
matkl TYPE ekpo-matkl, "Material group
netpr TYPE ekpo-netpr, "Net price in purchasing document
END OF st_ekpo.
TYPES : BEGIN OF st_ebeln,
ebeln TYPE ekpo-ebeln,
END OF st_ebeln.
DATA : IT_EKPO TYPE STANDARD TABLE OF EKPO WITH HEADER LINE,
IT_EKKO TYPE STANDARD TABLE OF EKKO WITH HEADER LINE,
it_ekpo TYPE STANDARD TABLE OF st_ekpo with header line,
wa_ekpo TYPE st_ekpo,
it_ekko TYPE STANDARD TABLE OF st_ekko with header line,
wa_ekko LIKE LINE OF it_ekko,
it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF it_fieldcat,
wa_layout TYPE slis_layout_alv,
it_events TYPE slis_t_event,
st_event LIKE LINE OF it_events,
st_keyinfo TYPE slis_keyinfo_alv,
it_ebeln TYPE STANDARD TABLE OF st_ebeln.
DATA : v_ebeln TYPE ekko-ebeln.
----
SELECTION-SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE tit.
SELECT-OPTIONS: so_ebeln FOR v_ebeln OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b.
----
INITIALIZATION
----
INITIALIZATION.
tit = text-000.
----
AT SELECTION-SCREEN ON
----
AT SELECTION-SCREEN ON so_ebeln.
PERFORM validate_ebeln.
----
START-OF-SELECTION
----
START-OF-SELECTION.
PERFORM get_data.
----
END-OF-SELECTION
----
END-OF-SELECTION.
PERFORM populate_fcat using 'IT_EKKO' 'EKKO'.
PERFORM populate_fcat using 'IT_EKPO' 'EKPO'.
PERFORM fill_keyinfo.
PERFORM display_alv.
&----
*& Form validate_ebeln
&----
FORM validate_ebeln.
SELECT ebeln
FROM ekpo
INTO TABLE it_ebeln
WHERE ebeln IN so_ebeln.
IF sy-subrc NE 0.
MESSAGE e020(z50871) WITH 'Purchase Document Number Is Invalid'.
ENDIF.
ENDFORM. "validate_ebeln
&----
*& Form get_data
&----
FORM get_data .
SELECT ebeln bstyp bsart aedat ernam
FROM ekko
INTO TABLE it_ekko
WHERE ebeln IN so_ebeln.
IF NOT it_ekko[] IS INITIAL.
SELECT ebeln ebelp ematn matkl netpr
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln EQ it_ekko-ebeln.
ENDIF.
SELECT *
FROM ekko
INTO TABLE it_ekko
WHERE ebeln IN so_ebeln.
IF NOT it_ekko[] IS INITIAL.
SELECT *
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln EQ it_ekko-ebeln.
ENDIF.
ENDFORM. " get_data
&----
*& Form POPULATE_FCAT
&----
FORM POPULATE_FCAT USING P_TABNAME TYPE SLIS_TABNAME
P_STRUCTURE LIKE DD02L-TABNAME.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-tabname = 'it_ekko'.
wa_fieldcat-seltext_l = 'Purchase document number'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'BSTYP'.
wa_fieldcat-tabname = 'it_ekko'.
wa_fieldcat-seltext_l = 'Purchasing Document Category'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'BSART'.
wa_fieldcat-tabname = 'it_ekko'.
wa_fieldcat-seltext_l = 'Purchasing Document Type'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'AEDAT'.
wa_fieldcat-tabname = 'it_ekko'.
wa_fieldcat-seltext_l = 'Created On'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-tabname = 'it_ekko'.
wa_fieldcat-seltext_l = 'Created By'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-tabname = 'it_ekpo'.
wa_fieldcat-seltext_l = 'Purchase document number'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-tabname = 'it_ekpo'.
wa_fieldcat-seltext_l = 'Item Number'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'EMATN'.
wa_fieldcat-tabname = 'it_ekpo'.
wa_fieldcat-seltext_l = 'Material Number'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-tabname = 'it_ekpo'.
wa_fieldcat-seltext_l = 'Material group'.
APPEND wa_fieldcat TO it_fieldcat.
*
wa_fieldcat-fieldname = 'NETPR'.
wa_fieldcat-tabname = 'it_ekpo'.
wa_fieldcat-seltext_l = 'Net price in purchasing document'.
APPEND wa_fieldcat TO it_fieldcat.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = P_TABNAME
I_STRUCTURE_NAME = P_STRUCTURE
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = I_INCLNAME
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = 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. " POPULATE_FCAT
&----
*& Form fill_keyinfo
&----
FORM fill_keyinfo.
CLEAR st_keyinfo.
st_keyinfo-header01 = 'EBELN'.
st_keyinfo-item01 = 'EBELN'.
ENDFORM. " fill_keyinfo
&----
*& Form DISPLAY_ALV
&----
FORM display_alv .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT = IS_LAYOUT
it_fieldcat = it_fieldcat
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = 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 = IS_VARIANT
IT_EVENTS = IT_EVENTS[]
IT_EVENT_EXIT = IT_EVENT_EXIT
i_tabname_header = 'IT_EKKO'
i_tabname_item = 'IT_EKPO'
I_STRUCTURE_NAME_HEADER = I_STRUCTURE_NAME_HEADER
I_STRUCTURE_NAME_ITEM = I_STRUCTURE_NAME_ITEM
is_keyinfo = st_keyinfo
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
IR_SALV_HIERSEQ_ADAPTER = IR_SALV_HIERSEQ_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = 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_ALV
&----
*& Form SET_PF_STATUS
&----
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD'. "Copy from SALV .
ENDFORM. "SET_PF_STATUS
Regards
Sandeep Reddy