我只是爲一個項目編寫了可行性研究報告,在我深入研究之前,我能否獲得一個.net程序來獲取SQL Reporting Services中服務器的報告列表?簡單的SQL Reporting Services問題
換句話說,如果有人添加了新的報告,我們希望它顯示在列表中。另外,您是否可以通過某種枚舉的方式獲得有關報告的詳細信息?
我只是爲一個項目編寫了可行性研究報告,在我深入研究之前,我能否獲得一個.net程序來獲取SQL Reporting Services中服務器的報告列表?簡單的SQL Reporting Services問題
換句話說,如果有人添加了新的報告,我們希望它顯示在列表中。另外,您是否可以通過某種枚舉的方式獲得有關報告的詳細信息?
您可以通過Reporting Services Web服務訪問所有這些數據。您必須首先創建代理對象,但一旦完成,獲取報表列表就很簡單。例如:
ReportingService2005 service = new ReportingService2005();
service.Url = ConfigurationManager.AppSettings["ReportingServicesURL"];
service.UseDefaultCredentials = true;
CatalogItem[] items = service.ListChildren(reportingServicesfolderPath, false);
List<string> reports = new List<string>(items.Length);
foreach (var item in items)
{
reports.Add(item.Name);
}
return reports;
Reporting Services有一個SOAP API,因此您可以通過它檢索報告列表,但我認爲直接轉到數據庫會更容易。 ReportServer
數據庫中的Catalog
表包含每個報告的列表。你甚至可以從那裏鏈接到ExecutionLog
表,找出它的運行時間(儘管該表似乎是一個大約三個月的滑動窗口 - 你不會得到比這更早的執行細節)。
我建議您閱讀Integrating Reporting Services into Applications。在所有Reporting Service都是WebService端點之後,您可以使用SOAP WebService端點或HTTP調用。除此之外,還有Reporting Services Class庫,最後是Reporting Services WMI Provider。 Afaik每個上述庫允許你做你所問的。