求助:Web Dynpro for ABAP的Table如何得到被选中的多行

2024-12-22 21:26:15
推荐回答(4个)
回答1:

一般情况下,在Web Dynpro for ABAP的Table中,不推荐使用行多选,
因为Web Dynpro for ABAP的Table于abap中alv的mark选择方式不同。
alv无论单选还是多选,只要判断mark就是选择的行。
但是在Web Dynpro for ABAP的Table中单选个多选的获取方式不一样,
你如果注意看的话,单选跟多选的颜色有点不一样。
所以无论是业务上还是程序上,会导致无法正确判断用是是否是 多选+单选 选择了数据,
还是只选择 多选的。
建议该用checkbox。

最后解答你的问题。。
多选的时候Web Dynpro for ABAP的Table是以elements形式存到一个内表中的。。
上面的兄弟说的对。。
IF_WD_CONTEXT_NODE 中有method:GET_SELECTED_ELEMENTS
但是不包括单选的行。。
如果想取数据,就得循环了。。
loop at into
ELEMENT->get_static_attributes(
... ...
).
endloop.

回答2:

两种常用方法,只提供思路,具体代码就不多说了。
1:此TABLE的第一个项目绝大多数情况下是‘选择行’,LOOP当前TABLE,HEAD中此项目为'X'的行,就是选中的行。
2:调用METHOD,获取当前选择行数。

回答3:

一种方法:node节点selection设置为0~n,选择的时候按ctrl点击,可以选中多行,另一种方法加checkbox,这个更简单。

回答4:

接口:IF_WD_CONTEXT_NODE 中有method:GET_SELECTED_ELEMENTS

1.获取相应的context node
2.调用上面的方法,接收的参数就是选中的context element