天天看點

微軟移動報表伺服器,微軟BI SSRS漸悟之統計報表通路次數

引言

今天一位朋友問到這樣一樣問題: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、建立通路次數資料集

微軟移動報表伺服器,微軟BI SSRS漸悟之統計報表通路次數
微軟移動報表伺服器,微軟BI SSRS漸悟之統計報表通路次數

step4、呈現通路次數

添加頁腳-右鍵“插入文本框”-添加“占位符”-表達式  =通路次數

微軟移動報表伺服器,微軟BI SSRS漸悟之統計報表通路次數
微軟移動報表伺服器,微軟BI SSRS漸悟之統計報表通路次數

每重新整理一次,次數+1。

微軟移動報表伺服器,微軟BI SSRS漸悟之統計報表通路次數

資料庫的資訊大家也可以看下

微軟移動報表伺服器,微軟BI SSRS漸悟之統計報表通路次數

執行日志實作

通過執行日志實作,其實就省去了我們的步驟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

其他配置,參見第一種方式即可。