我正在尋找一種方法從我的SSRS報告中獲取版本信息。我有幾個環境,希望能夠比較在這些環境中部署哪個報告版本。在SSIS中,這非常容易,因爲每個SSIS包在修改和安全時都會得到一個新版本。有沒有類似的報告?SSRS報告版本
SSRS報告版本
回答
不幸的是,目前沒有類似於RDL文件的dll程序集版本的內置功能。
獲取某種版本信息的唯一方法是通過C#或VB.Net查詢服務器上RDL文件的最後修改日期。你可以使用ReportingServices web服務來做到這一點。
您還可以實現一個自定義函數,該函數會在每次修改RDL文件時將數據庫中的某些字段更新爲當前日期。
所有文件修改信息的問題:您仍然不知道哪個版本在哪個服務器上,您只知道它何時上載/修改。
見一些更多的信息,下面的頁面 - 不幸的是沒有解決方案:
在我的報告,我創建了一個名爲版本變量,並使它成爲一個字符串數據鍵入(並將其移至變量列表的頂部)。每次更改報告時,我都會根據Semantic Versioning更新版本變量。
然後,我可以查詢我的Report Server並查看ExecutionLog表的Parameter字段,我可以看到運行的版本。從技術上講,我在一個寫入另一個表的SSIS工作中處理所有這些問題,但這裏有一點超出範圍。
在我們的報告中,我也創建了一個Version變量,但我們將它的值設置爲$ Revsion $。每次提交新版本時,CVS或SVN(以及我認爲GIT)都會自動更新此值。這是識別RDL版本而無需手動維護的快捷方式。 – 2016-02-22 12:16:16
@CorryS,我知道如何使用SVN汽車道具..但是,你是如何實際讀取和設置變量的? – Nayak 2016-12-12 08:32:34
目前似乎還沒有好的解決方案。 如果您使用默認值創建隱藏參數「版本」,則可以使用構建任務在.rdl文件中修改其值,例如,具有源代碼控制變更集編號的修訂部分。 可悲的是,您可能需要另一個Visual Studio項目來放置此構建任務,因爲報告項目類型似乎不可行。
您也可以創建內聯代碼或可能執行一些查找的程序集。
便宜最理想的替代: 使用的最後修改日期形成報告數據庫:
Select
Name,
Path,
CreationDate,
ModifiedDate,
ModUser.UserName AS ModUser,
CAST(catalog.parameter as xml).value(/Parameters[1]/Parameter[Name="Version"][1]/Values[1]/Value[1]','NVARCHAR(20)') as Version
FROM Reportserver.dbo.Catalog
INNER JOIN ReportServer.dbo.Users ModUser on Moduser.UserID = ModifiedByID
WHERE Type = 2
和日期轉換爲版本號... 跨越不同的服務器實例的版本雖然Doesen't幫助。
- 1. 報告服務(SSRS)中的報告版本控制
- 2. 如何在報告服務器中查找SSRS報告版本
- 3. 從SSRS報告
- 4. SSRS在報告
- 5. SSRS報告值
- 6. SSRS - 子報告
- 7. SSRS報告
- 8. 在SSRS報告
- 9. SSRS報告URL
- 10. 本地化SSRS本身(不是報告)
- 11. 使用Express版本啓用SSRS我的報告
- 12. SSRS 2005 - 電子郵件訂閱發送舊報告版本
- 13. 具有打印問題的SSRS報告pdf版本
- 14. SSRS報告訂閱
- 15. 刪除SSRS報告
- 16. SSRS報告超時
- 17. ssrs打印報告
- 18. SSRS 2008,報告表
- 19. SSRS鏈接報告
- 20. SSRS報告參數
- 21. 分組SSRS報告
- 22. SSRS - 報告地點
- 23. SSRS報告結構
- 24. SSRS報告語言
- 25. SSRS報告服務
- 26. SSRS報告執行
- 27. XSLT在SSRS報告
- 28. SSRS僅報告PDF
- 29. SSRS報告問題
- 30. SSRS報告輪換
非常感謝您的反饋,我擔心這可能會是這樣。有時很難理解MSFT爲什麼在設計他們的產品時如此不適應,但這就是生活。 :) – nojetlag 2010-11-04 08:48:20
不要讓我開始 - SSRS不是唯一的心得與最佳實踐不一致;-) – 2010-11-04 08:51:02