Sql SSRS“;“失去”;传递给子报表的参数
我已经在SSRS中建立了许多报告。这些报告中的每一份都设计得很好,并按预期工作 有人要求将这些报告中的一些报告绑定到一个“主”报告中。我已经将工作报告设置为子报告,并填充了“主”报告中第一个子报告的所有参数。我已经核实并再次核实了这一事实 当我尝试运行报告时,处理时间似乎过长。代替第一个子报表,SSRS呈现Sql SSRS“;“失去”;传递给子报表的参数,sql,sql-server,reporting-services,ssrs-2012,Sql,Sql Server,Reporting Services,Ssrs 2012,我已经在SSRS中建立了许多报告。这些报告中的每一份都设计得很好,并按预期工作 有人要求将这些报告中的一些报告绑定到一个“主”报告中。我已经将工作报告设置为子报告,并填充了“主”报告中第一个子报告的所有参数。我已经核实并再次核实了这一事实 当我尝试运行报告时,处理时间似乎过长。代替第一个子报表,SSRS呈现错误:无法显示子报表。 我检查了日志文件,发现一个错误: 处理!ReportServer_0-3!e58!2016年11月4日-19:42:15::e错误:处理子报告时出错。详细信息:未为子报
错误:无法显示子报表。
我检查了日志文件,发现一个错误:
处理!ReportServer_0-3!e58!2016年11月4日-19:42:15::e错误:处理子报告时出错。详细信息:未为子报表指定一个或多个参数。。。Report.Stack trace:位于Microsoft.ReportingServices.OnDemandReportRendering.SubReport.FinalizeErrorMessageAndRow()的Microsoft.ReportingServices.OnDemandReportRendering.SubReport.RetrieveSubreport()
我还检查了ReportServer ExecutionLogStorage,可以看到我的所有参数都填充在参数列中。参数字符串运行约5k个字符
更多详细信息:子报表包含7个参数:
- 管理员-单个值
- ReportDate-单个值
- 客户端状态-multiselect
- 德普斯塔特斯-多选
- 客户端-多选
- AccessType-单个值
- DataOnly-单个值
=参数传递multiselect参数!ClientStatus.Value
和=Split(join(Parameters!ClientStatus.Value,“,”,”)
方法,但我确实不确定子报表中缺少哪个参数。据我所知,这些信息没有记录在任何地方
我们基本上已经放弃了这个组合的“主”报告,但我想继续关注它,因为我想知道它是否会以更微妙的方式影响其他报告
如果我能提供更多信息,请告诉我。子报表中的所有参数都有值吗?
如果没有,是否使用“接受空值”检查参数?您可以通过查询SSRS数据库中的ExecutionLog来查找传递的参数
SELECT [InstanceName]
,[ReportID]
,[UserName]
,[RequestType]
,[Format]
,[Parameters]
,[TimeStart]
,[TimeEnd]
,[TimeDataRetrieval]
,[TimeProcessing]
,[TimeRendering]
,[Source]
,[Status]
,[ByteCount]
,[RowCount]
FROM [ReportServer].[dbo].[ExecutionLog]
显然,您需要在SSRS门户上运行报表,而不是在VS或报表设计器中本地运行…它们被设置为从主报表接收值。我已将子报表的每个参数设置为从主报表传递一个值。“接受空值”不是这里的选项-必须填充参数。有什么方法可以让我看到实际传递给子报表的内容吗?顺便说一句,这最好作为对原始问题的评论而不是答案发布。“accept null value”是作为子报表使用的报表参数。如果所有参数都填充在主报表中,我看到的唯一一件事是确保从主报表到子报表的多值参数作为[@parameterName]传递,而不是“=parameters!parameterName.value”。@ErayBalkanli等等,你能在这里详细说明吗?使用上面的ClientStatus参数,编辑表达式时,最终表达式是
=参数!ClientStatus.Value
但是当我在子报表属性窗口的参数菜单中查看它时,上面的表达式转换为[@ClientStatus]
。我以前设置过这样的multiselect参数,效果很好。当您使用[@parameterName]或Join(Parameters!parameterName.Value)将参数从报表传递到子报表时,它是否解决了您的问题?你试过了吗?@ErayBalkanli是的,我试过两种版本。在这种情况下,这两种方法都不会产生渲染报告。令人惊讶的故障排除建议!泰!