如何禁用 ALV 中的行选择器?

How to disable row selector in ALV?

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

<fs_field_cat_line>-edit = 'X'.

当我设置更新的字段目录时,优化其宽度并刷新 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 多行,或者当单击顶部时,select 所有行。

如何禁用此列。刷新后不想出现这个栏目。我试过查看调试器发生了什么,但我似乎找不到它。

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

* 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( ).

根据the documentation,你必须

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