我在SSRS中设置了一些报告。这些报告中的每一个都经过精心设计并按预期工作。
有人要求将一些这些报告绑定到一个“主”报告中。我已将工作报告设置为子报告,并从“主”报告中填充第一个子报告的所有参数。我检查过并仔细检查过这个事实。
当我尝试运行报表时,处理过程似乎过长。代替第一个子报告SSRS呈现Error: Subreport could not be shown.
我检查了日志文件,但是收到错误:
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()
我还检查了ReportServer ExecutionLogStorage,我可以看到我的所有参数都填充在参数列中。参数字符串运行大约5k个字符。
更多细节:子报告包含7个参数:
这些参数在“主”报告中镜像。我已经尝试使用=Parameters!ClientStatus.Value
和=Split(join(Parameters!ClientStatus.Value,","),",")
方法传递多选参数,但实际上我不确定子报表中缺少哪个参数。据我所知,这些信息没有记录在任何地方。
我们大多放弃了这个综合的“主人”报告,但我想继续保持这一点,因为我想知道它是否会以更微妙的方式影响其他报道。
如果我能提供更多信息,请告诉我。
答案 0 :(得分:0)
子报表中的所有参数都有值吗?
如果没有,参数检查"接受空值" ?
答案 1 :(得分:0)
您可以通过查询SSRS数据库中的ExecutionLog来查找传递的参数。
SELECT [InstanceName]
,[ReportID]
,[UserName]
,[RequestType]
,[Format]
,[Parameters]
,[TimeStart]
,[TimeEnd]
,[TimeDataRetrieval]
,[TimeProcessing]
,[TimeRendering]
,[Source]
,[Status]
,[ByteCount]
,[RowCount]
FROM [ReportServer].[dbo].[ExecutionLog]
显然,您需要在SSRS门户上运行报表,而不是在VS或报表设计器中本地运行...