我所使用的報表以Server伺服器報表為主,也因此Client端的電腦要使用存取這些報表,大多是透過ie瀏覽器來存取使用,而透過這樣url的連線方式,可能有些參數在轉檔或讀取的時候,可能有機會會使用到,本篇文章主要在介紹到透過網址存取報表的一些參數應用及一些內建可能會用到的函數部份
在reportservertempdb(由主要報表伺服器資料庫所建立,用於儲存暫存資料、工作階段資訊和快取報表)資料庫裡頭有個SessionData的資料表,如果沒有任何報表存取連線的話,可以發現到該資料表是沒有資料的,但是如果某台電腦透過瀏覽器連線到報表伺服器來存取報表資料,就會看到在SessionData資料表中會多一筆連線資訊,包含sessionid、存取的報表路徑及逾期的時間等資訊
如果在同樣一台電腦開啟另外一個報表,就會發現到SessionData資料表又多一筆資料
而如果我們直接在所瀏覽的報表網址後面直接指定SessionID的代碼,如下格式
http://172.24.100.1/ReportServer_SQLEXPRESS/Pages/ReportViewer.aspx?%2f%e5%a0%b1%e8%a1%a8%e5%b0%88%e6%a1%881%2fReport21&rs:Command=Render&RS:SessionID=f0d2xlq3iych5x55phl1nn55
可以發現到同樣一筆它的Expiration逾期時間往後延長了
而使用網頁瀏覽報表的時候,都可以看到Reporting Service的工具列,使用下列的參數可以將工具列隱藏不顯示http://172.24.100.1/ReportServer_SQLEXPRESS?%2f%e5%a0%b1%e8%a1%a8%e5%b0%88%e6%a1%881%2fReport21&rs:Command=Render&rc:Toolbar=False
報表記錄快照集是指有些時候可以要調用之前某個時間點的報表資料,透過下列的參數可以達成,但像我是使用SQLExpress版本,它不支援快報表記錄快照集的功能
http://172.24.100.1/ReportServer_SQLEXPRESS/Pages/ReportViewer.aspx?%2f%e5%a0%b1%e8%a1%a8%e5%b0%88%e6%a1%881%2fReport21&rs:Command=Render&RS:Snapshot=2013-05-01T16:25:02
目前Reporting Service支援的轉出格式,我們可以在rsreportserver.config設定檔裡頭找到設定,主要有XML, CSV, PDF, RGDI, HTML, EXCEL, IMAGE, WORD,透過下列的參數可以指定要轉出的檔案格式
http://172.24.100.1/ReportServer_SQLEXPRESS?%2f%e5%a0%b1%e8%a1%a8%e5%b0%88%e6%a1%881%2fReport38&rs:Command=Render&rc:Parameters=false&unit=D01&num=201309&rs:Format=pdf
而函數的介紹主要介紹幾個效果,如果要在群組報表裡頭,自動產生流水號的效果,使用RowNumber(Nothing)函數可以達成
所呈現的效果會如下圖的格式
如果在每次產出報表的時候,想知道報表的產出時間,透過下列的函數可以達成
所呈現出來的效果如下圖
如果想要在頁尾呈現這份報表的頁數及所在頁碼,透過下列函數可以達成
所呈現的效果如下圖
透過網址來存取報表的方式,可以讓每台電腦都可以看到所要瀏覽的報表,且通常不需要另外再作其它設定,通常程式設計師會將每個使用者所要看的報表設定好連結,並不會要讓使用者記那麼長的連線路徑,而早期我在使用sql2005 reporting service的時候,如果使用Firefox好像沒辦法使用Reporting Service的報表,現在FireFox的版本好像有支援了,這對報表使用者來說,將會更加方便。而透過一些函數的使用,可以讓報表內容看起來更加豐富與制式,善用這些函數,也會對報表有加分效果