Listen in Dialogfenstern 

Um eine Verzweigungsliste in einem Dialogfenster statt auf dem Vollbild anzuzeigen, kann die Anweisung WINDOW in den Ereignisblöcken der Listenverarbeitung verwendet werden:

WINDOW STARTING AT <left> <upper> [ENDING AT <right> <lower>].

Bei Verwendung dieser Anweisung wird das Trägerdynpro der aktuelle Liste (Index SY-LSIND) als Dialogfenster dargestellt. Mit <left> und <upper> werden Spalte und Zeile der linken oberen Ecke bezogen auf das Ausgabebild der Grundliste angegeben. Ist <upper> gleich null, wird die Liste als Vollbild dargestellt. Die Lage der rechten unteren Ecke richtet sich nach dem Platzbedarf der Verzweigungsliste. In der Option ENDING können mit <right> und <lower> Spalte und Zeile der rechten unteren Ecke limitiert werden. Das Fenster ragt nicht über diese Werte hinaus. Standardmäßig entsprechen diese Werte der rechten unteren Ecke des Fensters, auf dem das Ereignis stattfand.

Wenn die Breite des Dialogfensters kleiner als die ursprüngliche Listenbreite ist, erzeugt das System automatisch eine horizontale Blätterleiste auf dem Dialogfenster. Um dies zu verhindern, muß die Breite der Verzweigungsliste mit der folgenden Anweisung an die Breite des Dialogfensters angepaßt werden:

NEW-PAGE LINE-SIZE <width>.

Die Anweisung WINDOW ist nur im Ereignisblock eines interaktiven Ereignisses, also nur für Verzweigungslisten wirksam. Alle Listeneigenschaften gelten für Listen in Dialogfenstern genauso wie für Listen auf dem Vollbild.

Der Typ des GUI-Status eines Dialogfensters unterscheidet sich vom Vollbild. Dialogfenster haben keine Menüleiste und keine Symbolleiste. Die Drucktastenleiste befindet sich am unteren Fensterrand. Dies ist eine allgemeine Eigenschaft von Dialogfenstern im R/3-System.

Wenn kein eigener Status gesetzt wird, aber Verarbeitungsblöcke zu AT LINE-SELECTION oder AT PF<nn> im Programm definiert sind, verwendet das System Standardlistenstatus für Dialogfenster mit entsprechenden Funktionscodes.

Um einen eigenen Status für ein Dialogfenster zu definieren, wählt man Dialogfenster als Statustyp im Menu Painter. In diesem Statustyp sind keine Menü- und Symbolleisten vorgesehen und die Drucktastenleiste ist nach dem Abgleich mit der Vorlage für Listen mit den Funktionscodes PRI zum Drucken, %SC und %SC+, die das Suchen von Mustern ermöglichen, und RW zum Verlassen des Fensters vorbelegt.

REPORT demo_list_window NO STANDARD PAGE HEADING.

START-OF_SELECTION.
  SET PF-STATUS 'BASIC'.
  WRITE 'Select line for a demonstration of windows'.

AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN 'SELE'.
      IF sy-lsind = 1.
        SET PF-STATUS 'DIALOG'.
        SET TITLEBAR 'WI1'.
        WINDOW STARTING AT 5 3 ENDING AT 40 10.
        WRITE 'Select line for a second window'.
      ELSEIF sy-lsind = 2.
        SET PF-STATUS 'DIALOG' EXCLUDING 'SELE'.
        SET TITLEBAR 'WI2'.
        WINDOW STARTING AT 45 10 ENDING AT 60 12.
        WRITE 'Last window'.
      ENDIF.
  ENDCASE.

In diesem Programm wird für die Grundliste der Status BASIC gesetzt. Im Status BASIC ist für die Taste F2 der vorgeschlagene Funktionscode PICK durch den eigenen Funktionscode SELE (Text SELECT) ersetzt und SELE auf die Drucktastenleiste gelegt worden.

Dadurch bewirken die Auswahl von SELECT, F2 und ein Maus-Doppelklick das Ereignis AT USER-COMMAND. In dem zugehörigen Verarbeitungsblock werden die Listentufen 1 und 2 mit dem Status DIALOG als Dialogfenster ausgegeben. Im Status DIALOG wird genau wie für den Status BASIC der vorgeschlagene Funktionscode PICK im Statustyp Dialogfenster durch SELE ersetzt und hinter RW auf die Drucktastenleiste gelegt.

Es sind Titel WI1 und WI2 für die Dialogfenster definiert. Im zweiten Dialogfenster ist der Funktionscode SELE über den Zusatz EXCLUDING der Anweisung SET PF-STATUS deaktiviert.

In den Dialogfenstern erscheinen horizontale Blätterleisten, da die Listenbreiten der Dialogfenster nicht angepaßt werden und daher der Standardlistenbreite der Grundliste entsprechen.