您的位置:首页 > 其它

SSRS 2012 参数化报表 -- 设置报表参数

2015-01-31 14:30 357 查看

SSRS 2012 参数化报表 -- 设置报表参数

其实企业里大多数报表都是重复的报表项目,有的是结构一样,但是数据内容不同,有的是时间范围不同(日报、周报、月报、季报、年报),解决这种多重分析角度的最有效方法就是导入多维度分析,不过,对很多企业来说,传统的固定报表还是使用者最习惯的展示平台,此时,可以用SSRS中的报表参数技术,让分析者自行输入要查询的条件,动态地生成对应的报表。

但是,参数化报表并不能取代多维度分析(On-Line Analytical Processing,OLAP),因为参数化报表是每次输入查询条件以产生新的数据集,数据集是在查询时或是报表生成时才进行存取计算,而没有经过事前汇总,所以,在使用时还是需要注意查询的效率。如果数据量多大,建议先设计多维度分析Cube后再利用SSRS存取。

设置报表参数

参数化报表就是利用可变动的参数来取代固定的字段值,同时在界面中能够让使用者自行输入或是变更参数的内容。SSRS中使用两种不同类型的参数:“查询参数”以及“报表参数”。查询参数是定义在数据集层的变量(影响查询),用来影响SSRS内的数据集,因此查询参数会随着使用的数据提供者而会有不同。以SQL Server为例,数据库查询参数类似“@参数名称”,至于Oracle则会是“:参数名称”。

报表参数是定义在报表层的标量(影响报表使用者界面),用以显示在前端界面供使用者选择,通常报表参数会自动对应至查询参数,但是,报表参数值的格式都是固定利用“Parameters!参数名称.Value”来作代表。

参数化报表实例

步骤1
先打开“Report Data”窗口(可以从工具栏“View”、“Report Data”打开)。右击该报表所使用的数据集,选择“Query”,即可开启查询设计工具,请在查询设计工具上输入带有@YEAR参数查询条件的查询语句,单击“OK”按钮后,即会发现在报表数据窗口的“Parameters”下产生了一个名为“@YEAR”的新报表参数。

注意:参数名称是有区分大小写的。





步骤2
刚才,我们在WHERE条件加入了查询参数的筛选条件,请注意数据来源为SQL Server时,在此输入查询参数的前面请加上@符号,才可以被识别为查询参数,不然会发生错误。保存此查询语句时,系统会自动产生一个同名的报表参数(除非这个名称的报表参数已经被人使用了)。

步骤3
请在报表数据窗口的“Parameters”处右击,选择“Parameter Properties”。





步骤4
在此将此参数的提示修改为“销售年度”,以及将数据类型切换为整数即可。当切换至报表预览画面时,会在报表上方看到一个文本框,当我们在文本框中输入“2010”并单击右侧“查看报表”时,此时,系统会将输入的报表参数“2010”带入数据集的查询参数所在的WHERE条件中,以产生2010年的销售数字结果。





但是,像参数化报表这种便利的功能就像潘多拉的盒子,一开启了就收不回来,使用者只会一直冒出更多的需求,当然,身为报表开发者也只能照单全收,尽量满足使用者天马行空的需求。

本文出自 “SQL Server Deep Dives” 博客,请务必保留此出处http://ultrasql.blog.51cto.com/9591438/1610264
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: