2011-07-21 61 views
1

我對SSRS很新,我幾乎完成了要求我做的報告,一切都按預期工作,但我的客戶只是要求我說明報告已打印多長時間目前的形式,在該報告的標題。SSRS打印計數器

所以我的報告有2個參數:開始日期和結束日期。

比方說,我的客戶打開了05-05-2005至06-06-2006期間的報告,並打印它會在標題/標題中顯示「REPORT NAME(Print#1)」。然後,如果他決定一週後回來並打印相同的確切報告,則會顯示「報告名稱(打印#2)」。

有沒有辦法做到這一點?到目前爲止,我的研究讓我相信這是不可能的。

在此先感謝您的任何線索/解決方案!

回答

2

您必須編寫一個custom Print delivery extension才能將「打印」記錄到某個數據庫中。所以實際上,不,在「純」 SSRS

思路:

  • 這方面的一個近似將查詢記錄到數據庫中,當報表呈現。您不知道報表是否被acxtually打印雖然
  • 使用ReportViewer控件或其他編程方法一次啓動和打印:所以數據庫查詢打印。並記錄下來,如上所述。
+0

謝謝,在我的數據庫中創建一個日誌是我的下一步:D –

3

對於未來的讀者:沒有必要創建自己的查詢日誌記錄。

您可以查詢ReportServer.dbo.ExcecutionLog表。它包含大量關於報告請求的信息,包括XML格式的參數。您可以對此進行組/計數,以確定特定報告的先前執行次數。從這裏執行日誌中提取信息

更多信息: http://technet.microsoft.com/en-us/library/ms155836(v=sql.90).aspx

唯一的問題仍然是確定用戶是否打印報表。您可能還能夠從ExecutionLog得出這樣的:

  • 格式列 - 這應該是「圖像(EMF)」或類似的東西進行打印輸出。
  • 此外,打印動作最有可能只是一個HTML後會呈現動作,用相同的流程id和/或來源=「會話」

看到自己什麼記錄打印輸出產生:查詢Executionlog由executionstart排序,顯示報告,詢問,打印,詢問等。