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

点击下一步,一直到完成。
二、新建VO:PoHeaderVO
选择包test.oracle.apps.cux.details.server,右键选择 New
View Object
设置 Package:test.oracle.apps.cux.details.server
Name:PoHeaderVO

选择下一步,到Step5,SQL Statement,输入SQL
- SELECT 'N' selectflag
- ,poh.po_header_id
- ,poh.segment1 po_number
- ,poh.vendor_id
- ,pv.vendor_name
- ,poh.vendor_site_id
- ,pvs.vendor_site_code
- ,0 viewline
- FROM po_headers_all poh
- ,po_vendors pv
- ,po_vendor_sites_all pvs
- WHERE poh.vendor_id = pv.vendor_id
- AND poh.vendor_site_id = pvs.vendor_site_id
- 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。
- SELECT pol.po_header_id
- ,pol.po_line_id
- ,pol.line_num
- ,pol.item_id
- ,msib.segment1 item_code
- ,pol.item_description
- FROM po_lines_all pol
- ,mtl_system_items_b msib
- WHERE pol.item_id = msib.inventory_item_id
- AND pol.org_id = msib.organization_id
- 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的值

属性

OAF中的MASTER-DETAIL关系的更多相关文章
- Win10 UWP开发系列:实现Master/Detail布局
在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...
- UWP 快速的Master/Detail实现
最近在写快报(还没有写完)的过程中,一开始就遇到了这个Master/Detail如何实现的问题. 微软给出Demo并不符合要求,搜索后找到了今日头条开发者写的一篇 :实现Master/Detail布局 ...
- EBS OAF中如何在多行表中实现附件功能
EBS OAF中如何在多行表中实现附件功能 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 在OAF中使用附件功能之前,要先明白Entity( ...
- ASP.NET Core中使用GraphQL - 第九章 在GraphQL中处理多对多关系
ASP.NET Core中使用GraphQL ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间件 ASP ...
- 使用grabit分析mysql数据库中的数据血缘关系
使用grabit分析mysql数据库中的数据血缘关系 Grabit 是一个辅助工具,用于从数据库.GitHub 等修订系统.bitbucket 和文件系统等各种来源收集 SQL 脚本和存储过程,然后将 ...
- OAF中的面包屑(breadcrumbs)始无法显示(转)
原文地址:OAF中的面包屑(breadcrumbs)始无法显示 OAF中面包屑是一种重要的导航工具.可以提示用户抵达当前页面的路径,也可以方便的切换到之前的节点. 开始做面包屑开发的时候发现面包屑总是 ...
- 如何恢复SQL Server 中的Master库
如何恢复SQL Server 2005中的Master库 2011-05-10 16:34 Vegas Lee 博客园 我要评论(0) 字号:T | T master库对于SQLServer来说, ...
- TCP/IP协议原理与应用笔记11:TCP/IP中地址与层次关系
1. 网络中常用的地址: 2. TCP/IP中地址与层次关系 :
- 持续集成:TestNG中case之间的关系
持续集成:TestNG中case之间的关系 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...
- Programming In Scala笔记-第十一章、Scala中的类继承关系
本章主要从整体层面了解Scala中的类层级关系. 一.Scala的类层级 在Java中Object类是所有类的最终父类,其他所有类都直接或间接的继承了Object类.在Scala中所有类的最终父类为A ...
随机推荐
- Java异常处理-----Throwable类
Throwable类 1.toString() 输出该异常的类名. 2.getMessage() 输出异常的信息,需要通过构造方法传入异常信息(例如病态信息). 3.printStackTrace() ...
- 安卓2.x的版本使用4.x的主题
现在,还有大部分安卓开发者在开发安卓APP时使用的是2.x的SDK版本,为了兼容2.x的手机这本倒无可厚非,但最令人头痛的就是2.x版本的主题是在太丑了,这是安卓刚推出时只考虑到了实用,并没考虑到美观 ...
- SSH网上商城---邮件发送
注册网站账号的时候,都需要发送激活邮件,然后让注册的用户点击激活链接方可完成注册,不过话说回来,为什么注册的时候需要发送邮件呢?为什么不注册的时候直接激活呢?一定要收一封激活帐号的邮件?网站这样做的好 ...
- 闪屏页面开发遇到的问题you need to use a theme.appcompat theme (or descendant)
开始做一个新闻客户端的应用,在做到闪屏页面时之前发布应用的时候总是报错,原因是我在splash.java中把Activty写成ActionBarActivity,导包,然后就可以了.以前也遇到过这种情 ...
- 根据iOS 10 的新特性,创建iMessage App,可用于自定义表情
第一. 介绍(原文作者 澳大利亚19岁少年--Davis Allie ----原文地址) 随着iOS10的发布,苹果对开发者开放了Messages应用程序,开发人员现在可以创建他们自己的各种类型 并且 ...
- Android ListPopupWindow的使用
其实像ListPopupWindow.PopupMenu的用法大致和PopupWindow的一样!就不讲了,相信用过PopupWindow的看一下就能明白. 先上个效果图: ListPopupWind ...
- Android的PopupWindow使用android学习之旅(四十三)
PopupWindow简介 PopupWindow是一个类似dialog的控件,可以接受任何的view作为下拉列表显示. 用法 代码展示 package peng.liu.test; import a ...
- python中MySQLdb的使用
先举一例: 一个 Python代码实例: # -*- coding: utf-8 -*- #mysqldb import time, MySQLdb #连接 ...
- 最简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0)
===================================================== 最简单的基于FFmpeg的视频播放器系列文章列表: 100行代码实现最简单的基于FFMPEG ...
- 【翻译】Ext JS最新技巧——2015-10-21
原文:Top Support Tips Kevin Cassidy:全宽度的字段错误信息 有考虑过让验证信息显示在表单字段的下面(msgTarget:'under'),但最后发现验证信息被压缩显示了吗 ...