我是不是可以在按 ID 分组的 tablix 行中包含子报表?
Posted
技术标签:
【中文标题】我是不是可以在按 ID 分组的 tablix 行中包含子报表?【英文标题】:Is it possible for me to include a sub report in a tablix row that is grouped by an ID?我是否可以在按 ID 分组的 tablix 行中包含子报表? 【发布时间】:2014-07-14 19:51:36 【问题描述】:我是否可以在按 ID 分组的 tablix 行中包含子报表,并将该 ID 传递到要运行的子报表中?基本上,子报告会根据主 tablix 分组中使用的 ID 从第二个数据集中返回数据?
我的主 tablix 有 4 行,它们按 ID 分组在一起,我在其中从主数据集创建了一些图表。我的第二个数据集返回每个 ID 可以包含数百行的模拟,这就是为什么我不想在 join 语句中执行此操作,因为它非常低效。我想在我的主 tablix 中的第 5 行添加一个 tablix 并显示来自 dataset2 的结果,但只让它在当前的 Tablix1 组中运行。
Dataset1 与此类似,主 tablix 中的每个组都有一个唯一的 iGoalID。
Dataset2 看起来像这样;
我希望能够遍历 DataSet2 并显示数据,但只能按与 dataset2 的 iGoalID 相等的主 tablix iGoalID 分组
【问题讨论】:
【参考方案1】:您必须将子报表构建为单独的报表 .rdl 并构建它以接受 ID 参数。将 ID 参数添加到父报表后,您将其传递给子报表。构建、测试和保存子后...使用主选项卡上的 Insert-> Subreport 将其添加到主报告中。您应该能够在设计视图中选择您希望子报表所在的单元格并将子报表插入其中。
指定要传递给子报表的参数
-
在设计视图中,右键单击子报表,然后单击子报表
特性。
-
在“子报表属性”对话框中,单击
参数。单击添加。一个新行被添加到参数网格中。
在名称文本框中,键入子报表中的参数名称或
从列表框中选择它。此名称必须与报告匹配
子报表中的参数,而不是查询参数。
在“值”列表框中,键入或选择要传递给子报表的值。这
value 可以是静态文本或引用字段的表达式或
主报告中的其他对象。
【讨论】:
谢谢你,致命的,我昨晚真的按照你的描述想出了这个,谢谢你为我把它变成了文字,你知道的几乎在你睡觉时会想到的事情之一!这肯定会在未来的 .rdl 报告中 100% 帮助我 这听起来可以解决问题,对于任何考虑在 tablix 中嵌套子报表的人来说,我要补充的是,随着行数或报表复杂性的增加,性能会迅速下降,【参考方案2】:第 1 步:添加新报表并使用数据集填充数据(前报表名称:: 子报表)
第 2 步:创建另一个新报表并使用数据集填充数据(Ex Report Name :: Main_Report)
第 3 步:现在您要使用子报表的行单元格,选择该单元格并右键单击 ---> 插入 --> 在特定单元格中添加子报表。
第 4 步:然后右键单击该单元格并转到 ---> 子报表属性并在下拉列表中选择正在使用的报表(子报表名称)。不要使用其他属性,现在可以预览主报表。
第 5 步:现在您可以在指定的列中查看完整的报告数据。
第 6 步:但是您使用的是基于主键的参数,此时您必须牢记一个想法。仅使用主报告参数传递给子报告相同名称的参数名称。此参数应在主报告和子报告中具有参考列。
第 7 步:试试这个,如果有任何疑问,请回复我,我会澄清的。
【讨论】:
以上是关于我是不是可以在按 ID 分组的 tablix 行中包含子报表?的主要内容,如果未能解决你的问题,请参考以下文章
s-s-rS - 计算 tablix 列分组中的空白单元格?
Laravel Query Builder 在按 ID 分组的查询中按子查询减去 COUNT