zoukankan      html  css  js  c++  java
  • OAF中的TableLayout 高级表格

    我们经常会遇到这种情况,我们要把显示界面分成几块区域来分别显示不同的内容。比如在同一行左边显示messageComponentLayout,右边显示table,这时,我们就要用到tableLayout功能,下面,我们就试着创建一个tableLayout。

     

    学习目标

        1、掌握Region Style:tableLayout,rowLayout,cellFormat的创建方法,属性设置

        2、了解他们的意义,从属关系,并能灵活嵌套

    一、创建AM

     

        在test.oracle.apps.cux上点右键,选择 Create Application Module

        输入Package:test.oracle.apps.cux.table.server

               Name:TableAM。

        下一步到完成。

    二、创建VO  PoHeaderVO

        在test.oracle.apps.cux.table.server上点右键,选择 Create View Object。

        下一步到 Step5 SQL Statement,

        在Query Statement框中输入

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

        下一步到Java页,确认View Object Class和View Row Class的勾都勾上。

        点完成。

     

    三、创建VO  PoLineVO

        在test.oracle.apps.cux.table.server上点右键,选择 Create View Object

        输入   Package:test.oracle.apps.cux.table.server

                  Name:PoLineVO

     

        下一步到Step5 SQL Statement,

        在Query Statement框中输入

    [c-sharp] view plaincopy
    1. SELECT pol.po_header_id  
    2.       ,pol.po_line_id  
    3.       ,pol.line_num  
    4.       ,pt.line_type  
    5.       ,pol.item_id  
    6.       ,msib.segment1 item_code  
    7.       ,pol.item_description  
    8.       ,pol.unit_meas_lookup_code  
    9.       ,pol.quantity  
    10.       ,pol.unit_price  
    11.       ,pol.closed_flag  
    12.       ,pol.cancel_flag  
    13.       ,pol.closed_date  
    14.       ,pol.cancel_date  
    15.   FROM po_lines_all       pol  
    16.       ,mtl_system_items_b msib  
    17.       ,po_line_types      pt  
    18.  WHERE pol.item_id = msib.inventory_item_id(+)  
    19.    AND pol.org_id = msib.organization_id(+)  
    20.    AND pol.line_type_id = pt.line_type_id  
    21.    AND nvl(msib.enabled_flag,'Y') = 'Y'  

     

        下一步到完成。

     

    四、添加VO到AM下

        双击TableAM,打开AM编辑界面

        在Data Model界面,将VO添加到TableAM下面

    五、新建页面

        在test.oracle.apps.cux.table上点右键,选择 New->Web Tier->OA Components->Page

        输入    Name:TablePG

             Package:test.oracle.apps.cux.table.webui

        确定。

        修改Region的属性

                     ID:PageLayoutRN

          AM Definition:test.oracle.apps.cux.table.server.TableAM

           Window Title:Table Test

                  Title:Table Test:Skycloud

        在PageLayout下添加Region,并更改属性

              ID:PoHeaderHdr

          Prompt:订单头

     

        在PoHeaderHdr下面新建Region,并更改属性

                    ID:PoHeaderLayout

          Region Style:messageComponentLayout

                 Width:100%

     

        在messageComponentLayout下面,新建messageLayout,并更改属性

          ID:PHMessageLayout

        在PHMessageLayout下面,新建Region,并更改属性

                    ID:RowLayoutRN

          Region Style:rowLayout

                 Width:100%

     

        在rowLayout下面新建三个Region

        更改Region1的属性

                    ID:PoHeaderNumCel

          Region Style:cellFormat

                 Width:30%

        更改Region2的属性

                    ID:PoVendorCel

          Region Style:cellFormat

                 Width:30%

       更改Region3的属性

                   ID:PoVendorSiteCel

         Region Style:cellFormat

                Width:40%

      

        分别为每个cellFormat,创建一个ITEM,并更改其属性

     

    ID

    Item Style

    Search Allowed

    View Instance

    View Attribute

    Prompt

    Item1

    PoHeaderNum

    messageStyleText

    True

    PoHeaderVO1

    PoNumber

    采购订单

    Item2

    PoVendor

    messageStyleText

    True

    PoHeaderVO1

    VendorName

    供应商

    Item3

    PoVendorSite

    messageStyleText

    True

    PoHeaderVO1

    VendorSiteCode

    地点

        结构图如下:

     

        运行,看一下结果。

     

        下面添加查询条件

        在PageLayoutRN中添加Region,并修改属性。

                   ID:QueryLayoutRN

          RegionStyle:Header

                 Text:查询

     

        在QueryLayoutRN上添加Region,并修改属性。

                    ID:QueryComponentLayout

          Region Style:messageComponentLayout

     

        在QueryComponentLayout上右键,选择messageLayout,修改属性。

              ID:OrgMessageLayout  

        在OrgMessageLayout下新建Region,并修改其属性。
                    ID:OrgRowLayout

          Region Style:rowLayout

        在OrgRowLayout下新建Region,并修改其属性。

                    ID:OrgSearchCel

          Region Style:cellFormat

        在OrgSearchCel下新建Item,修改属性。

                    ID:OrgSearch

          Region Style:messageTextInput

             Data Type:VARCHAR2

                Prompt:库存组织

            Max Length:20

                Length:20

             Repquired:yes

        在QueryComponentLayout上右键,选择messageLayout,修改属性。

              ID:NumMessageLayout

        在messageLayout上,新建一个Region,修改属性。

                    ID:NumRowLayout

          Region Style:rowLayout

        在rowLayout上,新建两个Region,修改属性

                    ID:PoHdrSearchCel

          Region Style:cellFormat

                    ID:QueryButtonCel

          Region Style:cellFormat

        分别在cellFormat下创建一个ITEM

        更改Item1的属性。

                       ID:PoNumSearch

               Item Style:messageTextInput

                   Prompt:订单编号

          Additional Text:请输入订单编号进行查询

           Maximum Length:20

                   Length:20

                Repquired:yes

        更改Item2的属性。

                  ID:Query

          Item Style:submitButton

              Prompt:查找

        运行看一下效果吧。

        添加从块

        在PageLayoutRN上点右键,新建Region,修改属性。

                    ID:PolineHdr

          Region Style:header

                  Text:订单行

     

        在PoLineHdr上点右键,新建Region,修改其属性。

                    ID:TableLayoutRN

          Region Style:tableLayout

                 Width:100%

        在tableLayout上,新建rowLayout,修改其属性。

                    ID:LineRowLayout

          Region Style:rowLayout

                 Width:100%

        在LineRowLayout上新建两个cellFormat

        修改第一个cellFormat的属性。

                    ID:PoNumCel

          Region Style:cellFormat

     

        修改第二个cellFormat的属性。

                    ID:PoLineCel

          Region Style:cellFormat

        在PoNumCel中新建一个Item,修改属性。

                      ID:PoHeaderNum1

              Item Style:messageStyleText

          Search Allowed:True

           View Instance:PoHeaderVO1

          View Attribute:PoNumber

                  Prompt:订单编号

        在PoLineCel上点右键,选择New->Region Using Wizard...

        输入   Application Module:test.oracle.apps.cux.table.server.TableAM

             Available View Usage:PoLineVO1。

        下一步。

        输入   Region ID:QueryTable

            Region Style:table。

        下一步,选择LineNum,LineType,Item_code,Quantity,UnitPrice,UnitMeasLookupCode。

     

     修改表格属性,如图:

        完成。

        修改表格属性

        View Link Instance:PoHeaderToLineLink

        Width:100%

        修改ITEM属性,Search Allowed为True

    六、创建CO

        在PayeLayoutRN上点击右键,选择Set New Controller...,创建控制文件。

        输入   Package Name:test.oracle.apps.cux.table.webui

             Class Name:TableCO。

        在processFormRequest函数中加入如下代码:

     

    1. public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)  
    2. {  
    3.   super.processFormRequest(pageContext, webBean);  
    4.   OAApplicationModule am = pageContext.getApplicationModule(webBean);  
    5.   OAViewObject vo = (OAViewObject)am.findViewObject("PoHeaderVO1");  
    6.   OAViewObject lineVO = (OAViewObject)am.findViewObject("PoLineVO1");  
    7.   
    8.   if (pageContext.getParameter("Query")!= null) {  
    9.       String PoNumber = pageContext.getParameter("PoNumSearch");  
    10.       String OrgId = pageContext.getParameter("OrgSearch");  
    11.       vo.setWhereClause(null);  
    12.       vo.setWhereClauseParams(null);  
    13.       String whereClause = " (po_number = :2) and (org_id = :3) " ;  
    14.       vo.setWhereClause(whereClause);  
    15.       vo.setWhereClauseParam(1,PoNumber);  
    16.       vo.setWhereClauseParam(2,OrgId);  
    17.       vo.executeQuery();  
    18.   
    19.       vo.first();  
    20.       PoHeaderVORowImpl row = (PoHeaderVORowImpl)vo.getCurrentRow();  
    21.       Number headerId = new Number(row.getPoHeaderId());  
    22.       lineVO.setWhereClause(null);  
    23.       lineVO.setWhereClauseParams(null);  
    24.       String whereClause1 = "(po_header_id = :4)" ;          
    25.       lineVO.setWhereClause(whereClause1);  
    26.       lineVO.setWhereClauseParam(3,headerId);  
    27.       lineVO.executeQuery();  
    28.   }  
    29. }  

    好了,可以看看最终的结果了。

  • 相关阅读:
    Pizza Pie Charts – 基于 Snap SVG 框架的响应式饼图
    超好玩!10款神奇的字符图案 & 词汇云生成工具
    『摄影欣赏』15幅迷人的来自世界各地的婴儿照片【组图】
    CSS 魔法系列:纯 CSS 绘制图形(各种形状的钻石)
    【特别推荐】10款唯美浪漫的婚礼 & 结婚纪念网站模板
    25款创新的 PSD 格式搜索框设计素材【免费下载】
    时尚前沿:15个创意的 3D 字体设计艺术作品欣赏
    Resumable.js – 基于 HTML5 File API 的文件上传
    经典设计:17个最有效的学习着陆页设计的例子
    图标集锦:10套免费的社交媒体 & 社交网站图标
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299091.html
Copyright © 2011-2022 走看看