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

hierarchial interactive alv

Former Member
0 Likes
1,460

hi everyone,

i need to develop a hierarchial interactive alv program,

how do i start,

if anyone has a simplest program,

please forward it to me.

rgds.

hi everyone,

i need to develop a hierarchial interactive alv program,

how do i start,

if anyone has a simplest program,

please forward it to me.

rgds.

12 REPLIES 12
Read only

Former Member
0 Likes
1,440

TYPE-POOLS: slis.
 
DATA: BEGIN OF itab OCCURS 0,
        vbeln TYPE vbeln,
        expand,
      END OF itab.
 
DATA: BEGIN OF itab1 OCCURS 0,
        vbeln TYPE vbeln,
        posnr TYPE posnr,
        matnr TYPE matnr,
        netpr TYPE netpr,
      END OF itab1.
 
DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv.
DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
 
s_fieldcatalog-col_pos = '1'.
s_fieldcatalog-fieldname = 'VBELN'.
s_fieldcatalog-tabname   = 'ITAB'.
s_fieldcatalog-rollname  = 'VBELN'.
s_fieldcatalog-outputlen = '12'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.
 
s_fieldcatalog-col_pos = '1'.
s_fieldcatalog-fieldname = 'VBELN'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'VBELN'.
s_fieldcatalog-outputlen = '12'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.
 
s_fieldcatalog-col_pos = '2'.
s_fieldcatalog-fieldname = 'POSNR'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'POSNR'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.
 
s_fieldcatalog-col_pos = '3'.
s_fieldcatalog-fieldname = 'MATNR'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'MATNR'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.
 
s_fieldcatalog-col_pos = '4'.
s_fieldcatalog-fieldname = 'NETPR'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'NETPR'.
s_fieldcatalog-do_sum    = 'X'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.
 
DATA: s_layout TYPE slis_layout_alv.
 
s_layout-subtotals_text            = 'SUBTOTAL TEXT'.
s_layout-key_hotspot = 'X'.
s_layout-expand_fieldname = 'EXPAND'.
 
 SELECT vbeln UP TO 100 ROWS
       FROM
       vbak
       INTO TABLE itab.
  
IF NOT itab[] IS INITIAL.
 
  SELECT vbeln posnr matnr netpr
         FROM vbap
         INTO TABLE itab1
         FOR ALL ENTRIES IN itab
         WHERE vbeln = itab-vbeln.
 
ENDIF.
  
DATA: v_repid TYPE syrepid.
 
v_repid = sy-repid.
 
DATA: s_keyinfo TYPE slis_keyinfo_alv.
s_keyinfo-header01 = 'VBELN'.
s_keyinfo-item01   = 'VBELN'.
 
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
     EXPORTING
          i_callback_program = v_repid
          is_layout          = s_layout
          it_fieldcat        = t_fieldcatalog
          i_tabname_header   = 'ITAB'
          i_tabname_item     = 'ITAB1'
          is_keyinfo         = s_keyinfo
     TABLES
          t_outtab_header    = itab
          t_outtab_item      = itab1
     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.

Greetings,

Blag.

Read only

Former Member
0 Likes
1,440

hi alvaro,

this is not interactive,

can any one please tell me how to make it interactive.

Read only

0 Likes
1,440

What you mean by Interactive? Do you want to modify records???

Greetings,

Blag.

Read only

Former Member
0 Likes
1,440

HI,

Please refer to the link below:

http://www.sap-img.com/abap/how-to-use-alv-for-hierarchical-lists.htm

Thanks,

Sriram Ponna.

Read only

Former Member
0 Likes
1,440

hi thanks to both of you,

but these two are not interactive,

by interactive i mean, drill down alv,

ie, if i click on one vbeln value, it should take me to va03 screen with this vbeln value, and skip the first screen.

rgds.

Read only

0 Likes
1,440

Like this -:)


REPORT ydummy_atg.

TYPE-POOLS: slis.

DATA: BEGIN OF itab OCCURS 0,
        vbeln TYPE vbeln,
        expand,
      END OF itab.

