2017-08-03 165 views
0

如何基於樹選擇過濾Oracle ADF表內容?基於樹選擇的ADF過濾表

綁定:

Bindings

所以表總是呈現爲如果第一個項目將在樹中選擇,但是當我點擊一些其他VariablePoint,該表沒有改變:

Table which does not change when selection changes

UPDATE

基礎上的答案,我能夠精讀圖下,它解決了這個問題:

Configuring Target Data Source

我做了一個迭代器對每個樹級別的規則,並用它們作爲目標數據源每個樹/樹級別規則。

回答

0

ADF樹可能看起來有些誤導,但它們實際上並不反映您在應用程序模塊中創建的數據控件(迭代器)。樹木在視圖鏈接訪問器上工作。這就是爲什麼當你選擇一個樹節點時,迭代器不會得到任何改變。

如果您想在您的模型項目中看到您的訪問器,請在層次結構中使用的任意兩個相鄰視圖對象之間打開視圖鏈接。在關係 - 訪問器 - 目標中,您將看到訪問者名稱參數。它的值將是更低樹級的名稱。同樣的名字,你會在你的pageDef樹在適當的水平樹形層級規則部分結合看。

所以,即使你刪除你的應用程序模塊的數據控制所有迭代器,但OrgView1Iterator,你的樹仍然功能(目前還不談到右表)。


現在讓你的案例工作。

  1. 在您的應用程序模塊的數據控制,你只需要層次結構:
    • OrgView1
    • VariablePointViewOrgZoneVariable
      • VariablePointViewOrgZoneVariableVariablePoint

OrgView1和VariablePointViewOrgZoneVariable位於根級別。 VariablePointViewOrgZoneVariableVariablePoint是VariablePointViewOrgZoneVariable的孩子。 OrgView1的所有當前子女都應從數據控制中刪除。

  1. 在頁面綁定的Executables部分中,單擊綠色加號並添加VariablePointViewOrgZoneVariable迭代器(比如說,VariablePointViewOrgZoneVariable1Iterator)。

在你的Executables中應該有3個迭代器:OrgView1Iterator,VariableDataView1Iterator和VariablePointViewOrgZoneVariable1Iterator。

  1. 過濾的關鍵部分是目標數據源屬性。你可以在你的樹形結構中找到它。 在綁定部分的頁面綁定中,雙擊OrgView1。在樹級規則中選擇VariablePointViewOrgZoneVariable樹並在底部公開目標數據源。 單擊EL Picker,選擇VariablePointViewOrgZoneVariable1Iterator並確定。

結果應該是$ {bindings.VariablePointViewOrgZoneVariable1Iterator}。

  1. 在頁面上設置表的partialTrigger屬性指向樹。

重新啓動您的頁面過濾應該工作。


我製作了一個小例子來展示您的案例。 按照說明操作,您可以在計算機上運行它,或者直接閱讀自述文件。它還將選擇應用於最後一個樹層,您可能不需要。

​​

+0

您好,非常感謝您的詳細解釋。所以我明白了,問題出在Target Data Source和Iterator配置上。我將更新問題描述以包含更新後的解決方案。 –

相關問題