2012-12-17 66 views
1

我想在輸入字段不可見時使輸入字段的標籤不可見。 我不能將它綁定到相同的上下文,因爲它們是動態構建的。如何獲取視圖的所有UI元素? (Web Dynpro ABAP)

有沒有辦法讓所有的視圖元素,所以我可以循環它們,並使標籤不可見動態?

+0

您能否詳細解釋爲什麼您無法綁定到上下文元素?我無法想象任何具體的例子 - 即使在手動構建上下文或UI時 - 也無法將標籤和輸入字段屬性綁定到同一個上下文元素。 – vwegert

+0

這是因爲你在建一張桌子嗎?正如@vwegert所說,我們需要更多的上下文。 – tomdemuyt

+0

上下文是基於z表動態構建的,所以我只想循環查看視圖的ui元素。可能嗎? – vikdb

回答

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. 
1

每個視圖控制器都包含方法WDDOMODIFYVIEW,其中初始爲空實現。在這個方法裏面,你可以訪問整個UI元素層次,並且應該能夠檢索對標籤和輸入字段的引用,並且在輸入字段被隱藏的情況下隱藏標籤。

0

首先,編寫第二個程序,負責使用SUBMIT ABAP指令調用程序,並將EXPORTING LIST TO MEMORY添加到內存中。

當你運行這個調用者程序時,它將使用SUBIT調用你的程序,但不是在屏幕上生成輸出,系統會將輸出發送到系統內存。

後來,在webdynpro或任何其他程序中,您可以調用ABAP函數LIST_FROM_MEMORY來檢索程序的早期輸出到內部表。

乾杯!

+0

請檢查您的拼寫 – Samoth