我如何获得视图的所有ui元素? (Web Dynpro ABAP)

时间:2012-12-17 13:17:24

标签: abap webdynpro

我想在输入字段不可见时使输入字段的标签不可见。 我无法将它绑定到相同的上下文,因为它们是动态构建的。

有没有办法获取所有视图元素,以便我可以循环它们并使标签动态不可见?

3 个答案:

答案 0 :(得分:1)

每个视图控制器都包含方法WDDOMODIFYVIEW,其初始为空实现。在此方法中,您可以访问整个UI元素层次结构,并且应该能够检索对标签和输入字段的引用,并在输入字段被隐藏的情况下隐藏标签。

答案 1 :(得分:0)

这是一些示例动作处理程序代码,它在容器中找到标签MYLABEL并隐藏它。它并不完全涵盖您的用例,但我认为它会让您入门。

data view type ref to cl_wdr_view.
view ?= wd_this->wd_get_api( ).
data container type ref to cl_wd_uielement_container.
container ?= view->root_element.
data children type cl_wd_uielement=>tt_uielement.
children = container->get_children( ).
data element type ref to cl_wd_uielement.
loop at children into element.
  data id type string.
  id = element->get_id( ).
  if id = `MYLABEL`.
    element->set_visible( `01` ).
  endif.
endloop.

答案 2 :(得分:0)

首先,编写第二个程序,负责使用SUBMIT ABAP指令调用程序,并添加EXPORTING LIST TO MEMORY。

当您运行此调用程序时,它将使用SUBIT调用您的程序,但系统不会在屏幕上生成输出,而是将输出发送到系统内存。

稍后,在webdynpro或任何其他程序中,您可以调用ABAP函数LIST_FROM_MEMORY来检索程序的早期输出到内部表。

干杯!