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

属性

OAF中的MASTER-DETAIL关系的更多相关文章

  1. Win10 UWP开发系列:实现Master/Detail布局

    在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...

  2. UWP 快速的Master/Detail实现

    最近在写快报(还没有写完)的过程中,一开始就遇到了这个Master/Detail如何实现的问题. 微软给出Demo并不符合要求,搜索后找到了今日头条开发者写的一篇 :实现Master/Detail布局 ...

  3. EBS OAF中如何在多行表中实现附件功能

    EBS OAF中如何在多行表中实现附件功能 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 在OAF中使用附件功能之前,要先明白Entity( ...

  4. ASP.NET Core中使用GraphQL - 第九章 在GraphQL中处理多对多关系

    ASP.NET Core中使用GraphQL ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间件 ASP ...

  5. 使用grabit分析mysql数据库中的数据血缘关系

    使用grabit分析mysql数据库中的数据血缘关系 Grabit 是一个辅助工具,用于从数据库.GitHub 等修订系统.bitbucket 和文件系统等各种来源收集 SQL 脚本和存储过程,然后将 ...

  6. OAF中的面包屑(breadcrumbs)始无法显示(转)

    原文地址:OAF中的面包屑(breadcrumbs)始无法显示 OAF中面包屑是一种重要的导航工具.可以提示用户抵达当前页面的路径,也可以方便的切换到之前的节点. 开始做面包屑开发的时候发现面包屑总是 ...

  7. 如何恢复SQL Server 中的Master库

    如何恢复SQL Server 2005中的Master库 2011-05-10 16:34 Vegas Lee 博客园 我要评论(0) 字号:T | T   master库对于SQLServer来说, ...

  8. TCP/IP协议原理与应用笔记11:TCP/IP中地址与层次关系

    1. 网络中常用的地址: 2. TCP/IP中地址与层次关系 :

  9. 持续集成:TestNG中case之间的关系

    持续集成:TestNG中case之间的关系   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  10. Programming In Scala笔记-第十一章、Scala中的类继承关系

    本章主要从整体层面了解Scala中的类层级关系. 一.Scala的类层级 在Java中Object类是所有类的最终父类,其他所有类都直接或间接的继承了Object类.在Scala中所有类的最终父类为A ...

随机推荐

  1. RxJava操作符(03-变换操作)

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51649975 本文出自:[openXu的博客] 目录: Buffer FlatMap fla ...

  2. Spark运行架构

    http://blog.csdn.net/pipisorry/article/details/52366288 1. Spark运行架构 1.1 术语定义 lApplication:Spark App ...

  3. SQLite 分离数据库(http://www.w3cschool.cc/sqlite/sqlite-detach-database.html)

    SQLite 分离数据库 SQLite的 DETACH DTABASE 语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的.如果同一个数据库文件已经被附加上 ...

  4. Runtime系列(一)-- 基础知识

    众所周知,Objective-C 是一种运行时语言.运行时怎么来体现的呢?比如一个对象的类型确定,或者对象的方法实现的绑定都是推迟到软件的运行时才能确定的.而运行时的诸多特性都是由Runtime 来实 ...

  5. Android View框架总结(一)

    View和Activity的区别 View有哪些? ViewGroup是什么? 为什么Google产生ViewGroup? View的层级结构是什么? View的onMeasure()/onLayou ...

  6. 深入理解MyBatis框架的的配置信息

    面对一个框架,最重要的不是说回用其代码就可以了,我们需要了解其思想,这样才能更快更好的掌握这个框架.而对于一个框架,最重要的就是其配置文件的作用及功能了.下面,我就来谈一谈我今天遇到的这个MyBati ...

  7. iOS下WebRTC音视频通话(一)

    在iOS下做IM功能时,难免都会涉及到音频通话和视频通话.QQ中的QQ电话和视频通话效果就非常好,但是如果你没有非常深厚的技术,也没有那么大的团队,很难做到QQ那么快速和稳定的通话效果. 但是利用We ...

  8. Java进阶(三十七)java 自动装箱与拆箱

    Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...

  9. Linux下jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案

    Linux下的jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案问题linux的jetty下发布程序后再启动jetty服务时 ...

  10. Android初级教程三个Dialog对话框小案例

    这里把三个对话框形式写在一个项目程序里面,用三个按钮控制显示什么样式的对话框. 先看布局文件代码: <LinearLayout xmlns:android="http://schema ...