确定ALV中已选中复选框的选定行。

2020-08-19 23:04发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个按预期显示的ALV。 我有"全选,取消全选,批准和拒绝"按钮。 在"全选"上,所有行均按预期选择。 当我单击"批准"时,我无法使用cl_gui_alv_grid的" GET_SELECTED_ROWS",因为这仅意味着当所有行均被选中时(即,不通过选中复选框)。

我在这里的解决方案是什么。 我应该循环执行itab n吗,无法使用任何方法?

当我使用cl_gui_alv_grid-> GET_SELECTED_ROWS

时,此方法有效并返回行数

在这种情况下不起作用,我应该在修改=" X"的地方使用itab,然后进入批准流程吗? 有什么建议吗?

(89.5 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个按预期显示的ALV。 我有"全选,取消全选,批准和拒绝"按钮。 在"全选"上,所有行均按预期选择。 当我单击"批准"时,我无法使用cl_gui_alv_grid的" GET_SELECTED_ROWS",因为这仅意味着当所有行均被选中时(即,不通过选中复选框)。

我在这里的解决方案是什么。 我应该循环执行itab n吗,无法使用任何方法?

当我使用cl_gui_alv_grid-> GET_SELECTED_ROWS

时,此方法有效并返回行数

在这种情况下不起作用,我应该在修改=" X"的地方使用itab,然后进入批准流程吗? 有什么建议吗?

(89.5 kB)
付费偷看设置
发送
4条回答
暮风yp
1楼 · 2020-08-19 23:27.采纳回答

如果要获取"选中的"行而不是"选中的"行,我认为没有其他方法,只能按带有复选框的列进行过滤。
您可以使用类似的方法来获取所有选中的行 (假设MODIFIED是设置复选框的名称列)

数据(lt_checked)= VALUE ty_alvt_able(用于alv_table WHERE中的alv_row(修改= abap_true)对应#(alv_row))。

您将获得一张表格,其中所有行均被选中。

此致

Adolfo

hongfeng1314
2楼-- · 2020-08-19 23:21

@ Adolfo Lopez

尽管我在读取的itab中有rowid,但全为零。 它已获取检查的行,但未确定行ID。 有没有办法我也可以找到选中行的索引?。

lukcy2020
3楼-- · 2020-08-19 23:18

HiDivya。

是否在datatab_y []中填充了rowid?

如果是这样,只需检查它们是否具有相同的名称,否则,可以使用MAPPING加法将值从rowid移至row_id(如果它们具有不同的名称)。

 
d56caomao
4楼-- · 2020-08-19 23:25

Divya,正如Sandra所说的,在代码中对应的括号中缺少了。

关于

Adolfo

一周热门 更多>