微软移动报表服务器,微软BI SSRS渐悟之统计报表访问次数

本文介绍了两种方法在SSRS(SQL Server Reporting Services)中统计报表访问次数。一种是通过创建存储过程和数据集来实现,每次访问时更新访问计数;另一种是利用报表执行日志,直接查询统计。这两种方法都需要考虑报表刷新导致的多次访问情况,并需要相应的数据库权限。
摘要由CSDN通过智能技术生成

引言

今天一位朋友问到这样一样问题:SSRS报表如何统计报表的访问次数。愣过之后,细想一下,从开发的角度来审视这个问题。无非就是需要一个地方能够存储表示当前报表的变量和已访次数。每次用户访问的时候给这个变量的次数加1.从报表的生命周期来看,数据集是一个可以下手的地方。另外对SSRS自身数据库熟悉的同学,肯定不难想到报表的执行日志。

值得注意的是,以下两种方式,在刷新报表的时候,将是两次访问。对这个有要求的同学,那就需要另辟蹊径喽。

存储过程实现

step1、创建访问次数统计表create table rs_access_times

(

id int identity(1,1) primary key, --主键

rt_name nvarchar(200) not null, --报表名称

access_times int default(0) --访问次数

)

go

step2、创建次数累加存储过程create proc up_total_access_times

(

@rt_name nvarchar(200) --报表名称

)

as

begin

--第一次访问,初始化一条记录

if not exists(select * from rs_access_times where rt_name = @rt_name)

begin

insert into rs_access_times(rt_name,access_times) values(@rt_name,0)

end

--更新次数

update rs_access_times set access_times = access_times + 1 where rt_name = @rt_name

--返回最新次数

select access_times from rs_access_times where rt_name = @rt_name

end

go

step3、创建访问次数数据集

8e3202f795880cbdfcd858b04318f6b2.png

551b7608a2a5c7781aa8a4083d447e38.png

step4、呈现访问次数

添加页脚-右键“插入文本框”-添加“占位符”-表达式  =访问次数

d9f85495a2b0348808acca7411d3ba26.png

5e8d66c9ce8385ba63b809b3c57f63c9.png

每刷新一次,次数+1。

b2239dc3617285b21a30e62ac482ec03.png

数据库的信息大家也可以看下

9678cf6367f14b427fc94c1102bd2ffc.png

执行日志实现

通过执行日志实现,其实就省去了我们的步骤1和2.但是有几个问题大家要注意下:

1、我需要能够访问报表服务的数据库权限

2、需要在报表中添加报表数据库的链接

3、我们需要先认识一下执行日志表结构

Catalog 目录表 ItemID字段为主键GUID, Name字段为名称,用来存储报表文件夹、数据源、数据集、报表等的名称。

ExecutionLogStorage 执行日志表 ReportID字段为Catalog表ItemID表外键(逻辑),每刷新一次,生成一条新数据。

4、注意,在设计阶段预览报表是不会在这个数据库生成数据的,要发布之后看效果

清楚以上信息,我们就可以实现功能了,思路就是关联两个表,统计执行次数。(其他字段暂可不必了解)

step1、创建报表数据库链接

相信大家都会,在此不复述。

step2、创建访问次数数据集select count(*)

from ExecutionLogStorage els

join Catalog c on els.ReportID = c.ItemID

where c.Name = @rt_name

其他配置,参见第一种方式即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值