Ein Ankreuzfeld kann zwei Zustände anzeigen: das Kennzeichen ist gesetzt (in dem Feld wird ein Haken dargestellt) oder es ist nicht gesetzt (das Feld ist leer).
Die beiden Zustände können überlagert sein durch die Aktivierung: Wenn ein Ankreuzfeld aktiviert ist (das Feld ist weiß dargestellt), kann der Nutzer den Zustand des Ankreuzfeldes ändern, indem er auf das Ankreuzfeld klickt. Wenn das Ankreuzfeld deaktiviert ist (das Feld ist grau dargestellt), bewirkt ein Klick keine Änderung.
Sie können in Zellen bzw. Items Ihrer ALV-Ausgabe Ankreuzfelder anzeigen.
In der klassischen ABAP-Liste und der hierarchisch-sequenziellen Liste können Sie über die Markierungsart festlegen, dass vor jeder Zeile ein Ankreuzfeld angezeigt wird, über das der Nutzer die Zeile markiert.
Sie können in allen ALV-Werkzeugen Ankreuzfelder anzeigen. In der klassischen ABAP-Liste und der hierarchisch-sequenziellen Liste jedoch können Sie die Ankreuzfelder nicht aktivieren, der Nutzer kann hier den Wert eines Ankreuzfeldes nicht ändern.
Sie können Ankreuzfelder aktivieren, d. h. zulassen, dass der Nutzer den Wert des Ankreuzfeldes ändert. Dann können Sie über Ihre Anwendung folgende Ereignisse behandeln:
· In der einfachen, zweidimensionalen Tabelle löst der Nutzer durch das Ändern des Ankreuzfeldes das Ereignis LINK_CLICK der Klasse CL_SALV_EVENTS_TABLE aus
· In der Baumstruktur löst er das Ereignis CHECKBOX_CHANGE der Klasse CL_SALV_EVENTS_TREE aus
Die Zellen bzw. Items, in denen Sie ein Ankreuzfeld darstellen möchten, müssen einen alphanumerischen Datentyp besitzen.
Je nachdem, ob Sie in listähnlichen ALV-Ausgaben Ankreuzfelder einsetzen oder in der Baumstruktur, gehen Sie unterschiedlich vor, um den Wert des Ankreuzfeldes zu setzen:
· In der Baumstruktur setzen Sie zwei Eigenschaften einzelner Items:
¡ Ankreuzfeld ist änderbar/nicht änderbar
¡ Kennzeichen ist gesetzt/nicht gesetzt
· In den anderen ALV-Werkzeugen steuern Sie die Anzeige des Ankreuzfeldes über die Kombination aus Zellentyp und Wert der Zelle:
¡ Der Zellentyp CHECKBOX zeigt immer ein deaktivierte Ankreuzfeld an, der Zellentyp CHECKBOX_HOTSPOT ein aktiviertes Ankreuzfeld
¡ Bei den Werten ’1’ oder ’X’ ist das Kennzeichen des Ankreuzfeldes gesetzt, bei den Werten ’0’ oder ’ ’ ist das Kennzeichen nicht gesetzt.
Die folgende Tabelle zeigt, welchen Wert eine Zelle bzw. ein Item enthalten muss, damit das Ankreuzfeld wie gewünscht dargestellt wird:
Werte eines Ankreuzfeldes
Ankreuz- |
Beschreibung |
Zellnentyp |
Wert der Zelle |
|
Ankreuzfeld aktiviert |
CHECKBOX_ |
’0’ oder ’ ’ |
|
Ankreuzfeld aktiviert |
CHECKBOX_ |
’1’ oder ’X’ |
|
Ankreuzfeld deaktiviert |
CHECKBOX |
’0’ oder ’ ’ |
|
Ankreuzfeld deaktiviert |
CHECKBOX |
’1’ oder ’X’ |
|
Ankreuzfeld ausgeblendet |
CHECKBOX CHECKBOX_ |
’-’ |
Zu Ankreuzfeldern können Sie folgende Einstellungen vornehmen:
· Ankreuzfeld anzeigen (Zellen-, Itemtyp zuweisen)
· Ankreuzfeld im Item aktivieren/ deaktivieren
· Kennzeichen des Ankreuzfeldes im Item setzen/ entfernen
· Um in einer listartigen ALV-Ausgabe ein deaktiviertes Ankreuzfeld anzuzeigen, verwenden Sie den Zellentyp CHECKBOX.
· Um in der einfachen, zweidimensionalen Tabelle (Fullscreen oder Container) ein aktiviertes Ankreuzfeld anzuzeigen, verwenden Sie den Zellentyp CHECKBOX_HOTSPOT.
· Um in einer Baumstruktur ein Ankreuzfeld anzuzeigen, verwenden Sie den Typ des Items CHECKBOX.
Damit der Nutzer den Wert eines Ankreuzfeldes in der Baumstruktur ändern kann, müssen Sie es aktivieren.
Darstellungsart ALV-Werkzeug |
Klass. ABAP-Liste |
Fullscreen |
Im Container |
Einfache, zweidimensionale Tabelle |
Nein |
Nein |
Nein |
Hierarchisch-sequenzielle Liste |
Nein |
|
|
Baumstruktur |
|
Ja |
Ja |
Methoden
Funktion |
Klasse |
Methode |
Ankreuzfeld aktivieren |
CL_SALV_ITEM |
SET_EDITABLE |
Prüfen, ob Ankreuzfeld aktiviert ist |
IS_EDITABLE |
In listähnlichen ALV-Ausgaben aktivieren bzw. deaktivieren Sie ein Ankreuzfeld mit Hilfe des Zellentyps:
· Um in einer listartigen ALV-Ausgabe ein deaktiviertes Ankreuzfeld anzuzeigen, verwenden Sie den Zellentyp CHECKBOX.
· Um in der einfachen, zweidimensionalen Tabelle (Fullscreen oder Container) ein aktiviertes Ankreuzfeld anzuzeigen, verwenden Sie den Zellentyp CHECKBOX_HOTSPOT.
Sie können über Ihre Anwendung den Wert eines Ankreuzfeldes in der Baumstruktur ändern.
Darstellungsart ALV-Werkzeug |
Klass. ABAP-Liste |
Fullscreen |
Im Container |
Einfache, zweidimensionale Tabelle |
Nein |
Nein |
Nein |
Hierarchisch-sequenzielle Liste |
Nein |
|
|
Baumstruktur |
|
Ja |
Ja |
Methoden
Funktion |
Klasse |
Methode |
Kennzeichen des Ankreuzfeldes setzen |
CL_SALV_ITEM |
SET_CHECKED |
Prüfen, ob das Kennzeichen des Ankreuzfeldes gesetzt ist |
IS_CHECKED |
In listähnlichen ALV-Ausgaben können Sie ausschließlich über den Wert einer Zelle steuern, ob das Kennzeichen eines Ankreuzfeldes gesetzt ist oder nicht. In aktivierten Ankreuzfeldern (Zellentyp CHECKBOX_HOTSPOT) können Sie dabei das Ereignis LINK_CLICK verwenden, um den Wert der Zelle anzupassen, wenn der Nutzer in das Ankeuzfeld klickt.