Получить значение параметров отчета по умолчанию после запуска ReportExecutionService.render()

#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[]