
Beim Starten eines ausführbaren Programms erscheint normalerweise das Selektionsbild, auf dem die Selektionskriterien und Parameter einer verbundenen logischen Datenbank sowie die des Reports selbst abgefragt werden (siehe Direkte Ausführung ). Beim Aufruf eines ausführbaren Programms mit SUBMIT gibt es verschiedene Zusätze, um die Eingabefelder des Selektionsbilds zu füllen.
SUBMIT... [VIA SELECTION-SCREEN] [USING SELECTION-SET var] [WITH sel criterion] [WITH FREE SELECTIONS freesel] [WITH SELECTION-TABLE rspar].
Diese Zusätze haben folgende Wirkung:
Das Selektionsbild des aufgerufenen ausführbaren Programms wird angezeigt. Falls Werte durch die übrigen Zusätze an das ausführbare Programm übergeben werden, sind deren Eingabefelder im Selektionsbild gefüllt. Der Benutzer kann diese Werte abändern. Standardmäßig erscheint kein Selektionsbild nach der Anweisung SUBMIT.
Dieser Zusatz bewirkt, dass das aufgerufene Programm über die Variante var gestartet wird.
Mit diesem Zusatz können einzelne Eingabefelder sel des Selektionsbilds (Selektionstabellen und Parameter) mit Hilfe der Sprachelemente criterion gefüllt werden.
Für mehr Informationen zu diesen Zusätzen: siehe Schlüsselwortdokumentation.
All diese Zusätze außer WITH SELECTION-TABLEkönnen mehrfach und in beliebigen Kombinationen in einer SUBMIT-Anweisung eingesetzt werden. Insbesondere kann den Zusatz WITH sel auch mehrfach für ein einzelnes Kriterium sel verwendet werden. Der Zusatz WITH SELECTION-TABLE kann nur mit USING SELECTION-SET kombiniert werden.
Wenn die Eingabefelder von Selektionsbildern mit SPA/GPA-Parametern verknüpft sind, kann auch die SPA/GPA-Technik zur Datenübergabe an Selektionsbilder verwendet werden (siehe Daten zwischen Programmen übergeben ).
Das folgende ausführbare Programm hat ein intern definiertes Selektionsbild mit dem Parameter paramet und dem Selektionskriterium selecto:
REPORT demo_program_submit_rep1.
DATA number TYPE i.PARAMETERS paramet(14) TYPE c.SELECT-OPTIONS selecto FOR number.
Das Programm demo_program_submit_rep1 wird von folgendem Programm mit verschiedenen Übergabeparametern aufgerufen:
REPORT demo_program_submit_sel_screen NO STANDARD PAGE HEADING.
DATA: int TYPE i, rspar TYPE TABLE OF rsparams, wa_rspar LIKE LINE OF rspar.
RANGES seltab FOR int.
WRITE: 'Select a Selection!', / '--------------------'.SKIP.
FORMAT HOTSPOT COLOR 5 INVERSE ON.WRITE: 'Selection 1', / 'Selection 2'.
AT LINE-SELECTION. CASE sy-lilli. WHEN 4. seltab-sign = 'I'. seltab-option = 'BT'. seltab-low = 1. seltab-high = 5. APPEND seltab. SUBMIT demo_program_submit_rep1 VIA SELECTION-SCREEN WITH paramet eq 'Selection 1' WITH selecto IN seltab WITH selecto ne 3 AND RETURN. WHEN 5. wa_rspar-selname = 'SELECTO'. wa_rspar-kind = 'S'. wa_rspar-sign = 'E'. wa_rspar-option = 'BT'. wa_rspar-low = 14. wa_rspar-high = 17. APPEND wa_rspar TO rspar. wa_rspar-selname = 'PARAMET'. wa_rspar-kind = 'P'. wa_rspar-low = 'Selection 2'. APPEND wa_rspar TO rspar. wa_rspar-selname = 'SELECTO'. wa_rspar-kind = 'S'. wa_rspar-sign = 'I'. wa_rspar-option = 'GT'. wa_rspar-low = 10. APPEND wa_rspar TO rspar. SUBMIT demo_program_submit_rep1 VIA SELECTION-SCREEN WITH SELECTION-TABLE rspar AND RETURN. ENDCASE.
Nach dem Start erscheint eine Grundliste und durch Clicks auf die Hotspots wird das Selektionsbild von rep1 unterschiedlich gefüllt angezeigt.
Bei beiden Aufrufen von demo_program_submit_rep1werden Werte übergeben, die zu zweizeiligen Selektionstabellen selecto führen. Die zweite Zeile ist jeweils im Dialogfenster Mehrfachselektion für selecto zu sehen. Ohne den Zusatz VIA SELECTION-SCREENder SUBMIT-Anweisung würden paramet und selecto in demo_program_submit_rep1 genauso gefüllt, aber nicht angezeigt.