• 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

    [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的值

    属性

     

  • 相关阅读:
    Eclipse中创建标准web工程以及标准目录结构说明
    log4j配置说明
    常用的Eclilpse插件列表以及安装方式总结
    Eclipse插件安装总结
    eclipse中加放js文件报js语法错误解决办法
    如何在Eclipse中配置Tomcat服务器
    webpack的单vue组件(.vue)加载sass配置
    总结自己常用的几种居中方式
    两个正则坑
    CSS拾遗(二)
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299092.html
Copyright © 2020-2023  润新知