使用Java代码控制ADF table列进行QBE方式的过滤
2012-01-11 15:02
465 查看
在ADF中,使用af: table的时候,可以非常简单地设置Table是否使用QBE filter fields;如下图,只要选中Filtering就可以。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/d54ac2caf80994bd53c43685a80eab9c.gif)
jspx中自动产生如下代码:
运行应用后,所有记录显示如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/ce782c75defd75b89ae1007425b30585.gif)
类似oracle form中的操作,在列中输入值,点击回车过滤数据:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/5ee9ac59dd1312a30535444d5529f2db.gif)
如果希望在managed bean中使用程序控制QBE的逻辑,可以参考Steve Muench的Sample:http://blogs.oracle.com/smuenchadf/resource/examples#146
运行后的效果如下图,过滤部门编号:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/0bca0f45c5e14cdd1030e4f2a4dff4d3.gif)
点击[Set Dname,Loc Search fields & Reexecute Query],重置filter fields,并执行查询:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/0455249a4efe22dcbdc230065f31ff57.gif)
被ADF封装后的框架,FilterableQueryDescriptor对应table.getFilterModel(),也就是jspx页面中af: table绑定的filterMoel属性;为了使用Java代码控制filter的逻辑,需要使用FilterableQueryDescriptor的getFilterCriteria()方法;getTableFilterCriteria().clear()可以清空所有的绑定参数,getTableFilterCriteria().put("Dname","%N%")给Dname设置绑定值。
部分Java代码片段:
当然,也可以使用Java代码调用EL表达式关联的method,下面的代码执行Query table操作:
使用QBE filter field的方式进行数据过滤十分简单方便,页面不需要设置查询区域,布局也容易控制;不过,国内的客户似乎更习惯在查询区域输入条件进行数据过滤,让客户接受我们的设计方案似乎更加有挑战。
卢玉双 2012/01/11 @上海
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/d54ac2caf80994bd53c43685a80eab9c.gif)
jspx中自动产生如下代码:
filterModel="#{bindings.DeptView1Query.queryDescriptor}"
运行应用后,所有记录显示如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/ce782c75defd75b89ae1007425b30585.gif)
类似oracle form中的操作,在列中输入值,点击回车过滤数据:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/5ee9ac59dd1312a30535444d5529f2db.gif)
如果希望在managed bean中使用程序控制QBE的逻辑,可以参考Steve Muench的Sample:http://blogs.oracle.com/smuenchadf/resource/examples#146
运行后的效果如下图,过滤部门编号:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/0bca0f45c5e14cdd1030e4f2a4dff4d3.gif)
点击[Set Dname,Loc Search fields & Reexecute Query],重置filter fields,并执行查询:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/16/0455249a4efe22dcbdc230065f31ff57.gif)
被ADF封装后的框架,FilterableQueryDescriptor对应table.getFilterModel(),也就是jspx页面中af: table绑定的filterMoel属性;为了使用Java代码控制filter的逻辑,需要使用FilterableQueryDescriptor的getFilterCriteria()方法;getTableFilterCriteria().clear()可以清空所有的绑定参数,getTableFilterCriteria().put("Dname","%N%")给Dname设置绑定值。
部分Java代码片段:
public String onProgrammaticallySetFilterCriteriaAndReexecuteQuery() { getTableFilterCriteria().clear(); getTableFilterCriteria().put("Dname","%N%"); getTableFilterCriteria().put("Loc","%O%"); queueTableQueryEvent(); return null; }
当然,也可以使用Java代码调用EL表达式关联的method,下面的代码执行Query table操作:
EL.invokeMethod("#{bindings.DeptView1Query.processQuery}",QueryEvent.class,queryEvent);
使用QBE filter field的方式进行数据过滤十分简单方便,页面不需要设置查询区域,布局也容易控制;不过,国内的客户似乎更习惯在查询区域输入条件进行数据过滤,让客户接受我们的设计方案似乎更加有挑战。
卢玉双 2012/01/11 @上海
相关文章推荐
- 使用Java程序控制Barone(Zebra)进行打印的代码
- Android界面设计的4种方式之三——使用XML和JAVA代码混合控制UI界面
- lesson3:使用java代码的方式对不能识别的协议进行压力测试
- 使用XML和java代码混合控制UI界面
- 使用 JUnit 进行 Java 代码的单元测试
- 使用 JUnit 进行 Java 代码的单元测试
- Android学习笔记(9):使用XML文件和Java代码控制UI界面
- 嵌入式Tomcat的使用(即使用java代码控制tomcat服务)
- Struts2数据验证与使用Java代码进行数据验证
- 使用xml及java代码混合的方式来设置图形界面
- 使用JNI进行混合编程:在C/C++中调用Java代码
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- Windows下Qt Creator使用版本控制器Git来进行版本控制,GitHub进行代码托管
- 使用Java自带的API进行JAVA代码与XML文件的转换(JAXB)
- git使用补丁方式进行软件代码提交
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
- Android使用Java代码设置selector或drawable,以及使用自定义控件方式使用它
- Android编程方式开发UI界面和XML文件与Java代码混合控制UI界面
- 使用mybatis的逆向工程(xml方式)创建java代码
- java使用DOM对XML文档进行增删改查操作实例代码