博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OAF中的MASTER-DETAIL关系
阅读量:5027 次
发布时间:2019-06-12

本文共 4088 字,大约阅读时间需要 13 分钟。

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

属性

 

转载于:https://www.cnblogs.com/wanghang/p/6299092.html

你可能感兴趣的文章
leetcode-数数并说
查看>>
笔记二:LoginCheck.php
查看>>
Java(C#)基础差异-语法
查看>>
pip使用报错【cannot import name HTTPSHandler】
查看>>
学习触发器
查看>>
How to fix phpmyadmin error, incorrect format parameter that appeared while importing a database?
查看>>
代码质量管控的四个阶段
查看>>
P1507NASA食物
查看>>
dpkg:处理软件包 mysql-server-5.5 (--configure)时出错
查看>>
nodejs书籍
查看>>
golang中常用数据的内存模型之Slice
查看>>
gradle 代理设置
查看>>
ecere 编译过程中遇到的问题
查看>>
2017年目标记
查看>>
CentOS6.8 安装rar解压缩
查看>>
程序员,怎么样面对自己三十岁后的下坡路(转)
查看>>
Linux目录结构
查看>>
Apache 配置虚拟主机三种方式
查看>>
虚拟机里的weblogic之后怎样进入
查看>>
Mysql 日志文件清理
查看>>