Show TOC Anfang des Inhaltsbereichs

In Verzweigungslisten blättern  Dokument im Navigationsbaum lokalisieren

Um in Verzweigungslisten programmgesteuert zu blättern, kann die SCROLL-Anweisung verwendet werden. Diese Anweisung wird unter In Listen blättern ausführlich für Grundlisten beschrieben.

Für Verzweigungslisten muss für die SCROLL-Anweisung folgendes beachtet werden:

·        Die SCROLL-Anweisung wirkt nur auf fertig gestellte Listen. Steht diese Anweisung vor der ersten Ausgabeanweisung einer Liste, so wirkt sie nicht auf diese Liste. Steht sie nach der ersten Ausgabeanweisung einer Liste, so wirkt sie auf die gesamte Liste, also auch auf alle nachfolgenden Ausgabeanweisungen.

·        Während der Erstellung einer Verzweigungsliste bezieht sich die SCROLL-Anweisung ohne den INDEX-Zusatz immer auf die vorhergehende angezeigte Liste, auf der das interaktive Ereignis stattfand (Index sy-listi).

·        Nur während der Erstellung der Grundliste bezieht sich SCROLL auf die Liste, die gerade erstellt wird.

·        Man kann mit Hilfe des INDEX-Zusatzes gezielt in vorhandenen Listenstufen blättern. Die Listen müssen dabei nicht auf dem Bildschirm zu sehen sein. Wenn die Liste wieder angezeigt wird, steht sie an der entsprechenden Stelle. Ist die angesprochene Listenstufe nicht vorhanden, wird sy-subrc auf 8 gesetzt.

·        Wenn man während eines interaktiven Ereignisses in der Liste blättern will, die gerade erstellt wird, kann man den Index sy-lsind in der SCROLL-Anweisung angeben. Dabei ist zu beachten, dass eine Manipulation von sy-lsind sich unabhängig von der Position im Verarbeitungsblock erst am Ende des Ereignisses auf die erstellte Liste auswirkt. Soll die aktuelle Listenstufe explizit gesetzt werden, darf sy-lsind erst in der letzten Anweisung des Verarbeitungsblocks manipuliert werden, damit SCROLL im Ereignisblock auf die richtige Liste zugreift.

Eine weitere Möglichkeit um in interaktiven Listen programmgesteuert zu blättern, bietet die Anweisung SET USER-COMMAND in Verbindung mit den entsprechenden systemdefinierten Funktionscodes (P...).

Beispiel

REPORT demo_list_scroll NO STANDARD PAGE HEADING LINE-SIZE 50.

SET PF-STATUS 'SELECT'.

WRITE 'Create a secondary list by choosing SELECT'.

AT USER-COMMAND.
  NEW-PAGE LINE-SIZE 200.
  CASE sy-ucomm.
    WHEN 'SELE'.
      SET PF-STATUS 'SCROLLING'.
      DO 200 TIMES. WRITE sy-index. ENDDO.
      SCROLL LIST RIGHT BY 48 PLACES INDEX sy-lsind.
      sy-lsind = sy-lsind - 1.
    WHEN 'LEFT'.
      SCROLL LIST LEFT BY 12 PLACES.
    WHEN 'RGHT'.
      SCROLL LIST RIGHT BY 12 PLACES.
  
ENDCASE.

Dieses Programm erzeugt eine einzeilige Grundliste mit dem Status SELECT. Im Status SELECT wurde die Funktionstaste F2 und eine Taste der Drucktastenleiste mit dem Funktionscode SELE (Text SELECT) belegt.

Nach der Auswahl von SELECT wird beim Ereignis AT USER-COMMAND eine Verzweigungsliste mit dem Status SCROLLING erstellt. Im Status SCROLLING liegen die Funktionscodes LEFT (Text LEFT) und RGTH (Text RIGHT) auf den Funktionstasten F5 und F6 und auf der Drucktastenleiste. Die Verzweigungsliste ist 200 Zeichen breit. Mit der SCROLL-Anweisung wird die Verzweigungsliste nach ihrer Erstellung (sy-lsind = 1) um 48 Spalten nach rechts geblättert. Danach wird sy-lsind um eins verringert und die geblätterte Liste ersetzt die Grundliste.

Über die Auswahl von LEFT und RIGHT kann der Benutzer die angezeigte Liste nach links und rechts blättern. Die SCROLL-Anweisungen sind beim Ereignis AT USER-COMMAND für die entsprechenden Funktionscodes programmiert.

 

 

 

 

Ende des Inhaltsbereichs