OAF中如何更改query的默认查询

来源:互联网 发布:线切割编程软件下载 编辑:程序博客网 时间:2024/06/06 00:45

OA Framework使用Query Region来创建查询,可以创建简单的查询、高级查询和保存用户个性化的查询。query Region有三种构建方式:

 

1,resultsBasedSearch

OA Framework根据查询结果表格(或HGrid)中定义的可查询的Item自动生成查询面板。OA Framework在用户选择查询按钮后自动根据用户输入的值,生成Where子句,并执行查询。

 

2,autoCustomizationCriteria

OA Framework根据开发者定义的简单查询和高级查询Region生成查询面板。OA Framework在用户选择查询按钮后,根据用户输入的值,生成Where子句,并执行查询。

利用这种模式可以更改查询项的类型,比如使用LOV、Poplist等,还可以加入结果表(或HGrid)中不存在的查询项目。

 

3,None

OA Framework根据开发者定义的简单查询和高级查询Region生成查询面板。开发人员需要自己实现视图对象的查询逻辑。这种方式一般用于无法使用query Region所提供的功能的情况。

 

本文主要介绍在autoCustomizationCriteria模式下如何控制query的查询。比如对于日期的查询一般用区间范围进行查询,而默认情况下,OA Framework生成的Where子句做相等比较。

  1. 为query Region创建简单查询面板,创建各个查询Item,包括日期从和日期至。
  2. 为各个查询Item创建SearchMapping,除了日期从和日期至两个查询项。此时除了日期范围,其余项目的查询都已经可用。
  3. 在query Region所在的Controller类processFormRequest()方法中加入以下代码

           

OAQueryBean querybean = (OAQueryBean)webBean.findIndexedChildRecursive("QueryRN");// 判断用户是否选择了查询按钮if (pageContext.getParameter(querybean.getGoButtonName()) != null){   String dateFrom = pageContext.getParameter("SearchDateFrom");  String dateTo = pageContext.getParameter("SearchDateTo");   OAApplicationModule am = pageContext.getApplicationModule(webBean);  Serializable[] params = {dateFrom, dateTo};   am.invokeMethod("bindDateRangeWhereClause", params);} 


 

4.应用程序模块中方法如下:

public void bindDateRangeWhereClause(String dateFrom, String dateTo){   OAViewObject vo = getXxxVO1();    String clause = null;   String joinStr = "";   if (vo.getWhereClause() != null)   {     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 (clauseCount > 0)   {     whereClause.append(" AND ");    }  whereClause.append(" RECEIPT_DATE <= :");  whereClause.append(++bindCount);  parameters.addElement(Date.valueOf(dateTo));  clauseCount++;} 


 

 

 

原创粉丝点击