问题是我希望我的 WD ALV 中的复选框列的某些单元格是可编辑的,某些单元格将是不可编辑的,具体取决于某些属性。
我采取下一步措施来达到所需的结果:
1)在对应的节点上添加属性READONLY类型WDY-BOOLEAN(属性CHECK类型WDY-BOOLEAN已经添加)。
2)然后在我的代码中检查表行中的一些条件并分配属性READONLY值abap_true或abap_false。
3)然后我将我的节点与表绑定。表格填写正确,我在调试器中检查。
4)配置我的alv:
DATA: lo_table_settings TYPE REF TO if_salv_wd_table_settings,
lo_column_settings TYPE REF TO if_salv_wd_column_settings,
lo_column TYPE REF TO cl_salv_wd_column.
lo_column_settings ?= lv_value.
lo_table_settings ?= lv_value.
lo_column = lv_value->if_salv_wd_column_settings~get_column( 'CHECK' ).
DATA lr_checkbox TYPE REF TO cl_salv_wd_uie_checkbox.
" create checkbox
CREATE OBJECT lr_checkbox
EXPORTING checked_fieldname = 'CHECK'.
" make our table is editable
lo_table_settings->set_read_only( abap_false ).
lo_column = lo_column_settings->get_column( 'CHECK' ).
" Creating UI Elmenent 'INPUT FIELD' to make the column editable
DATA: lr_input_field TYPE REF TO cl_salv_wd_uie_input_field.
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'CHECK'.
lr_checkbox->set_read_only_fieldname( value = 'READONLY' ).
lv_value->if_salv_wd_column_settings~delete_column( ID = 'READONLY' ).
但它不起作用,复选框列的所有单元格都是可编辑的,我没有得到复选框列的不可编辑单元格。