Listausgabe

Dies ist Teil 8 von 11 der Serie Interaktive Liste

Die Listausgabe ist der wichtigste Bestandteil einer Liste. Sieht die Liste unübersichtlich aus oder ungeordnet oder zu bunt, dann kann der Anwender nur schwer damit arbeiten.

Auch die Listausgabe sollten Sie immer in einer eigenen Unterroutine verstauen. Dies ist für die Lesbarkeit und den späteren Refresh ebenfalls von Vorteil.

In der Liste werden die Fluggesellschaften aufgelistet werden. Durch Auswahl eines Satzes sollen die Flugpläne angezeigt werden und dort bei Auswahl eines Planes die Flüge.

In der Liste soll ersichtlich sein, ob zu einer Fluggesellschaft Flugpläne vorhanden sind oder nicht. Vorhandene Pläne sollen durch eine grüne LED kenntlich gemacht werden, sind keine vorhanden, so soll eine rote LED leuchten. Ausserdem soll bei der grünen LED die Funkton “Hotspot” aktiviert werden, also die Möglichkeit mit einem einzelnen Klick in die Sicht der Flugpläne zu verzweigen.

Die Funktion “Hotspot” ist sehr sinnvoll, da Sie bei komplexen Listen dem Anwender eine gute Hilfestellung gibt. Die zeigende Hand, in die sich der Cursor über einem Hotspot verwandelt signalisiert: “Hier kannst du klicken!”

*&———————————————————————*
*&      Form  listausgabe
*&———————————————————————*
FORM listausgabe.

*** Verzweigungslistenzähler muss auf Null gesetzt werden, damit nicht
*** beim Aktualisieren eine neue Verzweigungsliste erzeugt wird.
  sy-lsind = 0.

*** Liststatus setzen (Siehe Kommentar “PF-Status”
  SET PF-STATUS ‘LISTE’.

*** Ausgabe der Tabelle “Fluggesellschaften”
  LOOP AT t_scarr.
    READ TABLE t_spfli WITH KEY carrid = t_scarr-carrid BINARY SEARCH.
    IF sy-subrc = 0.
      l_status    = k_icon_green.
      l_quickinfo = k_info_green.
      l_hotspot   = on.
    ELSE.
      l_status    = k_icon_red.
      l_quickinfo = k_info_green.
      l_hotspot   = off.
    ENDIF.

    WRITE: / l_status AS ICON QUICKINFO l_quickinfo HOTSPOT = l_hotspot,
             t_scarr-carrid,
             t_scarr-carrname,
             t_scarr-url(40).
    HIDE t_scarr.

  ENDLOOP.

  CLEAR t_scarr.

*** Liste bei Neuaufbau wieder positionieren
  SCROLL LIST TO FIRST PAGE LINE l_actual_line INDEX 1.

ENDFORM.                    ” listausgabe

PF-Status

Normalerweise benötigen Sie für einen normalen Report keinen eigenen Status. Die Standardfunktionen [Zurück|Home|Abbrechen|Drucken|etc] sind immer verfügbar.

Wenn Sie jedoch eigene Funktionen einbauen möchten, dann müssen Sie einen eigenen List-Status definieren. Hier wird festgelegt, welche Funktionscodes zugelassen sind und welche davon als Druckknöpfe angezeigt werden.

Gehen Sie bitte wie folgt vor, um den Status “LISTE” anzulegen:

Machen Sie einen Doppelklick auf “LISTE” und bestätigen Sie, dass Sie den Status anlegen möchten.

Gehen Sie über das Menü Zusätze – Vorlage abgleichen und wählen “Liststatus”. Dies bewirkt, dass alle Standardfunktionen eingebunden werden.


Vorlage abgleichen

Fügen Sie dann noch die Funktion REFR ein. Geben Sie diesen Code einfach in dem Bereich “Funktionstasten” als Wert für F8 ein. Es erscheint dann ein Popup, in dem Sie “Statischer Text” auswählen. Im nächsten Popup definieren Sie die Eigenschaften:


Der Status “REFR” zum Aktualiseren der Liste

Gleiches machen Sie bitte auch fuer die Taste F5: Funktionscode LEGENDE.

HIDE-Bereich

Die wichtigste Funktion bei interaktiven Listen ist wohl die Funktion “HIDE”. Mit diesem Befehl merkt sich SAP die Werte zu den in der aktuell ausgegebenen Zeile.

Wenn Sie also schreiben:

WRITE: / variable1, variable2.
HIDE: variable1, variable2.

dann werden die Werte bei einem Doppelklick auf die Zeile die beiden Variablen wieder mit dem Wert gefüllt, den Sie zum Zeitpunkt der Ausgabe hatten.

Sinnvoll ist dies natürlich bei der Ausgabe von Tabelleninhalten.

Damit ein Anwender keine Informationen bekommt, wenn er in eine Kopfzeile klickt, müssen die Variablen, auf die beim Doppelklick zugegriffen werden soll, nach dem LOOP wieder gecleart werden.

Enno Wulff
Letzte Artikel von Enno Wulff (Alle anzeigen)
Series Navigation<< Das fertige ProgrammUser-Command >>