- F4IF_INT_TABLE_VALUE_REQUEST
Diese Programme zeigen, wie ein F4 Wertauswahl für jedes beliebiges Feld individuell erzeugt werden kann.
REPORT ztest46.
" Testprogramm zum Löschen / Kopieren / Setzen von Parametern.
" su05
" bname
" parid
" parva
"
" Vorlage User (Parameter)
" Parameter Von Bis
" Ziel User Von Bis
"
" Löschen
" Kopieren
" Echtlauf
"
" Parameter
" Parameter Wert
" Ziel User
" Setzen
" Löschen
" Echtlauf
TABLES: usr05.
SELECT-OPTIONS: s_bname FOR usr05-bname. " matchcode object
SELECT-OPTIONS: parid FOR usr05-parid MATCHCODE OBJECT h_tpara.
TABLES t001w.
SELECT-OPTIONS: s_werks FOR t001w-werks MODIF ID id1.
DATA: kunnso_itab LIKE TABLE OF t001w.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_bname-low.
PERFORM fill CHANGING s_bname-low.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_bname-high.
PERFORM fill CHANGING s_bname-high.
FORM fill CHANGING s_bname.
DATA: return TYPE TABLE OF ddshretval WITH HEADER LINE.
SELECT bname, name_last, name_first FROM v_usr_name INTO TABLE @DATA(wt_usr)
"WHERE bname = 'STAJOH'
ORDER BY name_last.
* SELECT bname INTO CORRESPONDING FIELDS OF TABLE kunnso_itab FROM
* t001w.
*
DELETE ADJACENT DUPLICATES FROM wt_usr.
*
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BNAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_BNAME'
value_org = 'S'
"multiple_choice = 'X'
TABLES
value_tab = wt_usr
"return_tab = return.
.
IF sy-subrc = 0.
SORT return BY fieldval DESCENDING.
LOOP AT return.
* s_werks-low = return-fieldval.
*
* s_werks-option = 'EQ'.
*
* s_werks-sign = 'I'.
*
* s_werks-high = space.
*
* APPEND s_werks.
ENDLOOP.
SORT wt_usr BY bname.
ENDIF.
ENDFORM.
START-OF-SELECTION.
report zF4IF_INT_TABLE_VALUE_REQUEST.
TABLES t001w.
SELECT-OPTIONS: s_werks FOR t001w-werks MODIF ID id1.
DATA: kunnso_itab LIKE TABLE OF t001w.
DATA: return TYPE TABLE OF ddshretval WITH HEADER LINE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_werks-low.
SELECT werks name1 INTO CORRESPONDING FIELDS OF TABLE kunnso_itab FROM
t001w.
DELETE ADJACENT DUPLICATES FROM kunnso_itab.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'WERKS'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_WERKS'
value_org = 'S'
multiple_choice = 'X'
TABLES
value_tab = kunnso_itab
return_tab = return.
IF sy-subrc = 0.
SORT return BY fieldval DESCENDING.
LOOP AT return.
s_werks-low = return-fieldval.
s_werks-option = 'EQ'.
s_werks-sign = 'I'.
s_werks-high = space.
APPEND s_werks.
ENDLOOP.
SORT s_werks BY low.
ENDIF.
*AT SELECTION-SCREEN OUTPUT.
* LOOP AT SCREEN.
* IF screen-group1 = 'ID1'.
*
* MODIFY SCREEN.
* ENDIF.
* ENDLOOP.