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框中输入
- SELECT poh.po_header_id
- ,poh.segment1 po_number
- ,poh.vendor_id
- ,pv.vendor_name
- ,poh.vendor_site_id
- ,pvs.vendor_site_code
- ,poh.org_id
- FROM po_headers_all poh
- ,po_vendors pv
- ,po_vendor_sites_all pvs
- WHERE poh.vendor_id = pv.vendor_id
- AND poh.vendor_site_id = pvs.vendor_site_id
- AND nvl(pv.enabled_flag,'Y') = 'Y'
- 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框中输入
- SELECT pol.po_header_id
- ,pol.po_line_id
- ,pol.line_num
- ,pt.line_type
- ,pol.item_id
- ,msib.segment1 item_code
- ,pol.item_description
- ,pol.unit_meas_lookup_code
- ,pol.quantity
- ,pol.unit_price
- ,pol.closed_flag
- ,pol.cancel_flag
- ,pol.closed_date
- ,pol.cancel_date
- FROM po_lines_all pol
- ,mtl_system_items_b msib
- ,po_line_types pt
- WHERE pol.item_id = msib.inventory_item_id(+)
- AND pol.org_id = msib.organization_id(+)
- AND pol.line_type_id = pt.line_type_id
- 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函数中加入如下代码:
- ,PoNumber);
- ,OrgId);
- ,headerId);
- lineVO.executeQuery();
- }
- }
好了,可以看看最终的结果了。

OAF中的TableLayout 高级表格的更多相关文章
- 使用Vue.js制作仿Metronic高级表格(一)静态设计
Metronic高级表格是Metonic框架中自行实现的表格,其底层是Datatables.本教程将主要使用Vue实现交互部分,使用Bootstrap做样式库.jQuery做部分用户交互(弹窗). 使 ...
- OAF中的面包屑(breadcrumbs)始无法显示(转)
原文地址:OAF中的面包屑(breadcrumbs)始无法显示 OAF中面包屑是一种重要的导航工具.可以提示用户抵达当前页面的路径,也可以方便的切换到之前的节点. 开始做面包屑开发的时候发现面包屑总是 ...
- JQuery中操作表单和表格
一:表单应用 1.HTML中的表单大致由三部分组成 (1).表单便签:包含处理表单数据所用的服务端程序URL,以及数据提交到服务器的方法. (2).表单域:包含文本框.密码框.隐藏域.多行文本框.复选 ...
- EBS OAF中如何在多行表中实现附件功能
EBS OAF中如何在多行表中实现附件功能 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 在OAF中使用附件功能之前,要先明白Entity( ...
- HTML中关于图像和表格,链接等的知识
下面是我分享的html中关于图像和表格,链接等知识: ①<img/>图像标签 <img/>标签中的一些常见属性:1,src是图像的路径属性,是img标签中必不可少的属性. 2, ...
- 在MySQL中实现Rank高级排名函数【转】
MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名.尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名 ...
- AngularJS中自定义有关一个表格的Directive
本篇体验在AngularJS中自定义一个有关表格的Directive.表格的需求包括: ● 表格结构 <table> <thead> <tr> ...
- 详解Vue中watch的高级用法
我们通过实例代码给大家分享了Vue中watch的高级用法,对此知识点有需要的朋友可以跟着学习下. 假设有如下代码: <div> <p>FullName: {{fullName} ...
- 在MySQL中实现Rank高级排名函数
MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名.尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名 ...
随机推荐
- 一道有趣的Twitter技术面试题
来自:http://blog.jobbole.com/50705/ 看下面这个图片” “在这个图片里我们有不同高度的墙.这个图片由一个整数数组所代表,数组中每个数是墙的高度.上边的图可以表示为数组[2 ...
- syslog(),closelog()与openlog()--日志操作函数
在典型的 LINUX 安装中,/var/log/messages 包含所有的系统消息,/var/log/mail 包含来自邮件系统的其它日志消息,/var/log/debug 可能包含调试消息.根据你 ...
- EBS应付(AP)模块常用表
select * from ap_invoices_all INVOICE头 select * from ap_invoice_distributions_all INVOICE行 select ...
- Android上下文菜单ContentView详解
ContentView介绍 上下文菜单继承了android.view.Menu,因此我们可以像操作Options Menu那样给上下文菜单增加菜单项.上下文菜单与Options Menu最大的不同在于 ...
- System.getProperty()的用途
偶尔用到 System.getProperty(),找起来也不方便.这里做下记录备忘: 编写的测试类: public class TestSystemproperty { public stat ...
- C语言获取文件大小
C语言是一种比较底层的语言,有时在其他语言中很容易操作的事情,在C语言中就比较麻烦,例如获取一个文件的大小.Java中File类有个length函数,Python中os.path包中有个getsize ...
- android打包方法超过65k错误
近日,Android Developers在Google+上宣布了新的Multidex支持库,为方法总数超过65K的Android应用提供了官方支持. 如果你是一名幸运的Android应用开发者,正在 ...
- UNIX环境高级编程——线程同步之读写锁以及属性
读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程.当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步, 互 ...
- pycharm+django之小试牛刀
准备好好学习一下python,就从django开始吧,顺带了解一下网站的开发.今天在windows上安装了python,django,以及酷炫吊的IDE--pycharm,学习资料主要是<the ...
- iOS数据解析UI_14
数据解析:就是按照约定(假象)好的格式提取数据的过程就叫解析: 提供数据方(后台):工作就是把数据按照一定的格式存储起来 提取数据方(前台):工作就是把数据按照一定的格式读取出来 主流的格式:X ...