OAF_开发系列04_实现OAF查询4种不同的实现方式的比较和实现(案例)
2014-06-02 Created By BaoXinjian
一、摘要
OAF实现查询功能或需求,一般都会采用以下四种方式
(1). ResultBasedSearch
最简单的实现方式,将结果中某些栏位需要查询的栏位的属性search设定为true即可
(2). AutoCustomizationCriteria:SimpleSearchPanel & AdvancedSearchPannel
使用最多的查询方式,存在两种方式simple & advanced pannel
(3). 完全客制化Search:查询栏位Region - 按钮Regoin - 结果Region
如果遇到非常复杂,查询条件需要通过逻辑进行组合,就可以采用这种方式,完全客制化查询
1. ResultBasedSearch
(1). 建立Query Region
(2). 在Query Region下建立Result Table Region
(3). 设定Item的属性为Research为true
(4). 结构
-Query
-Result Table
-Item 设定Research为true
2. AutoCustomizationCriteria - SimpleSearchPanel
(1). 建立Query Region
(2). 在Query Region下建立Result Table Region
(3). 建立SimpleSearchPannel, 在其下建立messageComponentLayout,在建立Search Items
(4). 建立SimpleSearchMappings, 建立Mapping关系,Search Item和Result Item的关系
3. AutoCustomizationCriteria - AdvancedSearchPannel
(1). 建立Query Region
(2). 在Query Region下建立Result Table Region
(3). 建立AdvancedSearchPannel, 在其下建立messageComponentLayout,在建立Search Items
(4). 建立AdvancedSearchMappings, 建立Mapping关系,Search Item和Result Item的关系
4. 完全客制化Search
(1). 建立Page,SearchInovice包含查询栏位Region、查询结果Region、按钮Region
(2). 在SearchInvoiceCO.java中添加如下方法processFormRequest
作用:按下查询发票Button,触发AM中的方法
(3). 在InvoiceAM中添加如下方法
作用:查询发票,
触发VO中的方法
(3). 在InvocieSummaryVO中添加如下方法
作用:设定sql的条件及具体语法
二、解析
当你为pageLayout区域添加一个query 区域时,OAF框架生成一个oracle.apps.fnd.framework.webui.beans.layout.OAQueryBean对象。
它依赖于它的配置,并通过一个子控件table, advanced table或者HGrid来实现simple search, advanced search和view panel组合,OAF框架自动在合适的区域生成按钮。
1. 结构
2. Query区域的使用限制
LOV Choice组件是不支持的。当使用一个query区域时,你不应该把结果表中的messageLovChoice列标记为可查询列(”queryable”)
三、案例 - SimpleSearchPanel 查询方式
1. 建立SimpleSearchPannel
2. 测试SimpleSearchPannel结果
四、案例 - AdvancedSearchPannel 查询方式
1. 建立AdvancedSearchPannel
2. 测试AdvancedSearchPannel结果
Thanks and Regards
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建