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

简介:

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”的新报表参数。

 

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

 

clip_image002[4]

 

步骤2

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

 

步骤3

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

 

clip_image004[4]

 

步骤4

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

 

clip_image006[4]

 

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
















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1610264 ,如需转载请自行联系原作者




相关文章
|
SQL BI
FineReport 下拉列表框作为动态参数的实现方式(不使用参数界面实现参数对数据过滤)
决策报表中,不使用参数界面实现参数对图表的绑定(如:下拉列表框值对条状图数据过滤) 实现方法:下拉列表框的`控件名`是参数名
293 0
FineReport 下拉列表框作为动态参数的实现方式(不使用参数界面实现参数对数据过滤)
|
XML BI 数据格式
将RDL报表转换成RDLC报表的函数
原文:将RDL报表转换成RDLC报表的函数 近日研究RDLC报表,发现其不能与RDL报表兼容,尤其是将RDL报表转换成RDLC报表。
877 0