2009-12-29 4 views
2

Je viens d'écrire une étude de faisabilité pour un projet et avant d'aller trop loin, puis-je obtenir un programme .net pour obtenir une liste de rapports pour un serveur dans SQL Reporting Services? En d'autres termes, si quelqu'un ajoute un nouveau rapport, nous voulons qu'il apparaisse dans la liste. Aussi, pouvez-vous obtenir des informations détaillées sur le rapport via une sorte d'énumération?Simple SQL Reporting Services Question

Répondre

4

Vous pouvez accéder à toutes ces données via le service Web de Reporting Services. Vous devrez d'abord créer un objet proxy, mais une fois cela fait, obtenir une liste de rapports est simple. Par exemple:

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 dispose d'une API SOAP, ce qui vous permet d'extraire des listes de rapports, mais je pense qu'il serait plus facile d'accéder directement à la base de données. La table Catalog de la base de données ReportServer contient une liste de tous les rapports. Vous pouvez même lier de là à la table ExecutionLog pour savoir quand il a été exécuté (bien que cette table semble être une fenêtre glissante d'environ trois mois - vous n'obtiendrez pas les détails d'exécution plus vieux que cela).

Questions connexes