DATA: BEGIN OF itab1 OCCURS 0,
        vbeln TYPE vbeln,
        posnr TYPE posnr,
        matnr TYPE matnr,
        netpr TYPE netpr,
      END OF itab1.

DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv.
DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
DATA: g_user_command TYPE slis_formname VALUE 'USER_COMMAND'.

s_fieldcatalog-col_pos = '1'.
s_fieldcatalog-fieldname = 'VBELN'.
s_fieldcatalog-tabname   = 'ITAB'.
s_fieldcatalog-rollname  = 'VBELN'.
s_fieldcatalog-outputlen = '12'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '1'.
s_fieldcatalog-fieldname = 'VBELN'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'VBELN'.
s_fieldcatalog-outputlen = '12'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.
s_fieldcatalog-fieldname = 'POSNR'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'POSNR'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.
s_fieldcatalog-fieldname = 'MATNR'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'MATNR'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.
s_fieldcatalog-fieldname = 'NETPR'.
s_fieldcatalog-tabname   = 'ITAB1'.
s_fieldcatalog-rollname  = 'NETPR'.
s_fieldcatalog-do_sum    = 'X'.
APPEND s_fieldcatalog TO t_fieldcatalog.
CLEAR: s_fieldcatalog.

DATA: s_layout TYPE slis_layout_alv.

s_layout-subtotals_text            = 'SUBTOTAL TEXT'.
s_layout-key_hotspot = 'X'.
s_layout-expand_fieldname = 'EXPAND'.

SELECT vbeln UP TO 100 ROWS
      FROM
      vbak
      INTO TABLE itab.

IF NOT itab[] IS INITIAL.

  SELECT vbeln posnr matnr netpr
         FROM vbap
         INTO TABLE itab1
         FOR ALL ENTRIES IN itab
         WHERE vbeln = itab-vbeln.

ENDIF.

DATA: v_repid TYPE syrepid.

v_repid = sy-repid.

DATA: s_keyinfo TYPE slis_keyinfo_alv.
s_keyinfo-header01 = 'VBELN'.
s_keyinfo-item01   = 'VBELN'.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
     EXPORTING
          i_callback_program      = v_repid
          is_layout               = s_layout
          it_fieldcat             = t_fieldcatalog
          i_callback_user_command = g_user_command
          i_tabname_header        = 'ITAB'
          i_tabname_item          = 'ITAB1'
          is_keyinfo              = s_keyinfo
     TABLES
          t_outtab_header         = itab
          t_outtab_item           = itab1
     EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
IF sy-subrc NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

*---------------------------------------------------------------------*
*       FORM USER_COMMAND                                             *
*---------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
                        rs_selfield TYPE slis_selfield.

  CHECK NOT rs_selfield-tabname IS INITIAL.

  CASE r_ucomm.

    WHEN '&IC1'.

      READ TABLE itab1 INDEX rs_selfield-tabindex.

      SET PARAMETER ID 'AUN' FIELD itab1-vbeln.
      CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

  ENDCASE.

ENDFORM.

Greetings,

Blag.

Read only

0 Likes
1,440

yes

Read only

0 Likes
1,440

yes alvaro, somthing like this,

but with out that expansion, just display.

thanks for your help.

Read only

0 Likes
1,440

You mean that you want the list already expanded when you executed? Or you don't want it to expaned at all...Because the main purpouse of a hierarchial alv, is to be expandible...Otherwise, you should use a simple ALV Grid...

Greetings,

Blag.

Read only

0 Likes
1,440

yes alvarado,

i need a hierarchical itself,

thanks , let me try and come back again.

Read only

Former Member
0 Likes
1,440

Hi

example program:

TYPE-POOLS : slis.

&----


*& structure declaration

&----


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,

ebelp TYPE ekpo-ebelp, "Item Number of Purchasingdoc

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.

&----


*& internal table and work area declaration

&----


DATA : it_ekpo TYPE STANDARD TABLE OF st_ekpo,

