【问题标题】:SSRS using List Control to produce multiple page reportSSRS 使用 List Control 生成多页报告
【发布时间】:2017-07-30 18:09:46
【问题描述】:

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

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)。

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

【问题讨论】:

    标签: reporting-services listcontrol


    【解决方案1】:

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

    1. 根据需要添加表格
    2. 基于 Col1 的组
    3. Add page breaks before each instance of a group(见最后一节)
    4. Repeat the group headers on each page

    附带说明,我认为步骤 2 也可以在您当前拥有的列表上执行,也可以有效解决您遇到的问题。如果您对 Col1 中的每个值(标题、图像、图例等)有多个表,这可能是首选选项。

    【讨论】:

    • 谢谢你的回答,杰伦
    【解决方案2】:

    我已经这样实现了报告:

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

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

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多