HELLO DEAR
I WAS TRYING TO ADD IT BUT BEFORE ME SOME IS DID IT THE SAME NOW I JUST WANT TO ADD SGTXT FIELD ONLY IN IT HOW IT WILL POSSIBLE
************************************************************************
* Report: Reservationlist
* The one and only list for reservations in Inventory Management.
* Uses logical database MMIMRKPFRESB for data selection.
*
* History:
* 02.06.2000: Note 308124: Multiple selection for display in MB23
* 05.11.1999: Release
************************************************************************
REPORT rm07resl.
ENHANCEMENT-POINT RM07RESL_G4 SPOTS ES_RM07RESL STATIC.
*$*$-Start: RM07RESL_G4-------------------------------------------------------------------------$*$*
ENHANCEMENT 1 MGV_GENERATED_RM07RESL. "active version
INITIALIZATION.
DATA: mgv_matnr_prog LIKE rsvar-report,
mgv_matnr_selopt_tab like rsldbdfs occurs 0 with header line.
FIELD-SYMBOLS <mgv_matnr_selopt_conv> TYPE STANDARD TABLE.
ENDENHANCEMENT.
*$*$-End: RM07RESL_G4-------------------------------------------------------------------------$*$*
ENHANCEMENT-POINT RM07RESL_G5 SPOTS ES_RM07RESL.
*$*$-Start: RM07RESL_G5-------------------------------------------------------------------------$*$*
ENHANCEMENT 2 MGV_GENERATED_RM07RESL. "active version
mgv_matnr_prog = sy-repid.
mgv_matnr_selopt_tab-name = 'MATNR' .
append mgv_matnr_selopt_tab.
call function 'MGV_SELOP_AFTER_INITIALIZATION'
EXPORTING
PROGRAM = mgv_matnr_prog
TABLES
SELOP = mgv_matnr_selopt_tab
EXCEPTIONS
NO_PROGRAMNAME = 1
OTHERS = 2
.
ENDENHANCEMENT.
*$*$-End: RM07RESL_G5-------------------------------------------------------------------------$*$*
ENHANCEMENT-POINT RM07RESL_G6 SPOTS ES_RM07RESL STATIC.
*$*$-Start: RM07RESL_G6-------------------------------------------------------------------------$*$*
ENHANCEMENT 3 MGV_GENERATED_RM07RESL. "active version
START-OF-SELECTION.
ENDENHANCEMENT.
*$*$-End: RM07RESL_G6-------------------------------------------------------------------------$*$*
ENHANCEMENT-POINT RM07RESL_G7 SPOTS ES_RM07RESL.
*$*$-Start: RM07RESL_G7-------------------------------------------------------------------------$*$*
ENHANCEMENT 4 MGV_GENERATED_RM07RESL. "active version
LOOP AT mgv_matnr_selopt_tab.
CONCATENATE mgv_matnr_selopt_tab-name'[]' INTO
mgv_matnr_selopt_tab-name.
ASSIGN (mgv_matnr_selopt_tab-name) TO <mgv_matnr_selopt_conv>.
IF sy-subrc IS INITIAL.
CALL FUNCTION 'MGV_SELOP_AFTER_START_OF_SEL'
EXPORTING
SELOPT_NAME = mgv_matnr_selopt_tab-name
TABLES
RANGE = <mgv_matnr_selopt_conv>.
ENDIF.
ENDLOOP.
ENDENHANCEMENT.
*$*$-End: RM07RESL_G7-------------------------------------------------------------------------$*$*
* Tables declarations for the logical database
TABLES: rkpf, resb, prps, makt, t156t.
* Authorization checks
CLASS cl_mmim_auth DEFINITION LOAD.
* Internal tables.
* Attention: This structure must be identical to the one defines
* in LMIGOSR1.
TYPES: BEGIN OF ty_s_list,
box TYPE xselp.
INCLUDE TYPE rkpf AS head RENAMING WITH SUFFIX _h.
INCLUDE TYPE resb AS item RENAMING WITH SUFFIX _i.
TYPES: rstyp TYPE rstyp,
maktx TYPE makt-maktx,
btext TYPE t156t-btext,
accou TYPE res_account_d,
color TYPE char3,
diffmg TYPE difmg_res.
""*""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2 ) Typ TY_S_LIST, End S
*$*$-Start: (2 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 5 ZIBS_MB25. "active version
TYPES : parnr type ihpa-parnr,
name1 TYPE kna1-name1,
parnr1 TYPE ihpa-parnr,
labst TYPE mard-labst,
matnr TYPE mard-matnr,
werks TYPE mard-werks,
lgort TYPE mard-lgort,
name2 TYPE kna1-name1.
ENDENHANCEMENT.
*$*$-End: (2 )--------------------------------------------------------------------------------$*$*
TYPES: END OF ty_s_list.
DATA: t_list TYPE STANDARD TABLE OF ty_s_list WITH HEADER LINE.
* Structures to transport data from the T156T and MAKT events
* back to RESB LATE. As a matter of fact, RKPF is available, while
* the subordinate nodes are cleared.
DATA: ls_makt TYPE makt,
ls_t156t TYPE t156t.
* User settings for the checkboxes
DATA: oref_settings TYPE REF TO cl_mmim_userdefaults.
* Own selection screen: Only display variant
SELECTION-SCREEN BEGIN OF BLOCK display WITH FRAME TITLE text-001.
PARAMETERS:
alv_def LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK display.
* Dark fields
PARAMETERS:
* P_XCALL: X = multiple selection, A/D: single selection.
p_xcall TYPE char1 NO-DISPLAY,
* Do not save user defaults for checkboxes (because externally called)
p_nosave TYPE char1 NO-DISPLAY,
* Do not show the list but export it to memory and exit.
p_nolist TYPE char1 NO-DISPLAY.
* Structures for anciental export techniques
DATA: BEGIN OF seltab,
rsnum LIKE rkpf-rsnum,
rspos LIKE resb-rspos,
rsart LIKE resb-rsart,
xsele,
END OF seltab.
DATA: BEGIN OF seltab1 OCCURS 10,
rsnum LIKE rkpf-rsnum,
rspos LIKE resb-rspos,
rsart LIKE resb-rsart,
xexpl,
END OF seltab1.
* Include for ALV functions: F4, check, default, ...
INCLUDE rm07alvi.
* Data for ALV
DATA: t_fc TYPE slis_t_fieldcat_alv,
t_sort TYPE slis_t_sortinfo_alv.
* Initialization. Get ALV default variant
INITIALIZATION.
PERFORM alv_init.
PERFORM settings_init.
* Value-help for display variant
AT SELECTION-SCREEN ON VALUE-REQUEST FOR alv_def.
PERFORM alv_f4.
* Check some entered data for consistency
AT SELECTION-SCREEN.
CALL FUNCTION 'MMIM_ENTRYCHECK_MAIN'
TABLES
it_matnr = matnr
it_werks = werks
it_posid = posid
it_usnam = usnam.
PERFORM alv_check.
PERFORM settings_save.
* Data selection
START-OF-SELECTION.
* Logical database...
* Reading the data from the logical database and filling them
* into the internal table.
GET resb LATE.
t_list-head = rkpf.
t_list-item = resb.
IF resb-matnr IS INITIAL. " Note: 606284
ls_makt-maktx = resb-potx1. " Note: 606284
ENDIF. " Note: 606284
t_list-maktx = ls_makt-maktx.
t_list-btext = ls_t156t-btext.
APPEND t_list.
CLEAR ls_makt. " Note: 628765
CLEAR ls_t156t. "n868851
GET makt FIELDS maktx.
ls_makt-maktx = makt-maktx.
GET t156t FIELDS btext.
ls_t156t-btext = t156t-btext.
* Evaluation of the result.
END-OF-SELECTION.
PERFORM data_process.
PERFORM alv_build.
PERFORM list_display.
************************************************************************
* Initialization of the user defaults for the checkboxes
************************************************************************
FORM settings_init.
IF oref_settings IS INITIAL.
CREATE OBJECT oref_settings EXPORTING i_action = 'RM07RESL'.
CALL METHOD oref_settings->preset( i_element = 'P_OPEN'
i_active = 'X' ).
CALL METHOD oref_settings->preset( i_element = 'P_ISSUES'
i_active = 'X' ).
CALL METHOD oref_settings->preset( i_element = 'P_RECEIP'
i_active = 'X' ).
ENDIF.
p_no_acc = oref_settings->get( 'P_NO_ACC' ).
p_open = oref_settings->get( 'P_OPEN' ).
p_cancel = oref_settings->get( 'P_CANCEL' ).
p_closed = oref_settings->get( 'P_CLOSED' ).
p_issues = oref_settings->get( 'P_ISSUES' ).
p_receip = oref_settings->get( 'P_RECEIP' ).
ENDFORM.
************************************************************************
* Save the user settings
************************************************************************
FORM settings_save.
* Save only if not rejected by the calling application
CHECK p_nosave IS INITIAL.
CALL METHOD oref_settings->set( i_element = 'P_NO_ACC'
i_active = p_no_acc ).
CALL METHOD oref_settings->set( i_element = 'P_OPEN'
i_active = p_open ).
CALL METHOD oref_settings->set( i_element = 'P_CANCEL'
i_active = p_cancel ).
CALL METHOD oref_settings->set( i_element = 'P_CLOSED'
i_active = p_closed ).
CALL METHOD oref_settings->set( i_element = 'P_ISSUES'
i_active = p_issues ).
CALL METHOD oref_settings->set( i_element = 'P_RECEIP'
i_active = p_receip ).
CALL METHOD oref_settings->flush.
ENDFORM.
************************************************************************
* Processing of the data.
* Colorization, calculating differences, moving accountings...
************************************************************************
FORM data_process.
LOOP AT t_list.
* T156 is buffered
SELECT SINGLE rstyp INTO (t_list-rstyp) FROM t156
WHERE bwart = t_list-bwart_h.
* Copy account info from item to header for item accounted positions
IF NOT t_list-pspel_i IS INITIAL.
t_list-ps_psp_pnr_h = t_list-pspel_i.
ENDIF.
IF NOT t_list-kdauf_i IS INITIAL.
t_list-kdauf_h = t_list-kdauf_i.
t_list-kdpos_h = t_list-kdpos_i.
t_list-kdein_h = t_list-kdein_i.
ENDIF.
IF NOT t_list-wempf_i IS INITIAL.
t_list-wempf_h = t_list-wempf_i.
ENDIF.
* "Open" quantity
t_list-diffmg = t_list-bdmng_i - t_list-enmng_i.
* Fill the "Account" field
CASE t_list-rstyp.
WHEN 'A'.
t_list-accou+0(12) = t_list-anln1_h.
t_list-accou+12(4) = t_list-anln2_h.
WHEN 'F'.
t_list-accou = t_list-aufnr_h.
WHEN 'N'.
t_list-accou = t_list-nplnr_h.
WHEN 'K'.
IF NOT ( t_list-kostl_h IS INITIAL ).
t_list-accou = t_list-kostl_h.
ELSE.
t_list-accou+0(8) = t_list-imkey_h.
t_list-accou+8(8) = t_list-dabrz_h.
ENDIF.
WHEN 'P'.
IF t_list-aufnr_h IS INITIAL.
WRITE t_list-ps_psp_pnr_h TO t_list-accou.
ELSE.
WRITE t_list-aufnr_h TO t_list-accou.
ENDIF.
WHEN 'V'.
t_list-accou+0(10) = t_list-kdauf_h.
t_list-accou+10(6) = t_list-kdpos_h.
t_list-accou+16(4) = t_list-kdein_h.
WHEN 'U'.
t_list-accou+0(4) = t_list-umwrk_h.
t_list-accou+4(4) = t_list-umlgo_h.
ENDCASE.
* Color: Quite simple: Reservations for goods receipt have
* another color.
* Invert sign.
CASE t_list-shkzg_i.
WHEN 'S'. t_list-color = 'C31'.
ENDCASE.
MODIFY t_list.
ENDLOOP.
ENDFORM.
************************************************************************
* Creation of the data for ALV: Field catalog, layout, sorting...
************************************************************************
FORM alv_build.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DEFINE def_add.
clear ls_fieldcat.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_fieldname = &2.
ls_fieldcat-ref_tabname = &3.
ls_fieldcat-no_out = &4.
ls_fieldcat-qfieldname = &5.
if &1 = 'RSNUM_I' or &1 = 'RSPOS_I'
or &1 = 'RSART_I'. "203543
ls_fieldcat-key = 'X'.
endif.
append ls_fieldcat to t_fc.
END-OF-DEFINITION.
* The fieldcatalog is maintained separately to have it in common
* with the one used in MIGO.
INCLUDE rm07resl_fieldcat.
alv_layout-info_fieldname = 'COLOR'.
* Show multiple selection in report mode (SPACE) to allow multiple
* display in MB23 and in selection mode for SAPMM07M
* (MB1A for reservation).
IF p_xcall = space OR p_xcall = 'X'. "308124
alv_layout-box_fieldname = 'BOX'.
ENDIF.
ENDFORM.
************************************************************************
* Display the list
************************************************************************
FORM list_display.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1 ) Form LIST_DISPLAY, Start D
*$*$-Start: (1 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 6 ZIBS_MB25. "active version
TYPES : BEGIN OF ty_aufk,
aufnr TYPE aufk-aufnr,
objnr TYPE aufk-OBJNR,
END OF ty_aufk.
data : it_aufk TYPE TABLE OF ty_aufk,
wa_aufk TYPE ty_aufk.
TYPES : BEGIN OF ty_parnr,
parnr TYPE ihpa-parnr,
objnr TYPE AUFK-objnr,
parvw TYPe ihpa-parvw,
END OF ty_parnr.
TYPES : BEGIN OF ty_kna1,
kunnr TYPE ihpa-parnr,
name1 TYPE kna1-name1,
END OF ty_kna1.
TYPES : BEGIN OF ty_mard,
matnr TYPE mard-matnr,
werks TYPE mard-werks,
lgort TYPE mard-lgort,
labst TYPE mard-labst,
END OF ty_mard.
DATA : it_mard TYPE TABLE OF ty_mard,
wa_mard TYPE ty_mard.
data : it_kna1 TYPE TABLE OF ty_kna1,
wa_kna1 TYPE ty_kna1.
data : it_parnr TYPE TABLE OF ty_parnr,
wa_parnr TYPE ty_parnr.
data : wa_er_fieldcat like LINE OF t_fc.
data : lines TYPE i.
data : it_afpo TYPE TABLE OF afpo,
wa_afpo TYPE afpo.
* TYPES : begin of ty_afpo,
* aufnr TYPE afpo-aufnr,
* posnr TYPE afpo-posnr,
* projn TYPE afpo-projn,
* END OF ty_afpo.
data : it_prps TYPE TABLE OF prps,
wa_prps TYPE prps.
data : it_vbap TYPE TABLE OF vbap,
wa_vbap TYPE vbap.
data : it_vbak TYPE TABLE OF vbak,
wa_vbak TYPE vbak.
IF t_list is NOT INITIAL.
SELECT aufnr objnr FROM aufk INTO CORRESPONDING FIELDS OF TABLE
it_aufk FOR ALL ENTRIES IN t_list WHERE aufnr = t_list-aufnr_h.
IF it_aufk[] is NOT INITIAL.
SELECT objnr parnr PARVW FROM ihpa
INTO CORRESPONDING FIELDS OF TABLE it_parnr
FOR ALL ENTRIES IN it_aufk WHERE objnr = it_aufk-objnr AND PARVW IN ('AG','WE').
SELECT * FROM afpo
INTO CORRESPONDING FIELDS OF TABLE it_afpo "production order
FOR ALL ENTRIES IN it_aufk
WHERE aufnr = it_aufk-aufnr.
IF it_afpo[] is not INITIAL.
SELECT * FROM prps
INTO CORRESPONDING FIELDS OF TABLE it_prps "production order
FOR ALL ENTRIES IN it_afpo
WHERE pspnr = it_afpo-projn.
ENDIF.
ENDIF.
IF it_prps[] is not INITIAL.
SELECT vbeln posnr ps_psp_pnr arktx FROM vbap "production order
INTO CORRESPONDING FIELDS OF TABLE it_vbap
FOR ALL ENTRIES IN it_prps
WHERE ps_psp_pnr = it_prps-pspnr.
ENDIF.
IF it_vbap[] is not INITIAL.
SELECT vbeln
vkorg
kunnr "production order
ps_psp_pnr FROM vbak
INTO CORRESPONDING FIELDS OF TABLE it_vbak
FOR ALL ENTRIES IN it_vbap
WHERE vbeln = it_vbap-vbeln.
ENDIF.
SELECT matnr werks lgort labst FROM mard INTO CORRESPONDING FIELDS OF TABLE it_mard
FOR ALL ENTRIES IN t_list WHERE matnr = t_list-matnr_i
AND lgort = t_list-lgort_i
AND werks = t_list-werks_i.
ENDIF.
LOOP AT t_list .
READ TABLE it_aufk INTO WA_AUFK WITH KEY AUFNR = T_LIST-aufnr_h.
IF SY-SUBRC = 0.
READ TABLE it_parnr Into wa_parnr WITH key objnr = wa_aufk-objnr parvw = 'AG' .
IF sy-subrc eq 0.
t_list-parnr = wa_parnr-parnr.
CLEAR wa_parnr.
ENDIF.
READ TABLE it_parnr Into wa_parnr WITH key objnr = wa_aufk-objnr parvw = 'WE' .
IF sy-subrc eq 0.
t_list-parnr1 = wa_parnr-parnr.
ENDIF.
ENDIF.
IF t_list-parnr is INITIAL.
READ TABLE it_afpo INTO wa_afpo WITH key aufnr = t_list-aufnr_h.
IF sy-subrc eq 0.
READ TABLE it_prps INTO wa_prps WITH key pspnr = wa_afpo-projn.
IF sy-subrc eq 0.
READ TABLE it_vbap INTO wa_vbap WITH key ps_psp_pnr = wa_prps-pspnr.
IF sy-subrc eq 0.
READ TABLE it_vbak INTO wa_vbak WITH key vbeln = wa_vbap-vbeln.
IF sy-subrc eq 0.
t_list-parnr = wa_vbak-kunnr.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF t_list-parnr is not INITIAL.
select single name1 FROM kna1 into t_list-name1 WHERE
kunnr = t_list-parnr.
ENDIF.
IF t_list-parnr1 is not INITIAL.
select single name1 FROM kna1 into t_list-name2 WHERE
kunnr = t_list-parnr1.
ENDIF.
READ TABLE it_mard INTO wa_mard WITH KEY matnr = t_list-matnr_i
werks = t_list-werks_i
lgort = t_list-lgort_i .
if sy-subrc = 0.
t_list-labst = wa_mard-labst.
endif.
modify t_list TRANSPORTING parnr name1 parnr1 NAME2 labst.
CLEAR t_list.
CLEAR wa_parnr.
CLEAR WA_AUFK.
CLEAR wa_mard.
ENDLOOP.
DESCRIBE TABLE t_fc LINES lines.
wa_er_fieldcat-col_pos = lines.
wa_er_fieldcat-fieldname = 'PARNR'.
wa_er_fieldcat-SELTEXT_L = 'Sold To Party'.
wa_er_fieldcat-SELTEXT_m = 'Sold To Party'.
wa_er_fieldcat-OUTPUTLEN = '15'.
APPEND wa_er_fieldcat TO t_fc.
CLEAR wa_er_fieldcat.
wa_er_fieldcat-col_pos = lines.
wa_er_fieldcat-fieldname = 'NAME1'.
wa_er_fieldcat-SELTEXT_L = 'Sold To Party Name'.
wa_er_fieldcat-SELTEXT_m = 'Sold To Party Name'.
wa_er_fieldcat-OUTPUTLEN = '30'.
APPEND wa_er_fieldcat TO t_fc.
CLEAR wa_er_fieldcat.
wa_er_fieldcat-col_pos = lines.
wa_er_fieldcat-fieldname = 'PARNR1'.
wa_er_fieldcat-SELTEXT_L = 'Ship to Party'.
wa_er_fieldcat-SELTEXT_m = 'Ship to Party'.
wa_er_fieldcat-OUTPUTLEN = '15'.
APPEND wa_er_fieldcat TO t_fc.
CLEAR wa_er_fieldcat.
wa_er_fieldcat-col_pos = lines.
wa_er_fieldcat-fieldname = 'NAME2'.
wa_er_fieldcat-SELTEXT_L = 'Ship to Party'.
wa_er_fieldcat-SELTEXT_m = 'Ship to Party Name'.
wa_er_fieldcat-OUTPUTLEN = '30'.
APPEND wa_er_fieldcat TO t_fc.
CLEAR wa_er_fieldcat.
wa_er_fieldcat-col_pos = lines.
wa_er_fieldcat-fieldname = 'LABST'.
wa_er_fieldcat-SELTEXT_L = 'Unrestricted Stock'.
wa_er_fieldcat-SELTEXT_m = 'Unrestricted Stock'.
wa_er_fieldcat-OUTPUTLEN = '30'.
APPEND wa_er_fieldcat TO t_fc.
CLEAR wa_er_fieldcat.
ENDENHANCEMENT.
*$*$-End: (1 )--------------------------------------------------------------------------------$*$*
IF p_nolist IS INITIAL.
CALL FUNCTION alv_detail_func
EXPORTING
i_interface_check = ' '
i_callback_program = alv_repid
i_callback_pf_status_set = 'STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
is_layout = alv_layout
it_fieldcat = t_fc
it_sort = t_sort
i_default = 'X'
i_save = 'A'
is_variant = alv_variant
is_print = alv_print
TABLES
t_outtab = t_list.
ELSE.
EXPORT t_list TO MEMORY ID 'RM07RESL_RESULT'.
LEAVE.
ENDIF.
ENDFORM.
************************************************************************
* Status setting
************************************************************************
FORM status_set USING rt_extab TYPE slis_t_extab.
IF cl_mmim_auth=>level( ) IS INITIAL.
APPEND 'AUTH' TO rt_extab.
ENDIF.
IF cl_mmim_auth=>level( ) = cl_mmim_auth=>c_error.
MESSAGE s124(m7).
ENDIF.
IF p_xcall IS INITIAL.
APPEND 'TAKE' TO rt_extab.
ELSE.
APPEND 'RSNUM' TO rt_extab.
APPEND 'RSPOS' TO rt_extab.
ENDIF.
SET PF-STATUS 'STANDARD' EXCLUDING rt_extab.
ENDFORM.
************************************************************************
* User commands
************************************************************************
FORM user_command USING rf_ucomm LIKE sy-ucomm
rs TYPE slis_selfield.
* Double click
IF rf_ucomm = '&IC1'.
IF NOT p_xcall IS INITIAL.
rf_ucomm = 'TAKE'.
ELSE.
IF rs-fieldname = 'RSPOS_I'.
rf_ucomm = 'RSPOS'.
ELSE.
rf_ucomm = 'RSNUM'.
ENDIF.
ENDIF.
ENDIF.
* Evaluation
CASE rf_ucomm.
* Deliver data to other applications
WHEN 'TAKE'.
READ TABLE t_list INDEX rs-tabindex.
IF sy-subrc = 0.
CLEAR seltab.
MOVE-CORRESPONDING t_list-item TO seltab.
CLEAR seltab-xsele.
EXPORT seltab TO MEMORY ID 'SELTAB'.
ENDIF.
REFRESH seltab1.
LOOP AT t_list WHERE box = 'X'.
MOVE-CORRESPONDING t_list-item TO seltab1.
APPEND seltab1.
ENDLOOP.
EXPORT seltab1 TO MEMORY ID 'SELTAB1'.
LEAVE.
* Display reservation
WHEN 'RSNUM' OR 'RSPOS'.
* Extract the marked lines.
CLEAR seltab1. "308124
REFRESH seltab1. "308124
LOOP AT t_list WHERE box = 'X'. "308124
MOVE-CORRESPONDING t_list-item TO seltab1. "308124
APPEND seltab1. "308124
ENDLOOP. "308124
READ TABLE seltab1 INDEX 1. "308124
* If no line was marked explicitly, read the line under the cursor.
IF seltab1-rsnum IS INITIAL. "308124
READ TABLE t_list INDEX rs-tabindex. "308124
IF sy-subrc = 0. "308124
MOVE-CORRESPONDING t_list-item TO seltab1. "308124
ENDIF. "308124
ENDIF. "308124
* Display reservation: Clear item number.
IF rf_ucomm = 'RSNUM'. "308124
CLEAR seltab1-rspos. "308124
ENDIF. "308124
* If any data have been found, start MB23.
IF NOT seltab1-rsnum IS INITIAL. "308124
EXPORT seltab1 TO MEMORY ID 'MB23_SELTAB'. "308124
SET PARAMETER ID 'RES' FIELD seltab1-rsnum. "308124
SET PARAMETER ID 'RPO' FIELD seltab1-rspos. "308124
CALL TRANSACTION 'MB23' AND SKIP FIRST SCREEN. "308124
ENDIF. "308124
WHEN 'MMBE'.
READ TABLE t_list INDEX rs-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID 'MAT' FIELD t_list-matnr_i.
SET PARAMETER ID 'WRK' FIELD t_list-werks_i.
SET PARAMETER ID 'LAG' FIELD space.
SET PARAMETER ID 'CHA' FIELD space.
CALL TRANSACTION 'MMBE' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'AUTH'.
CALL METHOD cl_mmim_auth=>display.
ENDCASE.
CLEAR rf_ucomm.
ENDFORM.