SSRS:获取单个Web服务调用中的所有报告和参数的列表?

Jas*_* La 11 c# web-services reporting-services

简短版本:是否有一种Web服务方法可以返回所有可用报告的名称以及每个报告的参数?

我将我的Web代码(C#/ MVC)连接到SSRS Web服务,并且我能够通过这些服务检索报告.

我知道我可以获得这样的可用报告列表:

var rService = new ReportingService2005
{
 Url = @"http://domain.com/ReportServer/ReportService2005.asmx?wsdl",
 Credentials = System.Net.CredentialCache.DefaultCredentials
};

var reportList = rService.ListChildren(@"/Blah", true);
Run Code Online (Sandbox Code Playgroud)

ListChildren()的结果提供了大量信息,但没有列出每个报告的参数.为了获取报告的参数,我需要单独调用:

string historyId = null;
ReportService.ParameterValue[] values = null;
ReportService.DataSourceCredentials[] credentials = null;

var parameters = rService.GetReportParameters(@"/Blah/" + reportName, historyId, true, values, credentials);
Run Code Online (Sandbox Code Playgroud)

因此,如果我想获取所有可用的报告及其参数,我需要遍历ListChildren的结果,这意味着我将为每个报告进行Web服务调用.

有没有更好的方法呢?

Jas*_*ner 1

Web 服务接口没有这样的调用。作为替代方案,您可以通过直接查询 ReportServer DB 中的报告服务系统表来实现类似的效果;但这将取决于版本,并且 MS 可能不会支持它。

话虽这么说,我过去曾使用这些表创建了几个临时报告。并且没有遇到任何问题 YMMV。