SSRS 报表生成器子报表排序



我有一个包含 20 个子报告的 SSRS 报告。每个子报表代表特定周期中的一个阶段。所有子报表的格式等都相同,包含该阶段的特定数据并显示开始和结束日期。我想知道报表生成器中是否有一种方法可以让这些子报表是动态的,并根据其特定的开始日期进行排序,而不仅仅是显示我在报表中列出的子报表?

这很简单。

您已经有了主报表和子报表,所以这很好。我假设您的子报表采用指示阶段的参数。

假设这一点,假设您的子报表接受的参数称为pPhase

  1. 在主报表中,移除所有现有的子报表
  2. 接下来,创建一个数据集,我们称之为dsLoop
  3. dsLoop数据集查询设置为按顺序返回阶段,例如SELECT DISTINCT PhaseNumber from myTable ORDER BY PhaseNumber
  4. 现在添加一个表控件,删除标题行和两列,只留下一个单元格。
  5. 根据需要使此单元格尽可能宽,宽度足以容纳您的子报表,高度无关紧要。
  6. 将表的DataSetName属性设置为dsLoop
  7. 在其余单元格中,右键单击并选择"Insert --> Subreport"。子报表控件将填充单元格。
  8. 右键单击子报表控件并选择Subreport Properties,从列表中选择您的子报表
  9. 仍在子报表属性中,单击参数选项卡,添加新参数。
  10. 将"名称"设置为子报表接受的参数名称(pPhase在我们的 示例)。最后,将 Value 设置为包含以下内容的字段的名称 您的参数数据(在我们的示例中PhaseNumber)

就是这样。。。

现在,当您的主报表运行时,将在表中为dsLoop中的每个条目创建一行,每行将包含您的子报表,并且每行都将传递特定于每一行的参数。

如果您有任何问题,请告诉我,我将发布一个完整的示例。

最新更新