在使字段可修改后,删除为ALV选择所有具有ABAP的列

时间:2017-10-04 13:52:21

标签: abap alv

我有一份显示ALV的报告。双击某列后,ALV中的某些字段将变为可自定义。这是通过设置'编辑'该字段的fieldcatalog-row的属性为' X'。

<fs_field_cat_line>-edit = 'X'.

当我设置更新的fieldcatalog时,优化其宽度并刷新ALV

* setting fieldcatalog
lo_alv_grid->set_frontend_fieldcatalog( it_fieldcatalog = lt_field_catalog ).

* Optimizing column width
ls_layout-cwidth_opt = 'X'.
lo_alv_grid->set_frontend_layout( is_layout = ls_layout ).

* refresh ALV
lo_alv_grid->refresh_table_display( ).

ALV在开始时获取一个新列,可用于选择多行,或者在顶部单击时,选择所有行。

'select all'-column

如何禁用此列。刷新后,我不希望出现此列。我试着看一下调试器会发生什么,但我似乎无法找到它。

编辑:在实施下面接受的解决方案后,更改如下所示:

* setting fieldcatalog
lo_alv_grid->set_frontend_fieldcatalog( it_fieldcatalog = lt_field_catalog ).

* Optimizing column width
ls_layout-cwidth_opt = 'X'.

* Disabling selection column
ls_layout-sel_mode = 'A'.
ls_layout-no_rowmark = 'X'.

* setting layout
lo_alv_grid->set_frontend_layout( is_layout = ls_layout ).

* refresh ALV
lo_alv_grid->refresh_table_display( ).

1 个答案:

答案 0 :(得分:3)

根据the documentation,您必须

  • 将网格的NO_ROWMARK标记设置为X
  • 将网格的SEL_MODE设置更改为AD。默认' '被解释为B,AFAIR会忽略NO_ROWMARK标记。