0

我必须创建一个由几个页面组成的报告,每个页面都包含一个表格。报表数据集如下所示:

Col1 | Col2 | Col3 | ...
-----+------+------+----
Val1 | xxxx | xxxx | ...
Val1 | xxxx | xxxx | ...
Val1 | xxxx | xxxx | ...
Val2 | xxxx | xxxx | ...
Val2 | xxxx | xxxx | ...

对于该数据,报告应该有两页(一页用于 Val1,一页用于 Val2)。在每一页上都应该有一个表格,其中包含 Col2、Col3 等的相应值。

我正在尝试使用带有表或子报表的列表控件来解决这个问题。我遇到的问题是该列表对 Val1 重复 3 次,对 Val2 重复 2 次(不能在 Col1 上指定 DISTINCT)。

您能告诉我使用带有表或子报表的列表控件是正确的方法吗?我应该使用两个不同的数据集还是有办法使用单个数据集?

4

2 回答 2

1

我已经这样实施了报告:

  • 只需要一个数据集(如上例所示)
  • 报表需要两个报表:MainReport 和 SubReport
  • MainReport:引用使用存储过程和数据的共享数据集。它包含一个在 Col1 上具有 RowGrouping 的列表控件。每行都包含一个 SubReport 引用并将当前 Col1 值传递给它。
  • 子报表:使用相同的存储过程,但作为嵌入数据集而不是作为共享数据集(共享数据集检索导致错误)。数据集由 Col1 值过滤以等于 MainReport 的参数。子报表包含一个使用该数据集数据的表格。

在我的实现中,MainReport 有一个在每个页面上重复的报告标题。或者,您可以在列表控件上定义标题并指定它在每一页上重复。

于 2013-01-08T13:34:55.763 回答
1

以下步骤可能更容易,因为它不需要额外的包含列表:

  1. 根据需要添加表格
  2. 基于 Col1 的组
  3. 在组的每个实例之前添加分页符(参见最后一节)
  4. 在每一页上重复组标题

作为旁注,我认为步骤 2 也可以在您当前拥有的列表上执行,也可以有效地解决您遇到的问题。如果您拥有的不仅仅是 Col1 中每个值的表格(标题、图像、图例等),这可能是首选选项。

于 2013-01-08T11:40:24.653 回答