Anfang des InhaltsbereichsSelektionsbild des aufgerufenen Programms füllen Dokument im Navigationsbaum lokalisieren

Beim Starten eines ausführbaren Programms (Report) 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 - Reports). 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 (Report) wird angezeigt. Falls Werte durch die übrigen Zusätze an das ausführbare Programm (Report) ü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, daß das aufgerufene Programm über die Variante <var> gestartet wird.

Mit diesem Zusatz können einzelne Eingabefelder <sel> des Selektionsbilds (Selektionstabellen und Parameter) gefüllt werden. Hierfür stehen folgende Sprachelemente <criterion> zur Verfügung:

Falls <sel> ein Selektionskriterium ist, füllen <op> das Feld OPTION, <f> das Feld LOW und <s> das Feld SIGN der Selektionstabelle <sel> im aufgerufenen Programm.

Falls <sel> ein Parameter ist, kann für <op> einen beliebiger Operator eingesetzt werden. Es wird immer der Parameter <sel> mit <f> gefüllt.

Es füllen <f1> das Feld LOW, <f2> das Feld HIGH und <s> das Feld SIGN der Selektionstabelle <sel> im aufgerufenen Report. Ohne den Zusatz NOT wird das Feld OPTION mit dem Wert BT und mit dem Zusatz NOT wird das Feld OPTION mit dem Wert NB gefüllt.

Dieser Zusatz füllt die Selektionstabelle <sel> im aufgerufenen Programm mit den Werten der Tabelle <seltab> des aufrufenden Programms. Die Tabelle <seltab> muß die Struktur einer Selektionstabelle haben und kann mit der Anweisung RANGES angelegt werden.

Um diesen Zusatz zu verwenden, muß das aufgerufene Programm mit einer logischen Datenbank verknüpft sein, die freie Abgrenzungen unterstützt. Im aufrufenden Programm kann man die Funktionsbausteine FREE-SELECTIONS_INIT und FREE_SELECTIONS_DIALOG aufrufen. Damit kann der Benutzer auf einem Selektionsbild freie Abgrenzungen vornehmen. Ein Exportparameter dieser Funktionsbausteine hat die Struktur RSDS_TEXPR aus der Typgruppe RSDS. Die Werte dieses Exportparameters werden durch die interne Tabelle <freesel> gleicher Struktur an das aufgerufene Programm übergeben.

Es muss eine interne Tabelle <rspar> mit der Dictionary-Struktur RSPARAMS erstellt werden. Die Tabelle hat dann folgende sechs Felder:

Diese Tabelle kann im aufrufenden Programm dynamisch mit allen gewünschten Werten für das Selektionsbild des aufgerufenen Programms gefüllt werden. Mehrfach vorkommende Namen eines Selektionskriteriums führen zu mehrzeiligen Selektionstabellen des betreffenden Kriteriums im aufgerufenen Programm. Bei mehrfach vorkommenden Namen eines Parameters, wird der letzte Wert gesetzt. Es ist zu beacheten, daß LOW und HIGH vom Typ C sind und daher Typkonvertierungen zu den Kriterien des aufgerufenen Programms stattfinden. Dies ist wichtig z.B. bei Datumsfeldern. Es ist sinnvoll die Programme vor der Auslieferung mit dem Zusatz VIA SELECTION-SCREEN zu überprüfen.

Alle der oben angegebenen Zusätze außer WITH SELECTION-TABLE können mehrfach und in beliebigen Kombinationen in einer SUBMIT-Anweisung eingesetzt werdenn. Insbesondere kann den Zusatz WITH <sel> auch mehrfach für ein einzelnes Kriterium <sel> verwendet werden. Im aufgerufenen Programm werden an die angesprochenen Selektionstabellen die entsprechenden Zeilen angehängt. Für Parameter wird der zuletzt angegebene Wert gesetzt. 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).

Beispiel

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 folgende Grundliste:

Diese Grafik wird im zugehörigen Text erklärt

Durch Einfachklick auf den ersten Hotspot erscheint das Selektionsbild von REP1 wie folgt:

Diese Grafik wird im zugehörigen Text erklärt

Durch Einfachklick auf den zweiten Hotspot erscheint das Selektionsbild von REP1 wie folgt:

Diese Grafik wird im zugehörigen Text erklärt

Bei beiden Aufrufen von DEMO_PROGRAM_SUBMIT_REP1 werden 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-SCREEN der SUBMIT-Anweisung würden PARAMET und SELECTO in DEMO_PROGRAM_SUBMIT_REP1 genauso gefüllt, aber nicht angezeigt.

Ende des Inhaltsbereichs