Reporting services 访问主报表-SSRS中的子报表值

Reporting services 访问主报表-SSRS中的子报表值,reporting-services,ssrs-2008,ssrs-2008-r2,ssrs-2012,ssrs-2014,Reporting Services,Ssrs 2008,Ssrs 2008 R2,Ssrs 2012,Ssrs 2014,我在子报告中有一个主报告 使用reporting services,如何从子报表获取主报表的值 根据主报告的tablix数据,我正在调用sub report。例如,我在主报表上有tablix,它将@Number值传递给子报表,以获取一些子记录,我希望总值的总和返回主报表。我怎样才能做到这一点 我试图制作一个对我没有帮助的数据集。每次都得到0个计数 通过在主报表上创建子报表数据集,我在主报表上使用了下面的表达式 =COUNTROWS("SubReportDataset") 然而,我并没有找到任何

我在子报告中有一个主报告

使用reporting services,如何从子报表获取主报表的值

根据主报告的tablix数据,我正在调用sub report。例如,我在主报表上有tablix,它将@Number值传递给子报表,以获取一些子记录,我希望总值的总和返回主报表。我怎样才能做到这一点

我试图制作一个对我没有帮助的数据集。每次都得到0个计数

通过在主报表上创建子报表数据集,我在主报表上使用了下面的表达式

=COUNTROWS("SubReportDataset")

然而,我并没有找到任何在报表中有效的解决方案,请帮助。

如何通过直接引用子报表来实现这一点

据推测,您可以:

我在过去见过对这类事情的引用,但我从未能够让reportItems引用(或这类事情)以我想象的方式始终如一地工作

当然要记住,您所引用的子报表可能重复了多次,您会使用上面的引用提取给定子报表的哪个实例?我想你会发现这件事太麻烦了

我建议您如何处理它

正如我上面所说的,我认为直接引用子报表即使不是不可能,也是很困难和不可靠的。相反,您声明将@Number传递到子报表中。如果您正在使用子报表中的视图或函数来基于@Number提取数据,那么您可以轻松地在主报表中嵌入相同的逻辑和聚合函数。这样,您可以从主报表中的查询中引用聚合值,该查询使用与子报表相同的计算和数据

如果您的子报表未使用视图、函数或共享数据集,并且您不能(或选择不使用)视图、函数或共享数据集(请注意,为了强调起见,我列出了它们两次),那么您将无法在主报表中重新生成SQL查询并调用查询逻辑并在主报表中聚合它。这可能是一个维护噩梦(在我自己的组织中,我正积极尝试将其最小化),因为您必须在两个地方维护相同的SQL逻辑。也就是说,根据子报表中SQL查询的复杂程度,可以很容易地完成


如果你有问题,请留下评论,我会尽力帮助你。

是的,我在主报告上有一个分组,有
Number
列,而且,我可以将所有数字以
102103104
的格式(通过使用lookupper和Join)显示,但我还是被卡住了!如何将此值传递到主报表的数据集。例如:我在主报表的一个文本框中设置了“102103104”,并创建了一个新的数据集来获取总计数。但我不知道如何将这个值作为参数传递给新的数据集。请帮忙,谢谢你的回答!不能将值从文本框传递到数据集。数据集在呈现报表正文之前运行。但是,您可以做的是:假设数据集A包含数字。将CTE或临时表添加到数据集a,该数据集a包含子报表中与数据集a中检索到的所有数值相关的相同数据。然后,您可以连接到数据集a中的该CTE或临时表,并在记录级别对该CTE或临时表运行聚合(然后可根据需要在tablix中进行分组和合计)。这有意义吗?是的,我知道了,我昨天也做了同样的事情,你今天提到的。我制作了不同的数据集,将子报表数据集的逻辑混合到新创建的数据集中,只返回了我所寻找的聚合值。但是报表服务应该提供一些方法来获取主报表上的子报表值……无论如何,我真的非常感谢谢谢你。。。
[Reports]![YourReportName]![YourSubReportName]![TheValueFromTheSubReportYouWantToReference]