参数为空选择全部

编辑
文档创建者:文档助手1 (67727 )     浏览次数:29644次     编辑次数:17次     最近更新:jiangsr 于 2017-11-12     

目录:

1. 描述编辑

在使用参数进行过滤时,选择某个参数值后就会根据选择的值进行过滤,但是如何实现如下图效果即不输入参数值时能够查询处数据表中的全部值呢?
222
由于参数的定义有两种方式,因此下面我们分别介绍下参数为空选出全部值的做法。

2. 方法一:通过数据集参数编辑

2.1 实现思路
在定义数据集时,通过使用if函数判断参数的值是否为空,若为空就不过滤参数,若不为空就进行参数过滤。
2.2 示例
1)打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\动态表.cpt
2)修改数据集
将数据集修改为:SELECT * FROM 订单 where 1=1
${if(len(area) == 0,"","and 货主地区 = '" + area + "'")}
${if(len(province) == 0,"","and 货主省份 = '" + province + "'")}
注:where 1=1表示条件永真,防止没有之后的参数条件时,where多出而导致出错;len(area)==0表示参数area为空;"and 货主地区='"+area+"'" 中间的area表示取参数值,'+' 为字符串拼接符号。
${if(len(area) == 0,"","and 货主地区 = '" + area + "'")} 表示若参数area为空就不进行过滤,若不为空则货主地区等于参数值。
3)修改参数界面
将参数界面修改为如下样式:
4)参数控件设置
设置参数area的控件类型为下拉框,数据字典选择数据库表,数据库为FRDemo,数据表为订单,实际值与显示值的列名都选择货主地区。
设置参数province的控件类型也为下拉框,数据字典为数据库表,数据库为FRDemo,数据表为订单,实际值与显示值的列名都选择货主省份。
5)效果查看
点击分页预览,不输入参数值后,直接点击查询,效果如上图。
在线查看模板效果请点击ParaNull.cpt
已完成模板,可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\ParaNull\数据集参数实现参数为空选择全部.cpt
注:如果参数面板使用的是下拉复选框,而不是下拉框,则需要做几处改动。
首先将数据集的SQL语句修改为:SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,"","and 货主地区 in ('" + area + "')")}
其次修改下拉复选框控件属性中返回值类型,如下图所示:


3. 方法二:通过报表参数编辑

3.1 实现思路
在给数据列设置过滤条件的时候,同样使用if函数进行判断。
3.2 示例
1)打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\ParaNull\数据集参数实现参数为空选择全部.cpt
2)修改数据集
将数据集修改为查询订单表的数据即:SELECT * FROM 订单
3)报表参数设置
点击模板>模板参数,添加两个模板参数,分别为area和province。
4)过滤条件设置
双击A2单元格,选择过滤按钮,给A2单元格增加如下图所示的过滤条件:

注:nofilter表示不过滤,if(len($area)==0,nofilter,$area)表示参数area为空,就不过滤,若不为空则以参数值进行过滤;if(len($province)==0,nofilter,$province)意义相同。
5)效果查看
点击分页预览,不输入参数值后,直接点击查询效果如上图。
在线查看模板效果请点击ParaNull1.cpt
已完成模板,可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\ParaNull\报表参数实现参数为空选择全部.cpt
参数为空在线视频请查看【参数为空】

附件列表


主题: 新图表
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: