INITIALIZATION.
PERFORM restrict USING 'PA_STAT'.
PERFORM restrict USING 'PNO_STAT'.
PERFORM restrict USING 'PO_STAT'.
SELECT-OPTIONS pa_stat FOR tj02t-txt04 NO INTERVALS.
SELECT-OPTIONS po_stat FOR tj02t-txt04 NO INTERVALS.
SELECT-OPTIONS pno_stat FOR tj02t-txt04 NO INTERVALS.
FORM restrict USING lv_param.
"EXIT.
"USING p1.
"CHANGING p2.
TABLES sscr.
DATA t_restrict TYPE sscr_restrict.
DATA l_ass TYPE sscr_ass.
DATA l_opt TYPE sscr_opt_list.
*-- OptionsTable bauen
CLEAR l_opt.
l_opt-name = 'OL_TEST'. "1 Routine für alle Restriktionen lv_param. "'OL_' && lv_param.
l_opt-options-eq = 'X'. "Nur Einzelwerte zulassen
APPEND l_opt TO t_restrict-opt_list_tab.
*-- Zuordnung zu den Selektionsfeldern
CLEAR l_ass.
MOVE: 'S' TO l_ass-kind,
lv_param TO l_ass-name,
'I' TO l_ass-sg_main,
l_opt-name TO l_ass-op_main.
APPEND l_ass TO t_restrict-ass_tab.
*-- Restriktionen aktivieren
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
restriction = t_restrict
EXCEPTIONS
too_late = 1
repeated = 2
selopt_without_options = 3
selopt_without_signs = 4
invalid_sign = 5
empty_option_list = 6
invalid_kind = 7
repeated_kind_a = 8
OTHERS = 9.
IF sy-subrc <> 0.
"Fehler
ENDIF.
ENDFORM. " restrict
name:
Name der generierten Routine
options-eq
Nur Einzelwerte zulassen
Hier können alle Varianten kombiniert werden (Mehrfachauswahl)
kind:
S Einschränkung auf die Selection-Options pa_stat
B Einschränkung auf den gesamten Blcok
A Einschränkung für alle (Selection-Options)
name:
Name der Selection-Options oder des Blocks
sg_main:
I Nur Inklusive Zeichen
op_main:
Name der Routine
Obiger Code für zur Einschränkung auf:
Einzelwerte Einschließen.
Nicht erlaubt ist:
Einzelwerte Ausschließen.
Intervalle Einschließen
Intervalle Ausschließen