2009-12-29 59 views
2

我只是爲一個項目編寫了可行性研究報告,在我深入研究之前,我能否獲得一個.net程序來獲取SQL Reporting Services中服務器的報告列表?簡單的SQL Reporting Services問題

換句話說,如果有人添加了新的報告,我們希望它顯示在列表中。另外,您是否可以通過某種枚舉的方式獲得有關報告的詳細信息?

回答

4

您可以通過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; 
1

Reporting Services有一個SOAP API,因此您可以通過它檢索報告列表,但我認爲直接轉到數據庫會更容易。 ReportServer數據庫中的Catalog表包含每個報告的列表。你甚至可以從那裏鏈接到ExecutionLog表,找出它的運行時間(儘管該表似乎是一個大約三個月的滑動窗口 - 你不會得到比這更早的執行細節)。