#c# #web-services #ssrs-2008 #reporting-services
#c# #веб-сервисы #ssrs-2008 #службы отчетов
Вопрос:
Я использую веб-службу ReportExecutionService для запуска отчета SSRS, в котором есть параметры отчета. Я не передаю параметры, но позволяю отчету использовать собственные значения параметров по умолчанию. Поэтому выполнить это и получить правильный отчет обратно не проблема. Однако мне нужно знать значение параметров, чтобы я мог соответствующим образом назвать результирующий файл.
Я бы хотел сделать что-то подобное (что не работает, я не смог найти члена ReportExecutionService, который бы это делал)
byte[] returnArray = new byte[0];
//get the SOAP call to the SSRS service started
ReportExecutionService rs = new ReportExecutionService();
//reportParameters is an empty collection
rs.SetExecutionParameters(reportParameters, "en-us");
//The report renders successfully, using the default vales in the RDL
returnArray = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);
//this is what I want to do, where the nonexistent executionParameters member
//contains the report parameters with default values defined in the report
String fileName = "reportName" rs.executionParameters["startDate"].Value "-" rs.executionParameters["endDate"].Value "." extension;
Ответ №1:
Получается, что элемент ExecutionInfo ReportExecutionService содержит параметры и их значения по умолчанию после загрузки определения отчета, так что это сработает:
//get the SOAP call to the SSRS service started
ReportExecutionService rs = new ReportExecutionService();
//this will contain all of the details needed for execution
ExecutionInfo execInfo = rs.LoadReport(reportLocation, historyID);
//and here are the default value(s)
execInfo.Parameters[i].DefaultValues[]