OAF中的TableLayout 高级表格

时间:2023-03-08 23:47:41
OAF中的TableLayout 高级表格

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

OAF中的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。

OAF中的TableLayout 高级表格

下一步到完成。

二、创建VO  PoHeaderVO

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

OAF中的TableLayout 高级表格

下一步到 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'

OAF中的TableLayout 高级表格

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

OAF中的TableLayout 高级表格

点完成。

三、创建VO  PoLineVO

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

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

Name:PoLineVO

OAF中的TableLayout 高级表格

下一步到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下面

OAF中的TableLayout 高级表格

五、新建页面

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

输入    Name:TablePG

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

OAF中的TableLayout 高级表格

确定。

OAF中的TableLayout 高级表格

修改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:订单头

OAF中的TableLayout 高级表格

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

ID:PoHeaderLayout

Region Style:messageComponentLayout

Width:100%

OAF中的TableLayout 高级表格

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

ID:PHMessageLayout

OAF中的TableLayout 高级表格

在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%

OAF中的TableLayout 高级表格

分别为每个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

地点

结构图如下:

OAF中的TableLayout 高级表格

运行,看一下结果。

OAF中的TableLayout 高级表格

    下面添加查询条件

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

ID:QueryLayoutRN

RegionStyle:Header

Text:查询

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

ID:QueryComponentLayout

Region Style:messageComponentLayout

OAF中的TableLayout 高级表格

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

ID:OrgMessageLayout

OAF中的TableLayout 高级表格

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

                ID:OrgRowLayout

Region Style:rowLayout

OAF中的TableLayout 高级表格

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

ID:OrgSearchCel

Region Style:cellFormat

OAF中的TableLayout 高级表格

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

ID:OrgSearch

Region Style:messageTextInput

Data Type:VARCHAR2

Prompt:库存组织

Max Length:20

Length:20

Repquired:yes

OAF中的TableLayout 高级表格

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

ID:NumMessageLayout

OAF中的TableLayout 高级表格

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

ID:NumRowLayout

Region Style:rowLayout

OAF中的TableLayout 高级表格

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

ID:PoHdrSearchCel

Region Style:cellFormat

ID:QueryButtonCel

Region Style:cellFormat

OAF中的TableLayout 高级表格

分别在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:查找

OAF中的TableLayout 高级表格

运行看一下效果吧。

OAF中的TableLayout 高级表格

    添加从块

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

ID:PolineHdr

Region Style:header

Text:订单行

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

ID:TableLayoutRN

Region Style:tableLayout

Width:100%

OAF中的TableLayout 高级表格

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

ID:LineRowLayout

Region Style:rowLayout

Width:100%

OAF中的TableLayout 高级表格

在LineRowLayout上新建两个cellFormat

修改第一个cellFormat的属性。

ID:PoNumCel

Region Style:cellFormat

修改第二个cellFormat的属性。

ID:PoLineCel

Region Style:cellFormat

OAF中的TableLayout 高级表格

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

ID:PoHeaderNum1

Item Style:messageStyleText

Search Allowed:True

View Instance:PoHeaderVO1

View Attribute:PoNumber

Prompt:订单编号

OAF中的TableLayout 高级表格

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

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

Available View Usage:PoLineVO1。

OAF中的TableLayout 高级表格

下一步。

输入   Region ID:QueryTable

Region Style:table。

OAF中的TableLayout 高级表格

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

OAF中的TableLayout 高级表格

修改表格属性,如图:

OAF中的TableLayout 高级表格

完成。

修改表格属性

View Link Instance:PoHeaderToLineLink

Width:100%

修改ITEM属性,Search Allowed为True

六、创建CO

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

OAF中的TableLayout 高级表格

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

         Class Name:TableCO。

OAF中的TableLayout 高级表格

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

[java] view plaincopy
  1. ,PoNumber);
  2. ,OrgId);
  3. ,headerId);
  4. lineVO.executeQuery();
  5. }
  6. }

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

OAF中的TableLayout 高级表格