
Sie können beeinflussen, ob und wie viele Zeilen oder Spalten der Benutzer gleichzeitig markieren darf.
Markieren von Spalten ermöglichen
Über den Markierungsstatus legen Sie fest, ob und wie viele Spalten der Benutzer gleichzeitig markieren darf.
Markieren von Zeilen ermöglichen
Über die Markierungsart legen Sie fest, ob und wie viele Zeilen der Benutzer gleichzeitig markieren darf sowie, ob dabei eine Lead-Selection existiert oder nicht (siehe Context-Knoten: Eigenschaften, unter Die Lead-Selection).
Der Nutzer kann auch in einer schreibgeschützten ALV-Ausgabe die Markierung von Zeilen ändern, sofern die Markierungsart dies zulässt. Wenn Sie jedoch die ALV-Ausgabe deaktivieren, kann der Nutzer -unabhängig von der Markierungsart -keine Zeilen markieren
Weitere Informationen: Schreibschutz der ALV-Ausgabe steuern
Darüber hinaus können Sie für einzelne oder alle Zeilen ein Markieren durch den Nutzer verhindern.
Markierungsstatus vorgeben
Für jede Spalte können Sie den Markierungsstatus einzeln festlegen. Folgende Markierungsstatus können Sie einsetzen:
Nicht markiert
Eine eventuell vorhandene Markierung wird entfernt.
Markiert
Die Spalte wird markiert.
Nicht markierbar
Der Benutzer kann die Spalte nicht markieren
Um Spalten zu fixieren, verwenden Sie Methoden der Klasse CL_SALV_WD_COLUMN.
Methoden zum Markierungsstatus
|
Funktion |
Methode |
|
Markierungsstatus festlegen |
SET_SELECTION_STATE |
|
Markierungsstatus holen |
GET_SELECTION_STATE |
Markierungsart vorgeben
Folgende Markierungsarten können Sie einsetzen:
Automatisch
Die Einstellungen aus dem Context-Knoten werden übernommen.
Keine Markierung möglich (NONE)
Es werden keine Drucktasten am Zeilenanfang angezeigt, über die der Nutzer eine Zeile markieren könnte.
Einzelne Zeile (SINGLE)
Es werden Drucktasten am Zeilenanfang angezeigt. Der Benutzer kann nur jeweils eine Zeile markieren. Diese Zeile wird als Lead-Selection dargestellt. Durch Markieren einer anderen Zeile ändert der Nutzer auch die Lead-Selection.
Einzelne Zeile ohne Lead-Selection (SINGLE_NO_LEAD)
Es werden Drucktasten am Zeilenanfang angezeigt. Der Benutzer kann nur jeweils eine Zeile markieren. Durch Markieren einer anderen Zeile ändert der Nutzer auch die Markierung. Die ALV-Ausgabe besitzt keine Lead-Selection.
Mehrere Zeilen (MULTI)
Es werden Drucktasten am Zeilenanfang angezeigt. Der Benutzer kann unter Zuhilfenahme der STRG-Taste mehrere Zeilen markieren. Mit der ersten Zeile, die er markiert, kennzeichnet er die Lead-Selection.
Mehrere Zeilen ohne Lead-Selection (MULTI_NO_LEAD)
Es werden Drucktasten am Zeilenanfang angezeigt. Der Benutzer kann unter Zuhilfenahme der STRG-Taste mehrere Zeilen markieren. Die ALV-Ausgabe besitzt keine Lead-Selection.
Mit der Eigenschaft SELECTION Ihres Context-Knotens geben Sie an, wie viele Datensätze markiert werden können.
Beispiel: Wenn Sie für SELECTION den Wert 1..1 wählen, muss immer genau ein Eintrag markiert sein. Ist der Wert 0..n ist es möglich keinen Eintrag zu markieren oder beliebig viele.
Mit der Markierungsart dürfen Sie nie mehr Markierungen zulassen, als Sie im Context-Knoten festgelegt haben. Sonst erhalten Sie einen Laufzeitfehler mit dem Abbruch der Anwendung.
Beispiel: Wenn Sie im Context-Knoten die SELECTION 1.0,1 festgelegt haben, dürfen Sie die Markierungsarten MULTI und MULTI_NO_LEAD nicht verwenden.
Um die Markierungsart festzulegen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_TABLE_SETTINGS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).
Methoden zur Markierungsart
|
Funktion |
Methode |
|
Markierungsart festlegen |
SET_SELECTION_MODE |
|
Markierungsart holen |
GET_SELECTION_MODE |
Ereignisbehandlung.
Es gibt zwei verschiedene Ereignisse, die durch eine Markierung des Benutzers ausgelöst werden können:
ON_LEAD_SELECT
Die Anwendung reagiert auf eine Änderung der Lead-Selection durch den Benutzer.
Weitere Informationen finden Sie im System in der Dokumentation zum Interfacecontroller WD_SALV_TABLE.
ON_SELECT
Die Anwendung reagiert auf eine Lead-Selection oder auf eine Änderung der Lead-Selection durch den Benutzer.
Das System kann nur eins der oben genannten Ereignisse auslösen. Mit der Methode IF_SALV_WD_TABLE_SETTINGS~SET_ON_SELECT_ENABLED aktivieren Sie den Ereignisbehandler des Ereignisses ON_SELECT und deaktivieren den Ereignisbehandler des Ereignisses ON_LEAD_SELECT.
Beachten Sie, dass für jede Markierung des Benutzers ein Roundtrip ausgeführt wird, wenn das Ereignis ON_SELECT aktiviert ist. Dieses Ereignis sollte nur aktiviert sein, wenn es erforderlich ist, Benachrichtigungen zu Selections zu erhalten und nicht nur zu Lead-Selections.
Markieren verhindern
Sie können verhindern, dass der Nutzer Zeilen der ALV-Ausgabe markiert.
Anders als bei der Markierungsart NONE bleiben die Drucktasten der Zeilen sichtbar, werden jedoch deaktiviert. So können Sie z. B. vorübergehend verhindern, dass der Nutzer Zeilen markiert.
Sie können entscheiden, ob Sie das Markieren für sämtliche Zeilen der ALV-Ausgabe verhindern, oder nur für einzelne Zeilen.
Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_TABLE_SETTINGS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).
|
Funktion |
Methode |
|---|---|
|
Markieren für alle Zeilen der ALV-Ausgabe verhindern |
SET_ROW_SELECTABLE |
|
Prüfen, ob das Markieren für alle Zeilen verhindert ist |
GET_ROW_SELECTABLE |
|
Markieren für bestimmte Zeilen der ALV-Ausgabe verhindern |
SET_ROW_SELECTABLE_FIELDNAME |
|
Namen des Feldes holen, das die Markierbarkeit einzelner Zeilen steuert |
GET_ROW_SELECTABLE_FIELDNAME |
Weitere Informationen, wie Sie über einzelne Felder das Verhalten von Zeilen oder Zellen steuern finden Sie unter folgendem Link: Eigenschaften zu Spalten und Zellen zuweisen.