Anfang des InhaltsbereichsSubscreens auf Selektionsbildern Dokument im Navigationsbaum lokalisieren

Die Anzeige von Subscreens in Subscreen-Bereichen auf Selektionsbildern ist einfach ein Spezialfall von TabStrips auf Selektionsbildern. Um einen Subscreen-Bereich auf einem Selektionsbild zu definieren, verwendet man die beiden Anweisungen:

SELECTION-SCREEN: BEGIN OF TABBED BLOCK <sub_area> FOR <n> LINES,
                  END OF BLOCK <sub_area>.

Die Definition eines Subscreen-Bereichs entspricht also der Definition eines TabStrip-Bereichs ohne Tab-Reiter. Vor dem Senden des Selektionsbilds muß dem Subscreen-Bereich <sub_area> ein Subscreen zugewiesen werden. Hierfür verwendet man die Komponenten PROG und DYNNR der gleichnamigen Struktur <sub_area>, die durch obige Anweisung automatisch erzeugt wird. Der Komponente PROG muß der Programmname des Subscreens und der Komponente DYNNR muß die Dynpronummer des Subscreens zugewiesen werden. Mögliche Subscreens sind:

Fehlt die Zuweisung eines Subscreens beim Senden des Selektionsbilds, kommt es zu einem Laufzeitfehler.

Beispiel

REPORT demo_sel_screen_with_subscreen.

TABLES sscrfields.

* SUBSCREEN 1

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-010.
PARAMETERS: p1(10) TYPE c,
            p2(10) TYPE c,
            p3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 100.

* SUBSCREEN 2

SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-020.
PARAMETERS: q1(10) TYPE c,
            q2(10) TYPE c,
            q3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 200.

* SUBSCREEN 3

SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-030.
PARAMETERS: r1(10) TYPE c,
            r2(10) TYPE c,
            r3(10) TYPE c.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN END OF SCREEN 300.

* STANDARD SELECTION SCREEN

SELECTION-SCREEN: FUNCTION KEY 1,
                  FUNCTION KEY 2.

SELECTION-SCREEN: BEGIN OF TABBED BLOCK sub FOR 10 LINES,
                  END OF BLOCK sub.

INITIALIZATION.
  sscrfields-functxt_01 = '@0D@'.
  sscrfields-functxt_02 = '@0E@'.
  sub-prog = sy-repid.
  sub-dynnr = 100.

AT SELECTION-SCREEN.
  CASE sy-dynnr.
    WHEN 100.
      IF sscrfields-ucomm = 'FC01'.
        sub-dynnr = 300.
      ELSEIF sscrfields-ucomm = 'FC02'.
        sub-dynnr = 200.
      ENDIF.
    WHEN 200.
      IF sscrfields-ucomm = 'FC01'.
        sub-dynnr = 100.
      ELSEIF sscrfields-ucomm = 'FC02'.
        sub-dynnr = 300.
      ENDIF.
    WHEN 300.
      IF sscrfields-ucomm = 'FC01'.
        sub-dynnr = 200.
      ELSEIF sscrfields-ucomm = 'FC02'.
        sub-dynnr = 100.
      ENDIF.
  ENDCASE.

START-OF-SELECTION.
  WRITE: / 'P1:', p1,'Q1:', q1, 'R1:', r1,
         / 'P2:', p2,'Q2:', q2, 'R2:', r2,
         / 'P3:', p3,'Q3:', q3, 'R3:', r3.

In diesem Programm werden drei Subscreen-Selektionsbilder, 100, 200 und 300, definiert. Auf dem Standard-Selektionsbild wird ein Subscreen-Bereich SUB angelegt. Weiterhin werden in der Drucktastenleiste zwei Drucktasten aktiviert.

Zum Zeitpunkt INITIALIZATION wird dem Subscreen-Bereich das Subscreen-Selektionsbild 100 zugewiesen. Zum Zeitpunkt AT SELECTION-SCREEN werden die Funktionstasten ausgewertet und entsprechend einer der anderen Subscreens zugewiesen.

Ende des Inhaltsbereichs