代码之家  ›  专栏  ›  技术社区  ›  Tim Almond

简单SQL Reporting Services问题

  •  2
  • Tim Almond  · 技术社区  · 16 年前

    我只是为一个项目写一个可行性研究,在深入研究之前,我能得到一个.NET程序来获取SQL Reporting Services中服务器的报告列表吗?

    换句话说,如果有人添加了新报告,我们希望它显示在列表中。此外,您可以通过某种枚举获得有关报表的详细信息吗?

    3 回复  |  直到 16 年前
        1
  •  4
  •   jvilalta    16 年前

    您可以通过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;
    
        2
  •  1
  •   Matt Hamilton    16 年前

    ReportingServices有一个SOAP API,因此您可以通过它检索报表列表,但我认为直接转到数据库会更容易。这个 Catalog 表中 ReportServer 数据库包含每个报表的列表。你甚至可以从那里链接到 ExecutionLog 表以确定它何时运行(尽管该表似乎是一个大约三个月的滑动窗口-您不会得到比这更旧的执行详细信息)。

        3
  •  0
  •   Remus Rusanu    16 年前

    我建议你读一下 Integrating Reporting Services into Applications . 毕竟,报告服务是一个WebService端点,所以您可以使用SOAP WebService端点或HTTP调用。除此之外还有 Reporting Services Class 图书馆还有最后一个 Reporting Services WMI Provider . afaik上述每个库都允许您执行您的请求。