OAF实现客户化查询 .
来源:互联网 发布:html5仿淘宝手机商城 编辑:程序博客网 时间:2024/05/14 12:05
在OAF中,存在标准的查询面板,但是标准的查询只能实现基础、简单的查询,所以在真正的项目当中,一般情况下都是使用自己开发的客户化查询,开发客户化查询的一般步骤如下:
1. 建立页面PG,修改Region
ID
PageLayoutRN
Region Style
PageLayout
AM Definition
RootAM
Window Title
xxx
Title
xxx
2. 在PageLayoutRN下建立Region,属性如下:
ID
MessageComponentLayoutRN
Region Style
MessageComponentLayout
Width
100%
Rows
2
Columns
6
3. 在MessageComponentLayoutRN下新建搜索项(lov形式)
ID
SearchProject
Item Style
MessageLovInput
External LOV
XXX
Prompt
XXX
这里的External LOV是来源于lov的region。
4.建立LOV的页面,建立一个listOfValues的region
Region Style
ListOfValues
Scope
Public
AM Definition
LovAM
5. 基于vo,建立resultTable,ProjectId项的属性
ID
ProjectId
Item Style
Formvalue
6. 在建立的lov组件下建立map映射
ID
ProjectNameMap
LOV Region Item
ProjectName
Return Item
SearchProject
Criteria Item
SerachProject
7.下拉框形式组件
ID
SearchProjectPhase
Item Style
MessageChoice
Picklist View Definition
cux.oracle.apps.pa.lov.server.ProjectPhaseVO
Picklist Display Attribute
ProjectStatusName
Picklist Value Attribute
ProjectStatusName
Prmpt
8. 建立ResultTable
Width
100%
9. 在messageComponentLayout Components下添加footer,在region下添加query按钮
ID
Query
Item Style
SubmitButton
Prompt
搜索(&S)
10.继续添加SpaceBean
ID
SpacerBean
Item Style
Spacer
Width
5
11. 继续添加cancel按钮
ID
Cancel
Item Style
SubmitButton
Disable Client Side Validation
True
Prompt
清除(&C)
上面的步骤是建立好一个搜索面板,下面编写搜索逻辑代码。
首先在co中捕捉点击搜索按钮的事件:
- public void processFormRequest(OAPageContext pageContext,
- OAWebBean webBean) {
- super.processFormRequest(pageContext, webBean);
- OAApplicationModule am = pageContext.getApplicationModule(webBean);
- if (pageContext.getParameter("Cancel") != null) {
- String[] webBeanNames =
- { "SearchProject", "SearchCustomer", "SearchAreaCode",
- "SearchWindCode", "SearchMachineModel", "SearchProjectPhase",
- "SearchReportStartDate", "SearchReportEndDate",
- "SearchProjectManager", "SearchProjectId", "SearchPartyId" };
- WebBeanUtil.resetWebBean(pageContext, webBean, webBeanNames);
- } else if (pageContext.getParameter("Query") != null) {
- String searchProjectId =
- pageContext.getParameter("SearchProjectId");
- String searchPartyId = pageContext.getParameter("SearchPartyId");
- String searchAreaCode = pageContext.getParameter("SearchAreaCode");
- String searchWindCode = pageContext.getParameter("SearchWindCode");
- String searchMachineModel =
- pageContext.getParameter("SearchMachineModel");
- String searchProjectPhase =
- pageContext.getParameter("SearchProjectPhase");
- Date searchReportStartDate =
- DateUtil.toDate(pageContext, pageContext.getParameter("SearchReportStartDate"));
- Date searchReportEndDate =
- DateUtil.toDate(pageContext, pageContext.getParameter("SearchReportEndDate"));
- String searchProjectManager =
- pageContext.getParameter("SearchProjectManager");
- Serializable[] params =
- { searchProjectId, searchPartyId, searchAreaCode, searchWindCode,
- searchMachineModel, searchProjectPhase, searchReportStartDate,
- searchReportEndDate, searchProjectManager };
- Class[] classes =
- { String.class, String.class, String.class, String.class,
- String.class, String.class, Date.class, Date.class,
- String.class };
- am.invokeMethod("queryStatusReport", params, classes);
- }
- }
搜索逻辑代码:
- public void queryStatusReport(String searchProjectId,
- String searchPartyId,
- String searchAreaCode,
- String searchWindCode,
- String searchMachineModel,
- String searchProjectPhase,
- Date searchReportStartDate,
- Date searchReportEndDate,
- String searchProjectManager)
- {
- StatusReportVOImpl vo = getStatusReportVO1();
- vo.setWhereClause(null);
- vo.setWhereClauseParams(null);
- int bindCount = 0;
- StringBuffer whereClause =new StringBuffer(400);
- whereClause.append(" 1=1");
- Vector params = new Vector(9);
- if (searchProjectId!=null && !("".equals(searchProjectId))){
- whereClause.append(" AND project_id = :");
- whereClause.append(++bindCount);
- params.addElement(searchProjectId);
- }
- if (searchPartyId!=null && !("".equals(searchPartyId))){
- whereClause.append(" AND party_id = :");
- whereClause.append(++bindCount);
- params.addElement(searchPartyId);
- }
- if (searchAreaCode!=null && !("".equals(searchAreaCode))){
- whereClause.append(" AND area_code = :");
- whereClause.append(++bindCount);
- params.addElement(searchAreaCode);
- }
- if (searchWindCode!=null && !("".equals(searchWindCode))){
- whereClause.append(" AND wind_code = :");
- whereClause.append(++bindCount);
- params.addElement(searchWindCode);
- }
- if (searchMachineModel!=null && !("".equals(searchMachineModel))){
- whereClause.append(" AND cux_pa_util_pkg.get_pa_machine_model(project_id,:");
- whereClause.append(++bindCount);
- whereClause.append(") = 'Y'");
- params.addElement(searchMachineModel);
- }
- if (searchProjectPhase!=null && !("".equals(searchProjectPhase))){
- whereClause.append(" AND current_phase_name = :");
- whereClause.append(++bindCount);
- params.addElement(searchProjectPhase);
- }
- if (searchReportStartDate!=null && !("".equals(searchReportStartDate))){
- whereClause.append(" AND report_start_date >= :");
- whereClause.append(++bindCount);
- params.addElement(searchReportStartDate);
- }
- if (searchReportEndDate!=null && !("".equals(searchReportEndDate))){
- whereClause.append(" AND report_start_date <= :");
- whereClause.append(++bindCount);
- params.addElement(searchReportEndDate);
- }
- if (searchProjectManager!=null && !("".equals(searchProjectManager))){
- whereClause.append(" AND project_manager = :");
- whereClause.append(++bindCount);
- params.addElement(searchProjectManager);
- }
- if (bindCount >0){
- vo.setWhereClause(whereClause.toString());
- Object[] bindParams = new Object[bindCount];
- params.copyInto(bindParams);
- vo.setWhereClauseParams(bindParams);
- }
- vo.executeQuery();
- }
结果如下
来源:http://blog.csdn.net/wang_zhou_jian/article/details/5785028- OAF实现客户化查询
- OAF实现客户化查询 .
- OAF客户化查询实现
- OAF二次开发step by step(三)--对具体的BC4J对象的客户化
- OAF二次开发step by step(三)--对具体的BC4J对象的客户化
- FORM调用FORM(标准调客户化&客户化调标准)并执行查询的实现研究
- OAF中实现动态LOV
- OAF实现下拉菜单联动
- OAF 系列教程 三 查询(上)
- OAF 系列教程 三 查询(下)
- TCA客户地址查询
- 航空公司VIP客户查询
- 航空公司VIP客户查询
- OAF数据库动态图片的实现
- Form个性化+OAF+BIPublisher实现即时打印
- OAF数据库动态图片的实现
- Form个性化+OAF+BIPublisher实现即时打印
- OAF 多语言界面的实现
- poj 3612 Telephone dp
- Ubuntu下VirtualBox 无法打开,不能为虚拟电脑 openfiler 打开一个新任务
- Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.view.ViewPager"
- c# BackGroundWorker 多线程操作的小例子
- valueOf()
- OAF实现客户化查询 .
- 安装eclipse插件
- [verilog]用文件初始化ROM
- HDU1283:最简单的计算机
- linux网络协议栈分析笔记12-路由2-FIB1
- 搜索题目推荐及解题报告
- Linux Mint Debain 2013.3.4版 硬盘安装笔记
- SAP BADI的实现3-使用BADI过滤器
- 取每个分类N条数据 sql