1. 背景
在对话框或关联查询需要通过参数过滤数据时,在参数为空的情况下,对话框或关联查询是默认查询全部数据;如果不想要查询全部数据,可通过自定义SQL控制,将参数为空 作为查询条件去查询数据;
2. 场景说明
省市区下拉框级联,当“省”没有选择数据时,选择“市”的时候,会查询到所有的省下面的所有的市的数据;如下图:
(注:关于省市区下拉框级联的配置请参考:http://www.hotent.org:8880/chanzhi/index.php/book/design-center/242.html#7)
3.方案
通过关联查询的自定义SQL解决该问题
① 在“市”绑定的关联查询中,添加自定义SQL
注:关联查询或对话框添加自定义SQL时,需要勾选“自定义SQL”
String sql = "select * from china where 1=1"; if(Pid !=null && !"".equals(Pid)){ sql += "and Pid = '" + Pid + "'"; }else{ sql += "and Pid is NULL"; } return sql;
注意:如果使用的数据库为:oracle数据库,则注意上方变量需要全小写
效果如下: