【问题标题】:Is it possible to create a row that spans all columns of a Matrix in SSRS 2008?是否可以在 SSRS 2008 中创建跨越矩阵所有列的行?
【发布时间】:2011-05-01 10:47:00
【问题描述】:

是否可以在 SSRS 2008 矩阵中添加一行,跨越矩阵的所有列?

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

基本思想是每个行项目是一个人,每一列是该人的表单中的一个字段。字段本身是动态的(并作为矩阵上的列组实现)。包括其他列组以附加非动态表单字段,例如输入记录的时间和输入者。每个人的记录下面是一个 cmets 字段,它应该跨越它上面的所有表单字段。

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

编辑:这里的关键问题是使第二行跨越多列

【问题讨论】:

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


    【解决方案1】:

    您可以这样做:

    1. 在上方选择您要添加的列分组并右键单击并选择 添加组...父组...
    2. 按不会聚合数据的方式对列进行分组。您必须从数据集中选择一个字段进行分组,以便创建重叠的列分组。
    3. 选中添加组标题

    您现在应该会看到类似这样的内容:

    现在您只需将 Value1 字段和它的标题移到矩阵分隔符右侧的新列下方。完成后,只需删除您刚刚从中复制 Value1 的未分组列,并确保选中 Delete columns only 复选框。

    您的成品应如下所示:

    【讨论】:

    • 我相信问题是“我如何获得每个行组的标题”,而不是所有行的摘要统计信息。
    • "现在您只需将 Value1 字段和它的标题移到矩阵分隔符右侧的新列下方。"不清楚,能不能加点图片
    【解决方案2】:

    [编辑]

    经过多次尝试,我想说这在 SSRS 中是不可能的。我能想到的最好的方法是跨列 1、2 和 3 的组页脚,但不是用户列。

    [原始回复]

    我最近做了类似的事情。

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

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

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

    • 向提取“评论”列值的行添加一个表达式 (=Fields!Comment.Value)。

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

    【讨论】:

    • 我正在使用 Visual Studio 2008。矩阵在人员字段上已经有一个行组...您是不是想以某种方式添加另一个?当我添加一个新行时,它会显示在设计器中,每个列组都有一个单元格。我希望它为所有人提供一个单元格。
    • 突出显示该行中的所有单元格,右键单击,然后单击“合并”。
    • 不幸的是,当我选择了多个列组中的单元格时,合并单元格选项似乎不可用。我需要一个跨越多个列组的单元格......这似乎是这里的主要问题。
    • 经过几次尝试,我把这个扔了。现在我已经完全理解了这个问题,我也无法创建一个跨越分组列和详细信息列的组页脚。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

      • 谢谢 - 这是最好的解决方案。像魅力一样工作!
      【解决方案5】:

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

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

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

      【讨论】:

      • 触发了一个思考过程,希望能够解决我的问题,即如何在每个行组之后显示子报告,而不将其嵌入到单元格中。有一个 shell tablix 来控制分组,然后使用两个子报告可能会起作用。
      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多