合并本地呈现的 Microsoft 报表中的单元格

Combining Cells in Locally Rendered Microsoft Report

我的报告中有一个基本的 Tablix,目前呈现如下:

这些是制造过程中的步骤,执行这些步骤的人员的时钟编号以及执行日期在最后两列中。但是,有时步骤会合并在一起执行。在上面的示例中,步骤10-20一起执行,30-40一起执行。所以我真的很想像这样呈现报告:

我的数据中确实有一个名为 "StepRange" 的列,在上面的示例中,前两行为“10-20”,第三行和第四行为“30-40”。因此,当 StepRange 的值相似时,我知道这些行是一起执行的,因此以后应该合并最后两列。我的例子显示一次只合并两行,但它可以是任何数字。

如何使我的报告看起来像上面的第二个示例而不是第一个?

单一 Tablix 方法

您可以使用表达式设置文本框的边框样式来实现类似的效果,而不是文字条件合并。有几个步骤,但其中 none 个特别涉及。

  • 为 StepRange 创建一个 parent 组。不要添加 header 或页脚,并在不删除组的情况下删除添加的列。

  • 确保您的属性面板在屏幕右侧可见。如果没有,请选中“查看”功能区下的 "Properties" 复选框。

  • 单击您的第一个详细信息文本框并展开 "BorderStyle" 属性。将 "Top" 属性 设置为以下表达式:

=IIF(RunningValue(Field!Step.Value,CountDistinct,"StepRange")>1, "None", "Solid")
  • 将底部 属性 设置为 "None"。

  • 设置详细信息TextBox本身的表达。

用适当的字段替换 FIELDNAME:

=IIF(RunningValue(Field!Step.Value,CountDistinct,"StepRange")>1, "", Field!FIELDNAME.Value)
  • 对每个详细信息文本框重复此过程。

  • 如果您没有汇总行,您可能需要在底部创建一个顶部带有黑色边框的虚拟行。 (可选)

对于每个 StepRange 组中的第一个 Step 值,表达式的计算结果仅为 "Solid",因此后续行没有上边框并且显示为未分割。

嵌套 Tablix 方法

使用嵌套的 Tablix 更直接。我遇到了一些问题,包括一些渲染问题。但在一份如此简单的报告中,可能根本不是问题。

  • 将您的主要 Tablix 设置为在 StepRange 上分组。
  • 为各个步骤清除或在左侧添加一列。
  • Select "Insert Table" 从工具栏中单击空白单元格。
  • 将单元格设置为您的步骤和操作字段并删除多余的列。

结果大致如下所示:

  • 默认情况下,内部 Tablix 将进行详细分组。如果您的详细信息行比 "Step" 字段更细化,请转到“(详细信息)”组的属性并为步骤添加一个组表达式。

  • 如果您不想在报告中看到重复的 header 行,您也可以删除它。

这会导致员工字段实际合并并正确间距。如果您不对这些字段使用聚合函数,它们的值将是内部返回的第一行的值。如果它们的值在各个步骤中是统一的,那是没有实际意义的。