欢迎来到天天文库
浏览记录
ID:16546876
大小:241.50 KB
页数:30页
时间:2018-08-22
《(01)-oaf 技术细节》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、OracleSeeker,Oracle探索者·Home·Activity·Members·Groups·Forums·BlogsTopofFormBottomofFormYouarebrowsingthearchiveforOracle.←PreviousEntriesNextEntries→byaronezhangOAF中如何更改query的默认查询12月20,2008inOracleEBS二次开发byaronezhang OAFramework使用QueryRegion来创建查询,可以创建简单的查询、高级查询和保存用户个性化的查询。queryRe
2、gion有三种构建方式: 1,resultsBasedSearchOAFramework根据查询结果表格(或HGrid)中定义的可查询的Item自动生成查询面板。OAFramework在用户选择查询按钮后自动根据用户输入的值,生成Where子句,并执行查询。 2,autoCustomizationCriteriaOAFramework根据开发者定义的简单查询和高级查询Region生成查询面板。OAFramework在用户选择查询按钮后,根据用户输入的值,生成Where子句,并执行查询。利用这种模式可以更改查询项的类型,比如使用LOV、Poplist等,
3、还可以加入结果表(或HGrid)中不存在的查询项目。 3,NoneOAFramework根据开发者定义的简单查询和高级查询Region生成查询面板。开发人员需要自己实现视图对象的查询逻辑。这种方式一般用于无法使用queryRegion所提供的功能的情况。 本文主要介绍在autoCustomizationCriteria模式下如何控制query的查询。比如对于日期的查询一般用区间范围进行查询,而默认情况下,OAFramework生成的Where子句做相等比较。1.为queryRegion创建简单查询面板,创建各个查询Item,包括日期从和日期至。2.为各
4、个查询Item创建SearchMapping,除了日期从和日期至两个查询项。此时除了日期范围,其余项目的查询都已经可用。3.在queryRegion所在的Controller类processFormRequest()方法中加入以下代码?[Copytoclipboard]ViewCodeJAVA123456789101112OAQueryBeanquerybean=(OAQueryBean)webBean.findIndexedChildRecursive("QueryRN");//判断用户是否选择了查询按钮if(pageContext.getParam
5、eter(querybean.getGoButtonName())!=null){StringdateFrom=pageContext.getParameter("SearchDateFrom");StringdateTo=pageContext.getParameter("SearchDateTo"); OAApplicationModuleam=pageContext.getApplicationModule(webBean);Serializable[]params={dateFrom,dateTo}; am.invokeMethod("bind
6、DateRangeWhereClause",params);}4.应用程序模块中方法如下:?[Copytoclipboard]ViewCodeJAVA12publicvoidbindDateRangeWhereClause(StringdateFrom,StringdateTo){3456789101112131415161718192021222324252627282930OAViewObjectvo=getXxxVO1(); Stringclause=null;StringjoinStr="";if(vo.getWhereClause()!=nu
7、ll){joinStr="AND";} if((dateFrom!=null)&&(!("".equals(dateFrom.trim())))){clause="RECEIPT_DATE>=:";whereClause.append(++bindCount);parameters.addElement(Date.valueOf(dateFrom));clauseCount++;}//条件:接收日期至if((dateTo!=null)&&(!("".equals(dateTo.trim())))){if(claus
8、eCount>0){whereClause.append("AND");}whereCl
此文档下载收益归作者所有