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: 

USER_COMMAND in the 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

Former Member
0 Kudos

HAI Experts ,

Can anyone pls give me a sample code which displays some operation using USER_COMMAND in the 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' .

Any small sample program will be helpful.

Regards,

Devendran

1 REPLY 1

Former Member
0 Kudos

hi

Check this code:

REPORT Z_RE_ALV_JERARQUIA .

*****TABLAS

TABLES : MARA, MAKT.

****TIPOS

TYPE-POOLS: SLIS.

****TABLAS INTERNAS

DATA: IT_MARA LIKE MARA OCCURS 0 WITH HEADER LINE,

WA_MARA LIKE LINE OF IT_MARA ,

BEGIN OF IT_HEADER OCCURS 0,

TIPO LIKE MARA-MTART,

END OF IT_HEADER,

BEGIN OF IT_ITEM OCCURS 0,

TIPO LIKE MARA-MTART,

MATERIAL LIKE MARA-MATNR,

MATKL LIKE MARA-MATKL,

MEINS LIKE MARA-MEINS,

MAKTX LIKE MAKT-MAKTX,

END OF IT_ITEM.

*****ALV

DATA: IT_KEYINFO type SLIS_KEYINFO_ALV OCCURS 0 WITH HEADER LINE,

G_REPID LIKE SY-REPID,

IT_LAYOUT TYPE SLIS_LAYOUT_ALV,

IT_FIELD TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE,

IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

IT_LIST_END_OF_PAGE TYPE SLIS_T_LISTHEADER,

IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,

IT_FILTER TYPE SLIS_T_FILTER_ALV WITH HEADER LINE,

GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,

ls_event type slis_alv_event,

LS_LINE TYPE slis_listheader.

*****VARIABLES

DATA: TEXT(60).

****CONSTANTES

CONSTANTS:

GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.

****INITIALIZATION

INITIALIZATION.

G_REPID = SY-REPID.

IT_LAYOUT-ZEBRA = 'X'.

  • IT_LAYOUT-no_hotspot = ' '.

  • IT_layout-colwidth_optimize = 'X'.

****START OF SELECTION

START-OF-SELECTION.

SELECT-OPTIONS: TIPO FOR MARA-MTART OBLIGATORY.

*****

SELECT *

FROM MARA

INTO TABLE IT_MARA

WHERE MTART IN TIPO.

****

IF NOT IT_MARA[] IS INITIAL.

PERFORM FO_PROCESAR.

PERFORM FO_KEY_INFO.

PERFORM FO_IMPRIMIR_CABECERA USING IT_LIST_TOP_OF_PAGE[].

PERFORM FO_SORT.

PERFORM FO_FIELDCAT.

PERFORM FO_FILTRAR.

PERFORM FO_EVENTOS USING IT_events[].

PERFORM FO_MOSTRAR_ALV_JER.

*****

ELSE.

MESSAGE S000(SU) WITH TEXT-001.

ENDIF.

*&----


*

*& Form FO_PROCESAR

*&----


*

FORM FO_PROCESAR.

SORT IT_MARA BY MTART ASCENDING.

*****

LOOP AT IT_MARA.

MOVE-CORRESPONDING IT_MARA TO WA_MARA.

*****

MOVE WA_MARA-MTART TO IT_HEADER-TIPO.

APPEND IT_HEADER.

*****

MOVE: IT_MARA-MTART TO IT_ITEM-TIPO,

IT_MARA-MATNR TO IT_ITEM-MATERIAL,

IT_MARA-MATKL TO IT_ITEM-MATKL,

IT_MARA-MEINS TO IT_ITEM-MEINS.

****

SELECT SINGLE MAKTX INTO IT_ITEM-MAKTX

FROM MAKT

WHERE MATNR EQ IT_MARA-MATNR

AND SPRAS EQ 'S'.

****

APPEND IT_ITEM.

CLEAR: IT_MARA, WA_MARA, IT_ITEM, IT_HEADER.

ENDLOOP.

*****

SORT IT_HEADER BY TIPO ASCENDING.

DELETE ADJACENT DUPLICATES FROM IT_HEADER COMPARING TIPO.

ENDFORM. " FO_PROCESAR

*&----


*

*& Form FO_MOSTRAR_ALV_JER

*&----


*

FORM FO_MOSTRAR_ALV_JER.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = IT_LAYOUT

