sql server 2012 报表开发(5) reporting service 动态显示和隐藏列

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 动态显示列的方法。

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值