SSRS 2012 参数化报表 -- 复选参数
除了单选参数之外,目前SSRS也支持复选参数的功能,只需利用“Allow multiple values”选项,即可轻松处理复选问题。
复选参数实例
步骤1:
使用复选必须有个前提,就是在查询语法的WHERE条件中必须使用IN(参数)的句型。因此,请先将数据集的查询语句替换为带有IN的。如下:
WHERE YEAR(TRX_DTE) IN(@YEAR)
步骤2:
接下来,进入“@YEAR”参数属性对话框,勾选“Allow multiple values”选项即可。
步骤3:
当切换至预览报表画面时,此时可以看到下拉菜单内变成确认框,同时在最上方加入了“Select All”选项。
从刚才的实例中可以看到,当设置为复选时,系统会自动帮我们产生一个全选的选项,但是这个全选的选项仍有一个小缺点,如果在设置默认值时,是不能默认全选的。为了解决默认全选的问题,需要再额外做一些处理。那该如何达到全选的效果呢?此时,只需要把WHERE条件的内容改成以下即可:
WHERE YEAR(TRX_DTE)=@YEAR OR -1=@YEAR
唯一的差异就是在WHERE条件中加入OR条件式,当@YEAR为-1时,则 “-1=@YEAR” 就会变成“-1=-1”的恒等式,所以等于没有设置筛选条件,即可达到全选的效果。请注意!条件式必须是利用OR连接。在之前的范例中,下拉菜单的值与标签是没有区分的,但是,当我们调整了全选设置时,总不能让使用者看到一个年度叫做-1吧,因此,将下拉菜单的语法做了些调整,另外产生一个字符串列以显示年度信息。
完成以上修改后,我们再重新查看报表的效果。此时,就会产生新的全选选项,只要在默认值中指定值为-1,默认即是选择全部的销售年度了。