在日常開發中,我們經常會遇到頭行結構,並且要求打開界面,行是隱藏的,點擊頭上的“顯示”按鈕,纔要求頭對應的行信息全部顯示出來,這樣,我們就用到了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
點擊下一步,一直到完成。
二、新建VO:PoHeaderVO
選擇包test.oracle.apps.cux.details.server,右鍵選擇 New View Object
設置 Package:test.oracle.apps.cux.details.server
Name:PoHeaderVO
選擇下一步,到Step5,SQL Statement,輸入SQL
點下一步,一直到完成。
更改PoHeaderVO的屬性
右鍵PoHeaderVO,選擇Edit PoHeaderVO->Attributes->Viewline
更改Type爲Boolean
三、新建VO:PoLineVO
選擇包test.oracle.apps.cux.details.server,右鍵選擇New View Object
設置 Package:test.oracle.apps.cux.details.server
Name:PoLineVO
選擇下一步,到Step5 SQL Statement,輸入SQL。
下一步,一直到完成。
四、新建View Link:PoHeaderToLineLink
選擇包test.oracle.apps.cux.details.server,右鍵選擇New View Link
設置 Package:test.oracle.apps.cux.details.server
Name:PoHeaderToLineLink
點下一步。
選擇Cardinality:0..1 to *
選擇Select Source Attribute:PoHeaderVO.PoHeaderId
選擇Select Destination Attribute:PolineVO.poHeaderId
點Add
下一步到Step 4:View Link Properties
保證Source和Destination的In View Object複選框被選中
點完成。
五、將VO添加到AM中
選中DetailAM,右鍵Edit DetailAM(或雙擊)
選對PoHeaderVO添加到AM下,然後把PoLineVO via PoHeaderToLineLink添加到AM下
確定。
六、新建Page:DetailPG
選擇test.oracle.apps.cux.details
點右鍵,New->Web Tier->OA Components->Page
輸入 Name:DetailPG
Package:test.oracle.apps.cux.details.webui
點完成。
修改PageLayout
ID:PageLayoutRN
AM Definition:test.oracle.apps.cux.details.server.DetailAM
Window Title:主從表測試
Title:主從表測試
新建一個RN:QueryRN
選擇PageLayoutRN,點右鍵,New->Region
更改以下信息
ID:QueryRN
Region Style:query
Construction Mode:autoCustomizationCriteria
Include Advanced Panel:True
用嚮導新建一個表格
右鍵點擊QueryRN,New->Region Using Wizard...
Application Module:test.oracle.apps.cux.details.server.DetailAM
Available View Usage:PoHeaderVO1
下一步。
Region ID:ResultTable
Region Style:table
下一步。
選中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 Module:test.oracle.apps.cux.details.server.DetailAM
Available View Usage:PolineVO1
下一步:Region Properties
Region ID:LineTable
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的值
屬性