Function Module: F4IF_INT_TABLE_VALUE_REQUEST
- Create types:
- TYPES: BEGIN OF ty_values,
lot TYPE qplos,
batch TYPE charg_d,
material TYPE matnr,
date TYPE datum,
END OF ty_values. - Declare internal table and work area.
- DATA: it_values TYPE STANDARD TABLE OF ty_values WITH KEY lot,
wa_values TYPE ty_values. - DATA: it_return TYPE STANDARD TABLE OF ddshretval.
- Create the event to request the value
- AT SELECTION-SCREEN ON VALUE-REQUEST FOR variable. "variable = parameters/select options variable
- Collect necessary data and populate it_values table
- Call the function module.
- CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LOT' "Internal table field
dynpprog = sy-repid " Current program name
dynpnr = '1000' " Screen number
dynprofield = 'P_LOT-LOW' "Parameter/Select-option field
value_org = 'S'
multiple_choice = 'X' " If you want to choose multiple value frm f4
TABLES
value_tab = IT_values
return_tab = it_return
EXCEPTIONS
parameter_error = 1
no_values_found = 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.
ELSE.
READ TABLE it_return INDEX 1.
p_lot-low = it_return-fieldval.
- In case of select options:
- CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LOT'
dynpprog = sy-repid
dynpnr = '1000'
dynprofield = 'P_LOT-LOW'
value_org = 'S'
multiple_choice = 'X'
TABLES
value_tab = IT_values
return_tab = it_return
EXCEPTIONS
parameter_error = 1
no_values_found = 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.
ELSE.
READ TABLE it_return INDEX 1.
p_lot-low = it_return-fieldval.
LOOP AT it_return.
AT FIRST.
p_lot-sign = 'I'.
p_lot-option = 'EQ'.
p_lot-low = it_return-fieldval.
APPEND p_lot.
CLEAR p_lot.
ENDAT.
p_lot-sign = 'I'.
p_lot-option = 'EQ'.
p_lot-low = it_return-fieldval.
APPEND p_lot.
CLEAR p_lot.
ENDLOOP.
ENDIF.
Comments
Post a Comment