10-09-2007 12:03 PM
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
10-09-2007 2:12 PM
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