同一页面上有单独分组的两个列表

问题描述 投票:0回答:1

我正在构建一个包含两个列表的分页报告,每个列表都与数据集中的不同表相关联。这些表没有直接关系,因为它们都是单独的事实表,但它们共享一个公共字段:程序名称。每个列表都包含按此字段分组的视觉效果。

我想要实现的目标:

报告的每一页都应显示同一营销计划名称垂直堆叠的两个列表。

例如:

  • 第1页:列表1(营销计划名称A)+列表2(营销计划名称A)
  • 第2页:列表1(营销计划名称B)+列表2(营销计划名称B)
  • 第3页:列表1(营销计划名称C)+列表2(营销计划名称C)

当前行为:

  • 第1页:列表1(营销计划名称A)
  • 第 2 页:列表 1(营销计划名称 B)
  • 第 3 页:列表 1(营销计划名称 C)
  • 第 4 页:列表 2(营销计划名称 A)
  • 第 5 页:列表 2(营销计划名称 B)
  • 第 6 页:列表 2(营销计划名称 C)

我真的很难弄清楚这一点,并且真诚地感谢更有经验的人提供的任何帮助。谢谢!

reporting-services ssrs-2008 reportbuilder3.0 reportbuilder powerbi-paginated-reports
1个回答
0
投票

我通常构建这样的东西的方法是使用主(主)报告和子报告。

这是根据记忆完成的,因此可能不是 100% 准确,但应该足够接近以遵循

子报表将接受一个参数,在您的情况下可能是程序名称,并且只能显示该单个程序名称的数据。

因此,从构建此报告开始,根据您的描述,它只是一个页面,假设它有一个名为

prog_name
的参数。构建您的报告对象/表格/图表或其他内容,并确保您的数据集查询仅返回特定参数值的数据。因此,在您的情况下,您可能有两个数据集,每个数据集对应一个报表对象,查询将类似于
SELECT * FROM myFirstTable WHERE progname = @prog_name
.

通过传递不同的参数值来测试报告,一旦您满意,就保存报告。假设它保存为

_sub_MyReport

现在创建一个新报告。创建一个仅返回程序名称列表的数据集。所以查询可能就像

SELECT DISTINCT progname FROM myTable ORDER BY progname
一样简单。

现在向报告添加一个表格并删除除一列之外的所有列。使剩余的列足够宽以容纳您的子报表(只要小于正文宽度就可以了),高度并不重要。

接下来,我们需要将此表与您的数据集关联起来,因此您可以在表属性中执行此操作,也可以将

progname
列从数据集中拖动到我们的单个列上。

现在在表格“单元格”(文本框)中删除任何已存在的内容(如果将字段拖动到上面的表格),然后右键单击此文本框并执行插入/子报表。插入子报表控件后,右键单击它,然后单击属性,然后在“要使用的报表”中选择我们之前创建的子报表,

_sub_MyReport
。在参数选项卡上选择参数
prog_name
(如果下拉列表中未显示,则输入该参数),然后对于值,单击文本字段右侧的按钮并导航到您的数据集并选择
progname
领域。

最后,在主设计器下方的行组面板中,右键单击行组(应该只有一个),然后在属性中将分页符设置为“Between”。

应该是这样。

因此,当您运行报告时,主报告将查询数据库并返回程序名称列表(例如,根据您的示例,其中有 3 个),并且对于每一行,它将生成一个表行。每个表行中都会有一个子报表,

progname
的值将依次传递给每个子报表。

© www.soinside.com 2019 - 2024. All rights reserved.