在日常开发中,我们经常会遇到头行结构,并且要求打开界面,行是隐藏的,点击头上的“显示”按钮,才要求头对应的行信息全部显示出来,这样,我们就用到了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

[c-sharp] view plaincopy
  1. SELECT 'N' selectflag
  2. ,poh.po_header_id
  3. ,poh.segment1 po_number
  4. ,poh.vendor_id
  5. ,pv.vendor_name
  6. ,poh.vendor_site_id
  7. ,pvs.vendor_site_code
  8. ,0 viewline
  9. FROM po_headers_all      poh
  10. ,po_vendors          pv
  11. ,po_vendor_sites_all pvs
  12. WHERE poh.vendor_id = pv.vendor_id
  13. AND poh.vendor_site_id = pvs.vendor_site_id
  14. AND nvl(pv.enabled_flag,'Y') = 'Y'

点下一步,一直到完成。

更改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。

[c-sharp] view plaincopy
  1. SELECT pol.po_header_id
  2. ,pol.po_line_id
  3. ,pol.line_num
  4. ,pol.item_id
  5. ,msib.segment1 item_code
  6. ,pol.item_description
  7. FROM po_lines_all       pol
  8. ,mtl_system_items_b msib
  9. WHERE pol.item_id = msib.inventory_item_id
  10. AND pol.org_id = msib.organization_id
  11. AND nvl(msib.enabled_flag,'Y') = 'Y'

下一步,一直到完成。

四、新建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的值

属性

最新文章

  1. Understanding RabbitMQ Exchange & Queue
  2. AWS-CDH5.5安装-软件下载
  3. JavaScript基础——数据类型
  4. 深入浅出设计模式——代理模式(Proxy Pattern)
  5. 【Todo】Mybatis学习-偏理论
  6. 在Windows下忘记MySQL最高用户权限密码的解决方案
  7. poj2503
  8. MSSQL奇技淫巧
  9. iOS开发-OC语言 (二)类的设计
  10. java学习笔记 --- 面向对象
  11. iOS 中的block异常
  12. Unity Socket UDP
  13. Python模块 3
  14. python实现微信自动回复机器人
  15. Oracle 高级排序函数 和 高级分组函数
  16. python 全栈开发,Day96(Django REST framework 视图,django logging配置,django-debug-toolbar使用指南)
  17. Codeforces 808G Anthem of Berland(KMP+基础DP)
  18. spring-mvc实现模拟数据到网页展示过程代码
  19. 位运算符和unity Layers
  20. APP测试体系

热门文章

  1. argparse库 学习记录
  2. 23 服务音乐的启动Demo4
  3. Linux中查看文本文件内容命令cat/tac/nl/more/less/head/tail/vi总结
  4. Swift中使用NSLog的问题
  5. win8如何共享文件夹
  6. 实现string到double的转换
  7. 6.3、Android Studio的CPU Monitor
  8. UNIX网络编程——解决TCP网络传输“粘包”问题
  9. leetcode 37. Sudoku Solver 36. Valid Sudoku 数独问题
  10. [java面试]宇信易诚 广州分公司 java笔试题目回忆录