我想做的事应该很简单。我之前从未使用过SSRS变量,这可能是一个非常好的解决方案。但这对我来说目前不起作用。我有一个包含多个子报告的父报告。父报告仅返回6列,在这种情况下,只返回2行。在这两行中都有一个名为Program的列,它恰好是两行的相同值。现在我想将此程序值传递给我的一个子报表。我不知道为什么SSRS不允许我传递此值,但是当我为此子报表配置参数值时,我选择了父数据集和此程序字段。但是当我尝试运行父报告时,此子报告有错误:
Data retrieval failed for the subreport, 'Subreport1', located at: /Incoming/Risk Assessment 25mar13. Please check the log files for more information.
那么我想我会自己测试这个子报告,看看是不是问题。但是当我使用来自父报告的程序值运行此子报告(风险评估25mar13)时,它生成了0条记录。但是,当我选择“全部”程序时,此子报表确实显示了数据。如何将父报表数据集中的值传递给其中一个子报表?我在子报表上尝试了此表达式的Program参数值:
=Fields!program_providing_service.Value
但是父报告仍然存在此错误或超时。虽然当我使用相同的程序值运行此子报表时,它只在几秒钟内呈现。所以我认为子报告不是问题所在。
另一个注意事项是父报告有一个Tablix。此Tablix有一个行组,覆盖整个Tablix。而这个sureport占据了这些Tablix行之一。此行组在“event_log_id”字段上的父报表数据集的字段上分组。但是,此子报表没有event_log_id作为其参数值之一。
但是父报表数据集确实具有发送到子报表的其他值,包括“程序”字段值。我知道我正在将父报告中的正确值发送到此子报告,因为我在父报告的文本框中创建了表达式,以显示父数据集中的第一个字段记录。除了一个DATETIME值之外,这些字段记录都是UNIQUEIDENTIFier值。
我还尝试将子报表参数值设置为:
=First(Fields!program_providing_service.Value, "DataSetName")
表示每个参数,因为父数据集中有多个记录。
答案 0 :(得分:3)
在两个报告上设置公共参数。如果您使用一个Team作为参数。当您在报告中保留子报告时
转到子报告属性--->参数 - >添加参数使用值命名确切参数,然后单击“确定”。
这将使报告运行