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

ALV key fields

Former Member
0 Likes
352

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.

1 REPLY 1
Read only

Former Member
0 Likes
327

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