‎2007 Oct 10 5:54 AM
<b>The following lines of code were written:</b>
For ALV events
i_events TYPE slis_t_event,
constants : c_user_command(20) value 'USER_COMMAND'
Local variable for event
DATA: wa_event TYPE slis_alv_event. "Events
Events for the ALV
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 1 "2
IMPORTING
et_events = i_events.
Sort by Name
SORT i_events BY name.
CLEAR wa_event.
READ TABLE i_events INTO wa_event
WITH KEY name = slis_ev_user_command
BINARY SEARCH.
IF sy-subrc = 0.
MOVE c_user_command TO wa_event-form.
MODIFY i_events FROM wa_event TRANSPORTING form
WHERE name = slis_ev_user_command.
ENDIF.
CLEAR : wa_event.
<b>Now I want to transfer the routine USER_COMMAND to the FM REUSE_ALV_GRID_DISPLAY.
Can anyone tell what all parameters to pass in this FM??</b>
‎2007 Oct 10 5:59 AM
hi..
You have to pass the Events internal table to the Parameter IT_EVENTS of the FM
REUSE_ALV_GRID_DISPLAY.
reward if Helpful.
‎2007 Oct 10 5:58 AM
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = i_callback_program
i_callback_pf_status_set = i_callback_pf_status_set
You can call your user command here.....
<b> i_callback_user_command = i_callback_user_command</b>
i_structure_name = i_structure_name
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_default = i_default
i_save = i_save
is_variant = is_variant
it_events = it_events
is_reprep_id = is_reprep_id
i_screen_start_column = i_screen_start_column
i_screen_start_line = i_screen_start_line
i_screen_end_column = i_screen_end_column
i_screen_end_line = i_screen_end_line
it_except_qinfo = it_except_qinfo
importing
e_exit_caused_by_caller = e_exit_caused_by_caller
es_exit_caused_by_user = es_exit_caused_by_user
tables
t_outtab = t_outtab
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.
‎2007 Oct 10 5:58 AM
Hi,
You can pass your events itab to IT_EVENTS parameter in tyhis FM OR
alternatively if user_command is the only event you need to be triggered then you can do it as below as well,by passing the below parameters to the FM
I_CALLBACK_PROGRAM = sy-repid "program to which control has to be passed when any event is triggered
I_CALLBACK_USER_COMMAND = 'USER_COMMAND', form name to which control has to be passed when USER_COMMAND event is triggered.
Regards,
Raghavendra
‎2007 Oct 10 5:59 AM
hi..
You have to pass the Events internal table to the Parameter IT_EVENTS of the FM
REUSE_ALV_GRID_DISPLAY.
reward if Helpful.
‎2007 Oct 10 6:04 AM
DATA:V_REPID TYPE SY-REPID,
V_MATNR TYPE MARA-MATNR.
***SELECTION SCREEN*******
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_MATNR FOR V_MATNR.
SELECTION-SCREEN END OF BLOCK B1.
*******INTERNALTABLE DECLARATION
DATA:BEGIN OF IT_MARD OCCURS 0,
MATNR LIKE MARD-MATNR, "MATERIAL NO --KEY
WERKS LIKE MARD-MATNR, "PLANT --KEY
LGORT LIKE MARD-LGORT, "STORAGE LOCATION--KEY
INSME LIKE MARD-INSME, "QTY INSPECTION STOCK
EINME LIKE MARD-EINME, "RESTRICTED BATCH STOCK
SPEME LIKE MARD-SPEME, "BLOCKED STOCK
END OF IT_MARD.
DATA:BEGIN OF IT_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
END OF IT_MARA.
FOR SECONDARY LIST**********
DATA:BEGIN OF IT_MARA_ALV OCCURS 0,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
ERNAM LIKE MARA-ERNAM,
END OF IT_MARA_ALV.
*****TYPE POOLS*******************
TYPE-POOLS:SLIS.
DATA:IT_MARD_FC TYPE SLIS_T_FIELDCAT_ALV,
FC TYPE SLIS_FIELDCAT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT,
IT_MARA_ALV_FC TYPE SLIS_T_FIELDCAT_ALV.
INITIALIZATION.********
INITIALIZATION.
V_REPID = SY-REPID.
AT SELECTION-SCREEN.*****
AT SELECTION-SCREEN.
PERFORM VALIDATION.
*******START OF SELECTION************
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM POPULATE_FIELDCATALOG.
PERFORM FILL_EVENTS.
END-OF-SELECTION.
PERFORM DISPLAY_LIST.
&----
*& Form GETDATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETDATA .
SELECT MATNR
WERKS
LGORT
INSME
EINME
SPEME FROM MARD INTO TABLE IT_MARD WHERE MATNR IN S_MATNR.
IF SY-SUBRC = 0.
SORT IT_MARD BY MATNR.
SELECT MATNR
ERSDA
ERNAM
FROM MARA
INTO TABLE IT_MARA
FOR ALL ENTRIES IN IT_MARD WHERE MATNR = IT_MARD-MATNR.
ENDIF.
ENDFORM. " GETDATA
&----
*& Form POPULATE_FIELDCATALOG
&----
**POPULATING FIELD CATALOG BY SPECIFYING ATTRIBUTES TO FIELD-NAMES.
FORM POPULATE_FIELDCATALOG .
CLEAR FC.
FC-TABNAME = 'IT_MARD'.
FC-FIELDNAME = 'MATNR'.
FC-KEY = 'X'.
FC-HOTSPOT = 'X'.
FC-OUTPUTLEN = 18.
FC-SELTEXT_L = 'MATERIAL NUMBER'.
APPEND FC TO IT_MARD_FC.
CLEAR FC.
FC-TABNAME = 'IT_MARD'.
FC-FIELDNAME = 'WERKS'.
FC-KEY = 'X'.
FC-SELTEXT_L = 'PLANT'.
APPEND FC TO IT_MARD_FC.
CLEAR FC.
FC-TABNAME = 'IT_MARD'.
FC-FIELDNAME = 'LGORT'.
FC-KEY = 'X'.
FC-SELTEXT_S = 'STR LOC'.
FC-SELTEXT_M = 'STORG LOC'.
FC-SELTEXT_L = 'STORAGE LOCATION'.
APPEND FC TO IT_MARD_FC.
CLEAR FC.
FC-TABNAME = 'IT_MARD'.
FC-FIELDNAME = 'INSME'.
FC-KEY = 'X'.
FC-SELTEXT_S = 'QTY INSP'.
FC-SELTEXT_M = 'QTY INSP STOCK'.
FC-SELTEXT_L = 'QTY INSPECTION STOCK'.
APPEND FC TO IT_MARD_FC.
CLEAR FC.
FC-TABNAME = 'IT_MARD'.
FC-FIELDNAME = 'EINME'.
FC-KEY = 'X'.
FC-SELTEXT_S = 'RES STK'.
FC-SELTEXT_M = 'RES BATCH STK'.
FC-SELTEXT_L = 'RESTRICTED BATCH STOCK'.
APPEND FC TO IT_MARD_FC.
CLEAR FC.
FC-TABNAME = 'IT_MARD'.
FC-FIELDNAME = 'SPEME'.
FC-KEY = 'X'.
FC-SELTEXT_S = 'BLK STK'.
FC-SELTEXT_M = 'BLK STOCK'.
FC-SELTEXT_L = 'BLOCKED STOCK'.
APPEND FC TO IT_MARD_FC.
ENDFORM. " POPULATE_FIELDCATALOG
&----
*& Form FILL_EVENTS
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_EVENTS .
**THIS FM IS USED TO FILL ALL EVENTS IN IT_EVENTS-NAME'S FILED**
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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.
READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO WA_EVENTS.
IF SY-SUBRC = 0.
MOVE 'DISPLAY_HEADER' TO WA_EVENTS-FORM.
MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDIF.
READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE INTO WA_EVENTS.
IF SY-SUBRC = 0.
MOVE 'DISPLAY_FOOTER' TO WA_EVENTS-FORM.
MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDIF.
READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO
WA_EVENTS.
IF SY-SUBRC = 0.
MOVE 'PROCESS_SECONDARYLIST' TO WA_EVENTS-FORM.
MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDIF.
ENDFORM. " FILL_EVENTS
&----
*& Form DISPLAY_HEADER
&----
text
----
FORM DISPLAY_HEADER.
FORMAT COLOR 3.
WRITE:/15 'INTELLI GROUP ASIA PVT LTD.'(002) .
ENDFORM. "DISPLAY_HEADER
&----
*& Form DISPLAY_FOOTER
&----
text
----
FORM DISPLAY_FOOTER.
FORMAT COLOR 5.
WRITE:/150 'PAGE NO.'(003),SY-PAGNO.
ENDFORM. "DISPLAY_FOOTER
&----
*& Form DISPLAY_LIST
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_LIST .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'PROCESS_SECONDARYLIST'
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = IT_MARD_FC
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MARD
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_LIST
&----
*& Form VALIDATION
&----
FORM VALIDATION .
SELECT MATNR FROM MARD INTO V_MATNR
UP TO 1 ROWS
WHERE MATNR IN S_MATNR .
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'INVALID MATERIAL NO'.
ENDIF.
ENDFORM. " VALIDATION
&----
*& Form PROCESS_SECONDARYLIST
&----
text
----
-->L_UCOMM text
-->L_SELFIELD text
----
FORM PROCESS_SECONDARYLIST USING L_UCOMM LIKE SY-UCOMM L_SELFIELD TYPE
SLIS_SELFIELD .
CASE L_UCOMM.
WHEN '&IC1'.
*READ TABLE IT_MARD INDEX L_SELFIELD-TABINDEX.
REFRESH IT_MARA_ALV.
*LOOP AT IT_MARA WHERE MATNR = IT_MARD-MATNR.
LOOP AT IT_MARA WHERE MATNR = L_SELFIELD-VALUE.
MOVE-CORRESPONDING IT_MARA TO IT_MARA_ALV.
APPEND IT_MARA_ALV.
CLEAR IT_MARA_ALV.
ENDLOOP.
PERFORM DISPLAY_SECONDARYLIST.
ENDCASE.
ENDFORM. "PROCESS_SECONDARYLIST
&----
*& Form DISPLAY_SECONDARYLIST
&----
----
FORM DISPLAY_SECONDARYLIST .
PERFORM FIELD_CATALOG_SECONDRY.
PERFORM DISPLAY_SLIST.
ENDFORM. " DISPLAY_SECONDARYLIST
&----
*& Form FIELD_CATALOG_SECONDRY
&----
FORM FIELD_CATALOG_SECONDRY .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'IT_MARA_ALV'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = V_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_MARA_ALV_FC
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. " FIELD_CATALOG_SECONDRY
&----
*& Form DISPLAY_SLIST
&----
FORM DISPLAY_SLIST .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = IT_MARA_ALV_FC
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MARA_ALV
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_SLIST