Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSRS“;“失去”;传递给子报表的参数_Sql_Sql Server_Reporting Services_Ssrs 2012 - Fatal编程技术网

Sql 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错误:处理子报告时出错。详细信息:未为子报

我已经在SSRS中建立了许多报告。这些报告中的每一份都设计得很好,并按预期工作

有人要求将这些报告中的一些报告绑定到一个“主”报告中。我已经将工作报告设置为子报告,并填充了“主”报告中第一个子报告的所有参数。我已经核实并再次核实了这一事实

当我尝试运行报告时,处理时间似乎过长。代替第一个子报表,SSRS呈现
错误:无法显示子报表。

我检查了日志文件,发现一个错误:
处理!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是的,我试过两种版本。在这种情况下,这两种方法都不会产生渲染报告。令人惊讶的故障排除建议!泰!