it_ekko TYPE STANDARD TABLE OF st_ekko,

it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

st_keyinfo TYPE slis_keyinfo_alv.

&----


*& data declaration

&----


DATA : v_ebeln TYPE ekko-ebeln.

&----


*& selection-screen

&----


SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-000.

SELECT-OPTIONS : so_ebeln FOR v_ebeln.

SELECTION-SCREEN END OF BLOCK a.

&----


*& At-selection-screen

&----


AT SELECTION-SCREEN ON so_ebeln.

PERFORM validate_ebeln.

&----


*& start-of-selection

&----


START-OF-SELECTION.

PERFORM data_retrieval.

&----


*& end-of-selection

&----


END-OF-SELECTION.

PERFORM build_fieldcatalog.

PERFORM fill_keyinfo.

PERFORM display_alv .

&----


*& FORM validate_ebeln

&----


FORM validate_ebeln.

SELECT ebeln

FROM ekko

INTO CORRESPONDING FIELDS OF TABLE it_ekko

WHERE ebeln IN so_ebeln.

IF sy-subrc NE 0.

MESSAGE text-003 TYPE 'W'.

ENDIF.

REFRESH it_ekko.

ENDFORM. "validate_ebeln

&----


*& FORM data_retrieval

&----


FORM data_retrieval.

SELECT ebeln bstyp bsart aedat ernam

FROM ekko

INTO TABLE it_ekko

WHERE ebeln IN so_ebeln.

IF sy-subrc NE 0.

MESSAGE text-001 TYPE 'I'.

ENDIF.

SELECT ebeln ebelp ematn matkl netpr

FROM ekpo

INTO TABLE it_ekpo

WHERE ebeln IN so_ebeln.

IF sy-subrc NE 0.

MESSAGE text-002 TYPE 'I'.

ENDIF.

ENDFORM. "data_retrieval

&----


*& Form build_fieldcatalog

&----


FORM build_fieldcatalog.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = 'PURCHASE ORDER'.

wa_fieldcat-tabname = 'IT_EKKO'.

wa_fieldcat-col_pos = 0.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSTYP'.

wa_fieldcat-seltext_l = 'DOCUMENT CATEGORY'.

wa_fieldcat-tabname = 'IT_EKKO'.

wa_fieldcat-col_pos = 1.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSART'.

wa_fieldcat-seltext_l = 'DOCUMENT TYPE'.

wa_fieldcat-tabname = 'IT_EKKO'.

wa_fieldcat-col_pos = 2.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'AEDAT'.

wa_fieldcat-seltext_l = 'DATE'.

wa_fieldcat-tabname = 'IT_EKKO'.

wa_fieldcat-col_pos = 3.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'ERNAM'.

wa_fieldcat-seltext_l = 'NAME'.

wa_fieldcat-tabname = 'IT_EKKO'.

wa_fieldcat-col_pos = 4.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = 'PURCHASE ORDER'.

wa_fieldcat-tabname = 'IT_EKPO'.

wa_fieldcat-col_pos = 0.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EBELP'.

wa_fieldcat-seltext_l = 'ITEM NUMBER'.

wa_fieldcat-tabname = 'IT_EKPO'.

wa_fieldcat-col_pos = 1.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EMATN'.

wa_fieldcat-seltext_l = 'MATERIAL TYPE'.

wa_fieldcat-tabname = 'IT_EKPO'.

wa_fieldcat-col_pos = 2.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'MATKL'.

wa_fieldcat-seltext_l = 'MATERIAL GROUP'.

wa_fieldcat-tabname = 'IT_EKPO'.

wa_fieldcat-col_pos = 3.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'NETPR'.

wa_fieldcat-seltext_l = 'NET PRICE'.

wa_fieldcat-tabname = 'IT_EKPO'.

wa_fieldcat-col_pos = 4.

wa_fieldcat-do_sum = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "build_fieldcatalog

&----


*& 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 'MENU'. "Copy from SALV .

ENDFORM. "set_pf_status

Read only

Former Member
0 Likes
1,440

HI

----


  • 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