ASP.Net报告查看器 - 使用不同的参数值多次报告相同的报告

时间:2012-06-21 11:20:21

标签: asp.net sql-server reportviewer reporting-services report-viewer2010

我目前正在开发一个ASP.Net WebForms应用程序,该应用程序允许用户使用Report Viewer 2010(在服务器模式下)从列表中选择项目,最终导致显示SSRS报告。该报告已使用参数@id进行编码,以允许报告显示所选项目的正确数据。

报告数据集可以返回多行,其中一些数据显示在顶部的摘要区域中(而不是在标题部分中),例如文本框将具有表达式=FIRST(Fields!Address.Value, "dsMain")。返回的数据是非规范化的,因此Address始终是相同的值。这就是使用FIRST()的原因。其余数据显示在Tablix中,并应用了分组等。

但是现在我想改变这一点,以便用户可以选择多个项目,因此可以多次有效地显示报告,但显示在同一报告查看器控件中。主要要求是批量打印报告,因此在一个报告视图控件中显示它对于允许一键打印所有内容非常重要。

现在因为我没有首先设计报告,因为它的布局和执行的sql相当复杂; sql适用于运行一个id而不是它们的列表。我正在寻找不必重写报告或sql的选项。

是否可以为报表查看器提供id参数作为列表,并让报表查看器为每个传递的ID执行相同的报表? - 我知道报表参数可以接受多个值,但这不是'同样,因为报告将非智能地将第一个值传递给我的存储过程,但不会为其他值重复报告。 也许报表设计器中有一个设置允许它在传递多个值时重复?

有人可以建议别的东西让这个工作吗?或者我是扩展报告和SQL以接受多个ID并有效重新设计报告的唯一选择?

感谢您的任何建议或帮助。

1 个答案:

答案 0 :(得分:2)

答案是使用sub-reports

创建一个新的报告,将一个id列表作为多值参数。

使用该参数作为列表控件的数据集。

在列表中有一个子报告。列表中的报告是您的原始报告。

然后,您可以将数据集的每个元素(参数列表)传递为parameter to the your sub-report。 SSRS会根据您的需要重复它。