1
votes

I've set up a number of reports in SSRS. Each of these reports are well designed and work as expected.

A request was made to have a number of these reports tied into a single "master" report. I've set up the working reports as subreports, and populated all parameters of the first subreport from the "master" report. I have checked and double checked this fact.

When I attempt to run the report processing seems excessively long. In place of the first subreport SSRS renders Error: Subreport could not be shown.

I checked the log file and I'm getting an error: processing!ReportServer_0-3!e58!04/11/2016-19:42:15::e ERROR: An error has occurred while processing a sub-report. Details: One or more parameters were not specified for the subreport ... Report.Stack trace: at Microsoft.ReportingServices.OnDemandReportRendering.SubReport.FinalizeErrorMessageAndThrow() at Microsoft.ReportingServices.OnDemandReportRendering.SubReport.RetrieveSubreport()

I've also checked the ReportServer ExecutionLogStorage and I can see that all of my parameters are populating in the parameter column. The parameter string is running about 5k characters.

Some more details: The subreport contains 7 parameters:

  • Administrator - single value
  • ReportDate - single value
  • ClientStatus - multiselect
  • DeptStatus - multiselect
  • Client - multiselect
  • AccessType - single value
  • DataOnly - single value

These parameters are mirrored in the "master" report. I've tried passing the multiselect parameters using both =Parameters!ClientStatus.Value and the =Split(join(Parameters!ClientStatus.Value,","),",") method, but I'm honestly not sure which parameter is missing from the subreport. That information isn't recorded anywhere as far as I can tell.

We've mostly abandoned this combined, "master" report, but I'd like to stay on top of this as I'm wondering if it might affect other reports in a more subtle way.

If I can provide more information, please let me know.

2
Make sure the multi-value parameters from the main report to the subreport are passed as [@parameterName], not as "=Parameters!parameterName.Value".Eray Balkanli
@ErayBalkanli Wait, could you elaborate here? Using the ClientStatus parameter from above, when editing the expression the final expression is =Parameters!ClientStatus.Value but when I view it in the parameters menu of the subreport properties window the expresion above translates to [@ClientStatus]. I've set up a multiselect parameter like this before and it worked out fine.MattB
When you use [@parameterName] or Join(Parameters!parameterName.Value) to pass a parameter from the report to subreport, does it solve your problem here? Have u tried?Eray Balkanli
@ErayBalkanli Yes, I've tried both versions. Neither result in a rendered report in this case.MattB

2 Answers

2
votes

You can lookup the passed parameters by querying the ExecutionLog in the SSRS-database.

SELECT [InstanceName]
      ,[ReportID]
      ,[UserName]
      ,[RequestType]
      ,[Format]
      ,[Parameters]
      ,[TimeStart]
      ,[TimeEnd]
      ,[TimeDataRetrieval]
      ,[TimeProcessing]
      ,[TimeRendering]
      ,[Source]
      ,[Status]
      ,[ByteCount]
      ,[RowCount]
  FROM [ReportServer].[dbo].[ExecutionLog]

You need to run the report on the SSRS-portal, obviously, instead of locally in VS or Report Designer...

0
votes

Do all of your parameters in subreport have a value ?
If not, are parameters checked with "accept null value" ?