1

問題は、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' ).

チェックボックス列のすべてのセルが編集可能であり、チェックボックス列の編集不可能なセルを取得できません。

4

2 に答える 2