IT_FIELDCAT = IT_FIELD[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = IT_SORT[]

IT_FILTER = IT_FILTER[]

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 10

  • I_SCREEN_START_LINE = 5

  • I_SCREEN_END_COLUMN = 45

  • I_SCREEN_END_LINE = 30

  • I_DEFAULT = 'X'

I_SAVE = 'X'

  • IS_VARIANT =

IT_EVENTS = IT_EVENTS[]

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = 'IT_HEADER'

I_TABNAME_ITEM = 'IT_ITEM'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

IS_KEYINFO = IT_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_HEADER

T_OUTTAB_ITEM = IT_ITEM

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

*&----


*

*& Form FO_KEY_INFO

*&----


*

FORM FO_KEY_INFO.

REFRESH IT_KEYINFO. CLEAR IT_KEYINFO.

IT_KEYINFO-header01 = 'TIPO'.

IT_KEYINFO-item01 = 'TIPO'.

APPEND IT_KEYINFO.

ENDFORM. " FO_KEY_INFO

*&----


*

*& Form FO_IMPRIMIR_CABECERA

*&----


*

FORM FO_IMPRIMIR_CABECERA USING TEXTO_REPORT TYPE SLIS_T_LISTHEADER.

*****

CLEAR: LS_line, text.

LS_line-typ = 'H'.

WRITE: sy-title TO text.

LS_line-info = text.

APPEND LS_line TO TEXTO_REPORT.

*****

CLEAR: LS_line, text.

LS_line-typ = 'A'.

WRITE: 'Fecha de Ejecución:' to text,

sy-DATUM TO text+20(20).

LS_line-info = text.

APPEND LS_line TO TEXTO_REPORT.

*****

CLEAR: LS_line, text.

LS_line-typ = 'A'.

WRITE: 'Usuario:' to text,

sy-uname TO text+20(20).

LS_line-info = text.

APPEND LS_line TO TEXTO_REPORT.

*****

CLEAR LS_LINE.

APPEND LS_line TO TEXTO_REPORT.

*****

ENDFORM. " FO_IMPRIMIR_CABECERA

*&----


*

*& Form FO_SORT

*&----


*

FORM FO_SORT.

*****

IT_SORT-FIELDNAME = 'TIPO'.

IT_SORT-TABNAME = 'IT_HEADER'.

IT_SORT-GROUP = 'X'.

IT_SORT-UP = 'X'.

IT_SORT-DOWN = ' '.

IT_SORT-SUBTOT = ' '.

APPEND IT_SORT. CLEAR IT_SORT.

*****

ENDFORM. " FO_SORT

*&----


*

*& Form FO_FIELDCAT

*&----


*

FORM FO_FIELDCAT.

****

CLEAR IT_FIELD.

IT_FIELD-TABNAME = 'IT_ITEM'.

IT_FIELD-FIELDNAME = 'TIPO'.

IT_FIELD-COL_POS = '1'.

IT_FIELD-JUST = 'L'.

IT_FIELD-SELTEXT_L = 'Tipo Material'.

IT_FIELD-KEY = 'X'.

APPEND IT_FIELD.

****

CLEAR IT_FIELD.

IT_FIELD-TABNAME = 'IT_ITEM'.

IT_FIELD-FIELDNAME = 'MATERIAL'.

IT_FIELD-COL_POS = '2'.

IT_FIELD-JUST = 'L'.

IT_FIELD-SELTEXT_L = 'Codigo Material'.

APPEND IT_FIELD.

******

CLEAR IT_FIELD.

IT_FIELD-TABNAME = 'IT_ITEM'.

IT_FIELD-FIELDNAME = 'MATKL'.

IT_FIELD-COL_POS = '3'.

IT_FIELD-JUST = 'L'.

IT_FIELD-SELTEXT_L = 'Grupo De Articulos'.

APPEND IT_FIELD.

******

CLEAR IT_FIELD.

IT_FIELD-TABNAME = 'IT_ITEM'.

IT_FIELD-FIELDNAME = 'MEINS'.

IT_FIELD-COL_POS = '4'.

IT_FIELD-JUST = 'L'.

IT_FIELD-SELTEXT_L = 'Uni. Med. Base'.

APPEND IT_FIELD.

******

CLEAR IT_FIELD.

IT_FIELD-TABNAME = 'IT_ITEM'.

IT_FIELD-FIELDNAME = 'MAKTX'.

IT_FIELD-COL_POS = '5'.

IT_FIELD-JUST = 'L'.

IT_FIELD-outputlen = '40'.

IT_FIELD-SELTEXT_L = 'Descriptivo'.

APPEND IT_FIELD.

******

ENDFORM. " FO_FIELDCAT

*&----


*

*& Form FO_EVENTOS

*&----


*

FORM FO_EVENTOS USING PIT_EVENTS type slis_t_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = PIT_EVENTS

EXCEPTIONS

LIST_TYPE_WRONG = 1

OTHERS = 2.

read table PIT_EVENTS with key name = SLIS_EV_TOP_OF_PAGE

into ls_event.

if sy-subrc = 0.

move gc_formname_top_of_page to ls_event-form.

append ls_event to pIT_EVENTS.

endif.

CLEAR LS_EVENT.

ENDFORM. " FO_EVENTOS

*&----


*

*& FORM top_of_page *

*&----


*

FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'ZLOGO_GRUPO_POLAR'

IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.

ENDFORM. "TOP_OF_PAGE

*&----


*

*& Form FO_FILTRAR

*&----


*

FORM FO_FILTRAR.

*IT_FILTER-FIELDNAME = 'TIPO'.

*IT_FILTER-TABNAME = 'IT_HEADER'.

*APPEND IT_FILTER. CLEAR IT_FILTER.

ENDFORM. " FO_FILTRAR

*&----


*

*& Form USER_COMMAND

*&----


*

FORM USER_COMMAND USING ucomm LIKE sy-ucomm

selfield TYPE slis_selfield.

READ TABLE IT_ITEM INDEX SELFIELD-TABINDEX.

IF SY-SUBRC EQ 0.

ENDIF.

ENDFORM. " USER_COMMAND

Regards

Gregory