我想在輸入字段不可見時使輸入字段的標籤不可見。 我不能將它綁定到相同的上下文,因爲它們是動態構建的。如何獲取視圖的所有UI元素? (Web Dynpro ABAP)
有沒有辦法讓所有的視圖元素,所以我可以循環它們,並使標籤不可見動態?
我想在輸入字段不可見時使輸入字段的標籤不可見。 我不能將它綁定到相同的上下文,因爲它們是動態構建的。如何獲取視圖的所有UI元素? (Web Dynpro ABAP)
有沒有辦法讓所有的視圖元素,所以我可以循環它們,並使標籤不可見動態?
下面是一些示例操作處理程序代碼,它在容器中查找標籤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.
每個視圖控制器都包含方法WDDOMODIFYVIEW,其中初始爲空實現。在這個方法裏面,你可以訪問整個UI元素層次,並且應該能夠檢索對標籤和輸入字段的引用,並且在輸入字段被隱藏的情況下隱藏標籤。
首先,編寫第二個程序,負責使用SUBMIT ABAP指令調用程序,並將EXPORTING LIST TO MEMORY添加到內存中。
當你運行這個調用者程序時,它將使用SUBIT調用你的程序,但不是在屏幕上生成輸出,系統會將輸出發送到系統內存。
後來,在webdynpro或任何其他程序中,您可以調用ABAP函數LIST_FROM_MEMORY來檢索程序的早期輸出到內部表。
乾杯!
請檢查您的拼寫 – Samoth
您能否詳細解釋爲什麼您無法綁定到上下文元素?我無法想象任何具體的例子 - 即使在手動構建上下文或UI時 - 也無法將標籤和輸入字段屬性綁定到同一個上下文元素。 – vwegert
這是因爲你在建一張桌子嗎?正如@vwegert所說,我們需要更多的上下文。 – tomdemuyt
上下文是基於z表動態構建的,所以我只想循環查看視圖的ui元素。可能嗎? – vikdb