是否可以在SSRS 2008中创建跨越Matrix的所有列的行?

时间:2010-10-27 17:07:51

标签: ssrs-2008 reporting-services ssrs-grouping ssrs-tablix

是否可以向跨越所有矩阵列的SSRS 2008 Matrix添加行?

这张粗略的图表大致显示了我正在寻找的内容:

visual example of the matrix layout I'm looking for

基本思路是每个订单项都是一个人,每个列都是该人的表单中的字段。字段本身是动态的(并在矩阵上实现为列组)。包含附加列组以附加非动态表单字段,例如输入记录的时间和输入记录的人员。在每个人的记录下面是一个注释字段,它应该跨越它上面的所有表单字段。

目前我将矩阵嵌入另一个tablix中,矩阵中的名称和字段以及父Tablix中的注释。这适用于数据(矩阵的每个实例最终都是一行),但标题经常重复(每人一次),因为它附加到矩阵。关于如何解决这个问题我唯一想到的是在父tablix中使用相同的分组创建另一个矩阵并使用它来显示标题......但这需要相当多的手动同步来保持两个矩阵相同。

修改:此处的关键问题是使第二行跨越多列

6 个答案:

答案 0 :(得分:11)

以下是您可以做的事情:

  1. 选择要在上方添加的列分组,然后右键单击并选择 添加组...父组...
  2. 按不会聚合数据的内容对列进行分组。您必须从数据集中选择一个字段进行分组,以便创建重叠的列分组。
  3. 选中添加群组标题
  4. 您现在应该看到类似的内容:

    Matrix with columns

    现在您只需将Value1字段及其标题移到矩阵分隔符之外的新列下方。完成后,只需删除刚从中复制Value1的未分组列,并确保选择仅删除列复选框。

    您的成品应如下所示:

    enter image description here

答案 1 :(得分:5)

<强> [编辑]

经过几次尝试后,我会说这在SSRS中是不可能的。我能想出的最好的是一个组页脚,它跨越1,2和3列,但不包括用户列。

[原始回复]

我最近做了类似的事情。

首先,您使用什么工具来创建SSRS报告? (我使用的是SQL Server商业智能开发工作室)

  • 您需要创建一个行组(在Person上分组)

  • 在“设计”视图中向您的表格添加一行(右键单击,“插入行 - &gt;内部组 - 下方”)。

  • 将表达式添加到为“Comment”列提取值的行(= Fields!Comment.Value)。

如果有帮助,请告诉我......

答案 2 :(得分:5)

尝试使用分组表达式(1 = 1)添加列组“header”。然后需要定义一个详细信息字段。如果您使用正确的数据定义另一个组,那么“标题”将覆盖所有详细信息列。您可能需要根据其他选项进行合并。

答案 3 :(得分:5)

有可能 - 以上答案是部分答案,省略了一个关键步骤:合并子行的单元格。

首先,右键单击您的分组行,然后选择Insert Row -> Inside Group - Below,您将获得两行,其中单元格在列上对齐

其次, ctrl 单击新行中的所有单元格(即没有数据的行),然后右键单击其中一个突出显示的单元格,然后选择Merge Cells

现在你有了自己喜欢的桌子。要向新行添加值:首先右键单击新(多列)单元格,选择Create Placeholder,然后将所需的数据集项添加到占位符。

答案 4 :(得分:2)

最简单的方法是创建一个只有一列的Tablix和行分组。 然后,在该组内创建两行。 在组内的第一行中,您插入一个矩阵,然后您可以根据需要进行子组。

我遇到了类似的问题,这是我的解决方案。

我把头撞到了墙上很长一段时间,直到我意识到我的问题的解决方案不是“让一个单元跨越多个列组”,而是“将一个单元格分成多个列组”。 / p>

答案 5 :(得分:0)

您可以通过为每个人使用子报表来实现目标。子报表将接收员工ID并为您创建层次结构。确保您的子报表列的宽度与父报表的宽度匹配。