
Die Zellen der ALV-Ausgabe werden standardmäßig mit Zelleditoren - wie zum Beispiel die TextView- angezeigt, die nicht eingabebereit sind. Wenn Sie den ALV editierbar machen wollen, haben Sie die Möglichkeit, diese Zelleneditoren durch folgende interaktive Oberflächenelemente zu ersetzen:
InputField
Checkbox
ToggleButton
TriStateCheckBox
DropDownByKey
Klassen für interaktive Oberflächenelemente
|
Oberflächenelement |
Klasse |
|
InputField |
CL_SALV_WD_UIE_INPUT_FIELD |
|
Checkbox |
CL_SALV_WD_UIE_CHECKBOX |
|
ToggleButton |
CL_SALV_WD_UIE_TOGGLE_BUTTON |
|
TriStateCheckBox |
CL_SALV_WD_UIE_CHECKBOX_TRI |
|
DropDownByKey |
CL_SALV_WD_UIE_DROPDOWN_BY_KEY |
Diese Klassen finden Sie im System im Paket SALV_WD_CONFIG.
Informationen dazu, wie Sie in einer Zelle eines der Oberflächenelemente anzeigen, finden Sie in Abschnitt Eigenschaften zu Spalten und Zellen zuweisen.
Roundtrip beim Markieren einer Checkbox
Jedesmal wenn der Benutzer eine Checkbox markiert oder eine Markierung aufhebt, wird ein Roundtrip ausgelöst. Wenn dies in Ihrer Anwendung nicht nötig ist, können Sie dies verhindern und damit zur Verbesserung der Performance beitragen. Deaktivieren Sie dazu das Ereignis ON_TOGGLE mit der Methode SET_ON_TOGGLE_ENABLED.
Zelleditor ändern
Um zum Beispiel für eine Spalte ein InputField als Zelleditor zu setzen, gehen Sie folgendermaßen vor:
Instanziieren Sie das ALV Configuration Model, wie in ALV Configuration Model holen beschrieben.
Fügen Sie folgendes Coding ein, wobei lv_value die Variable für das Configuration Model ist:
DATA: lr_column_settings TYPE REF TO if_salv_wd_column_settings,
lr_input_field TYPE REF TO cl_salv_wd_uie_input_field.
lr_column_settings ?= lv_value.
lr_column = lr_column_settings->get_column( 'MY_COLUMN' ).
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'MY_COLUMN'.
lr_column->set_cell_editor( lr_input_field ).