当输入字段不可见时,我想使输入字段的标签不可见。我不能将它绑定到相同的上下文,因为它们是动态构建的。
有没有办法获取所有视图元素,以便我可以循环它们并使标签动态不可见?
每个视图控制器都包含方法 WDDOMODIFYVIEW 和一个初始为空的实现。在此方法中,您可以访问整个 UI 元素层次结构,并且应该能够检索对标签和输入字段的引用,并在输入字段被隐藏的情况下隐藏标签。
这是一些示例动作处理程序代码,它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.
首先,编写第二个程序,该程序将负责使用带有 EXPORTING LIST TO MEMORY 的 SUBMIT ABAP 指令调用您的程序。
当您运行此调用程序时,它将使用 SUBIT 调用您的程序,但系统不会在屏幕上生成输出,而是将输出发送到系统内存。
稍后,在 webdynpro 或任何其他程序中,您可以调用 ABAP 函数 LIST_FROM_MEMORY 将程序的早期输出检索到内部表。
干杯!