
As standard, the cells of the ALV display are displayed with cell editors, for example the TextView, which are not ready for input. If you want to make the ALV editable then you have the option to replace these cell editors with the following interactive interface elements:
InputField
Checkbox
ToggleButton
TriStateCheckBox
DropDownByKey
Classes for Interactive UI Elements
|
UI Element |
Class |
|
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 |
You can find these classes in the system in package SALV_WD_CONFIG.
For information about displaying one of the UI elements in a cell, see Assigning Properties to Columns and Cells.
Roundtrip when selecting a checkbox
A roundtrip is triggered every time the user selects a checkbox or undoes a selection. If this is not necessary in your application, you can stop it and contribute to improving to the performance. To do this, deactivate the event ON_TOGGLE with the method SET_ON_TOGGLE_ENABLED.
Changing the Cell Editor
Proceed as follows to set an InputField as the cell editor for a column:
Instantiate the ALV Configuration Model, as described in Getting ALV Configuration Model.
Add the following code wherelv_value is the variable for the configuration model:
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 ).