小说网站 搜小说 无限网 烟雨红尘 小说爱好者 免费小说 免费小说网站

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. }  

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

posted on 2014-11-18 11:58  王小航  阅读(449)  评论(0编辑  收藏  举报

导航