Eingabe in Listen

In den Zeiten von TableControls und ALV-Grids sind Listen vielleicht nicht mehr ganz aktuell, aber manche kleinen Programme sind schnell als Liste programmiert. Auch Eingaben in Listen sind möglich, wie das folgende Programm zeigt.


Alle Einträge sind markiert

In einer Liste mit Einträgen zum Ankreuzen möchte man vielleicht dem Anwender die Möglichkeit geben, alle Einträge zu markieren, bzw. alle Markierungen wieder zu entfernen.

Das Auslesen der markierten Punkte muss dann noch mittels READ LINE erfolgen: Eingabe in Listen

 Das Programm

REPORT zzenno14 .

DATA:
  linex TYPE syindex,
  sel   TYPE c,
  bezei TYPE sptxt.

START-OF-SELECTION.
*** GUI-Status setzen
*** SALL = Alle Markierungen setzen
*** DALL = Alle Markierungen löschen

  SET PF-STATUS ‘LIST’.
*** Daten lesen
  SELECT sptxt FROM t002t INTO bezei WHERE spras = sy-langu.
*** …und ausgeben
    WRITE: / sel AS CHECKBOX INPUT ON,
             bezei.
  ENDSELECT.


AT USER-COMMAND.
  CASE sy-ucomm.
*** Abfrage
    WHEN ‘SALL’ OR ‘DALL’.
      DO.
        linex = sy-index.
*** Zeile lesen
        READ LINE linex FIELD VALUE sel bezei.
        IF sy-subrc > 0. EXIT. ENDIF.
        CASE sy-ucomm.
          WHEN ‘SALL’.
*** Marker setzen
            MODIFY LINE linex FIELD VALUE sel FROM ‘X’.
          WHEN ‘DALL’.
*** Marker löschen
            MODIFY LINE linex FIELD VALUE sel FROM ‘ ‘.
        ENDCASE.
      ENDDO.
  ENDCASE.

 

Enno Wulff

Leave a Comment