sql server 2012 报表开发(5) reporting service 动态显示和隐藏列
2015-09-03 18:35
357 查看
1.初始化数据库表数据。
ALTER proc[dbo].[GetMonthSum]
--@Tb varchar(200), --来自哪一个表
--@ColumnByGroup varchar(200),--要汇总统计的字段
--@ColumnBySum varchar(200), --被统计的字段
--@ColumnTime varchar(200), --要统计的时间(例如月份)
--@year varchar(200) --外部传进来的参数(例如,代表的是查询年)
as
declare
@sql varchar(max)
set @sql=''
declare
@str varchar(max)
set @str=''
declare
@i int
set @i=1
while @i<=12
begin
set
@str=@str+
'(select isnull(sum(insertcount),0) from instore where proname=a.proname '
+' and year(insertday)=2010'
+' and month(insertday)='+cast(@ias
varchar(30))+')'
+' as '+'[2010年'+cast(@iasvarchar(30))+'月份'+']'+','
set
@i=@i+1
end
set @str=left(@str,len(@str)-1)
set @sql='select a.proname, '+@str+'
from instore a groupby proname '
exec(@sql)
/*
exec GetMonthSum'instore','proname','insertcount','insertday','2010'
exec GetMonthSum '2010'
*/
2. 创建一个报表项目,添加数据源,数据集,以及报表。
3. 添加一个参数。点击添加参数。
填写参数名称,提示值,选择文本类型,勾选允许多个值,然后再点击可用值
填写下图相应的数据以及配置,点击确定、
在报表中,添加一行。
选择一月份和二月份列表的单元格合并。
其它单元格的合并,也是按照我们前面参数的说明,来配置。效果如下。
4.设置列的显示和隐藏。
选中1月份的列,右键,列可见性。
选择基于表达式显示或隐藏,编写其表达式:
=IIF(Array.IndexOf(Parameters!Y2010.Value, "20100102") > -1, false,true)
二月份也是上面的表达式配置。以及其它月份的数据,也是根据这个规则来做表达式。
最终我们达到的效果就是:可以根据参数,选择需要显示的列,列表就显示参数中,定义的列。
以上是关于reporting service 动态显示列的方法。
ALTER proc[dbo].[GetMonthSum]
--@Tb varchar(200), --来自哪一个表
--@ColumnByGroup varchar(200),--要汇总统计的字段
--@ColumnBySum varchar(200), --被统计的字段
--@ColumnTime varchar(200), --要统计的时间(例如月份)
--@year varchar(200) --外部传进来的参数(例如,代表的是查询年)
as
declare
@sql varchar(max)
set @sql=''
declare
@str varchar(max)
set @str=''
declare
@i int
set @i=1
while @i<=12
begin
set
@str=@str+
'(select isnull(sum(insertcount),0) from instore where proname=a.proname '
+' and year(insertday)=2010'
+' and month(insertday)='+cast(@ias
varchar(30))+')'
+' as '+'[2010年'+cast(@iasvarchar(30))+'月份'+']'+','
set
@i=@i+1
end
set @str=left(@str,len(@str)-1)
set @sql='select a.proname, '+@str+'
from instore a groupby proname '
exec(@sql)
/*
exec GetMonthSum'instore','proname','insertcount','insertday','2010'
exec GetMonthSum '2010'
*/
2. 创建一个报表项目,添加数据源,数据集,以及报表。
3. 添加一个参数。点击添加参数。
填写参数名称,提示值,选择文本类型,勾选允许多个值,然后再点击可用值
填写下图相应的数据以及配置,点击确定、
在报表中,添加一行。
选择一月份和二月份列表的单元格合并。
其它单元格的合并,也是按照我们前面参数的说明,来配置。效果如下。
4.设置列的显示和隐藏。
选中1月份的列,右键,列可见性。
选择基于表达式显示或隐藏,编写其表达式:
=IIF(Array.IndexOf(Parameters!Y2010.Value, "20100102") > -1, false,true)
二月份也是上面的表达式配置。以及其它月份的数据,也是根据这个规则来做表达式。
最终我们达到的效果就是:可以根据参数,选择需要显示的列,列表就显示参数中,定义的列。
以上是关于reporting service 动态显示列的方法。
相关文章推荐
- 推荐Sql server一些常见性能问题的解决方法
- SQL Server存储过程的基础说明
- SQL Server下几个危险的扩展存储过程
- 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
- SQL Server中选出指定范围行的SQL语句代码
- 一些SQL Server存储过程参数及例子
- SQL Server优化50法汇总
- SQL Server数据库管理员(DBA)的工作内容
- 列出SQL Server中具有默认值的所有字段的语句
- MSSQL数据类型及长度限制详细说明
- SQL SERVER函数之深入表值函数的处理分析
- asp.net Reporting Service在Web Application中的应用
- 浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁
- SQL Server常用存储过程及示例
- SQL Server架构
- java数据类型与Sql server数据类型对应关系
- 丰富的统计图
- 个人操作项数统计表--用快逸做的报表,内建数据集,可下载
- 快逸报表——参数和宏的使用总结
- 5、快逸网站大改版