OAF中的MASTER-DETAIL關係

在日常開發中,我們經常會遇到頭行結構,並且要求打開界面,行是隱藏的,點擊頭上的顯示按鈕,纔要求頭對應的行信息全部顯示出來,這樣,我們就用到了Master-Detail結構。

 

下面,我們就一步一步來實現他吧。

學習目的:

    1、掌握AM,View Object,View Link的創建方法

    2、學會用嚮導創建表格

    3、可以製作簡單條件查詢(simpleSearchPanel)

    4、掌握創建Detail的方法,以及屬性的設置

一、新建AM:DetailAM

    選擇項目TESTOAProject,點擊右鍵New->Business Tier->ADF Business Components->Application Module

    設置   Package:test.oracle.apps.cux.details.server

             Name:DetailAM

 

點擊下一步,一直到完成。

二、新建VOPoHeaderVO

    選擇包test.oracle.apps.cux.details.server右鍵選擇 New View Object

    設置   Packagetest.oracle.apps.cux.details.server

             Name:PoHeaderVO

 

選擇下一步,到Step5,SQL Statement,輸入SQL

點下一步,一直到完成。

更改PoHeaderVO的屬性

       右鍵PoHeaderVO,選擇Edit PoHeaderVO->Attributes->Viewline

       更改Type爲Boolean

三、新建VOPoLineVO

    選擇包test.oracle.apps.cux.details.server右鍵選擇New View Object

    設置   Packagetest.oracle.apps.cux.details.server

             Name:PoLineVO

 

選擇下一步,到Step5 SQL Statement,輸入SQL。

下一步一直到完成。

 

四、新建View LinkPoHeaderToLineLink

    選擇包test.oracle.apps.cux.details.server右鍵選擇New View Link

    設置    Packagetest.oracle.apps.cux.details.server

              Name:PoHeaderToLineLink

點下一步。

選擇Cardinality:0..1 to *

選擇Select Source Attribute:PoHeaderVO.PoHeaderId

選擇Select Destination Attribute:PolineVO.poHeaderId

點Add

下一步到Step 4View Link Properties

保證Source和Destination的In View Object複選框被選中

點完成。

五、將VO添加到AM中

    選中DetailAM,右鍵Edit DetailAM(或雙擊)

    選對PoHeaderVO添加到AM下,然後把PoLineVO via PoHeaderToLineLink添加到AM下

 確定。

六、新建PageDetailPG

 

選擇test.oracle.apps.cux.details

點右鍵,New->Web Tier->OA Components->Page

 

輸入      Name:DetailPG

       Package:test.oracle.apps.cux.details.webui

 

點完成。

修改PageLayout

           IDPageLayoutRN

AM Definitiontest.oracle.apps.cux.details.server.DetailAM

 Window Title主從表測試

        Title主從表測試

新建一個RNQueryRN

選擇PageLayoutRN點右鍵New->Region

 

更改以下信息

                          ID:QueryRN

                Region Stylequery

           Construction ModeautoCustomizationCriteria

      Include Advanced Panel:True

用嚮導新建一個表格

右鍵點擊QueryRN,New->Region Using Wizard...

 

  Application Moduletest.oracle.apps.cux.details.server.DetailAM

Available View UsagePoHeaderVO1

下一步。

   Region IDResultTable

Region Styletable

 

下一步。

選中PoheaderId,PoNumber,VendorName,VendorSiteCode,Viewline到右邊。

下一步,修改表格信息。

完成。

可以看到,結構圖如下

修改ITEM的Search Allowed全部爲True。

更改ResultTable屬性

Detail View Attribute:Viewline

                Width:100%

添加查詢條件

選擇QueryRN,右鍵選New->simpleSearchPanel

系統會自動創建一個Header和一個Region

修改Header屬性

        ID:SimpleSearchHdr

      TEXT:訂單查詢

修改Region屬性

        ID:SearchComponentLayout

然後在Region下面新建一個messageTextInput

修改ITEM的屬性

        ID:PoHeaderID

        Search Allowed:True

        Maximum Length:40

                Prompt:訂單ID

                Length:20

添加查詢的對應關係

選擇QueryRN,右鍵New->simpleSearchMappings

更改屬性

                  ID:PoHeaderMap

         Search Item:PoHeaderId

        Results Item:PoHeaderId

完成後,結構圖如下:

 現在可以運行看一下效果了...

 

 

選擇ResultTable,右鍵New->details

系統會創建一個header域

 

用嚮導創建表格

選擇detailHdr,右鍵New->Region Using Wizard...

Application Moduletest.oracle.apps.cux.details.server.DetailAM

Available View UsagePolineVO1

下一步Region Properties

    Region IDLineTable

    Region Style:table

選中LineNum,ItemCode,ItemDescription到右邊

下一步,修改表格屬性

完成。

更改表格屬性,修改search_allowed全部爲True

更改LineTable

View Link Instance:PoHeaderToLineLink1

             Width:90%

選擇ResultTable,點右鍵New->MultipleSelection

修改multipleSelection1的屬性值

            ID:SelectFlag

 View Instance:PoHeaderVO1

View Attribute:Selectflag

 

到此爲止,我們就完成了Master-Details的全部設置,運行後,你就可以收穫成功的喜悅了。。

 

 注:

當運行時,系統報如下錯誤時:

oracle.apps.fnd.framework.OAException: Detail View Attribute Name is not set for the table even though a detail named child has been specified. Please specify a Boolean or String ("Y" or "N") view attribute for this table property.

請檢查:

主塊的Table屬性中,Detail View Attribute字段是否有類型爲Boolean的值

屬性

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章