每个选定参数的SSRS新页面

时间:2017-10-17 11:24:00

标签: reporting-services parameter-passing grouping

我有一个使用3个数据集的报告,并且在报告中使用了多个表格和文本框和表达式。当我运行报告时,我必须选择一个参数,在这个例子中是' City'。

我想为每个城市(参数)创建一个新页面,我已阅读过使用分页符和分组但我从工具箱中选择了一个列表并将其放在我的报告之上,选择了2'城市&#39 ;并预计它将返回2页,但它返回49页(多数空白)

我希望每个城市有一个单独的页面,我该如何实现?

由于

1 个答案:

答案 0 :(得分:0)

如果我理解正确(很难确定你是否发布了当前的设计),那么你最好使用子报告。

我假设城市位于数据库的一个表中,并且每个都有一个唯一的ID。如果您只有名称,那么您可以使用CityName来代替CityID,它仍然可以使用。

创建新报告。 创建新数据集(比如dsSelectedCities和设置数据集查询到类似......

SELECT CityID, CityName FROM myCitiesTable WHERE CityID IN (@CityParameter)

这将自动生成一个名为@CityParameter的报告参数。像在原始报告中一样设置可用值等,因此如果您需要为此添加其他数据集,请执行此操作。在此示例中,我假设标签为CityName,值为CityID。无论进入价值观是什么,都将传递给我们的子报告。

现在为您的报告添加一个表,它只需要一列宽一行,所以只需删除任何其他行和列,只需确保留下详细信息行而不是标题。

将表格的数据集设置为dsSelectedCities

使剩下的单元格足够宽以容纳子报表(这将是您最初编写的报表)。

在单元格中,插入子报表 将子报表属性设置为指向原始报表,并将参数设置为CityID 字段

此表将作为循环,对于dsSelectedCities中找到的每条记录,它将为我们提供一行。由于每行都有一个CityID,我们将其传递给子报表,子报表依次显示一个城市。

在详细信息组上设置分页符选项以在实例之间中断。

您可能需要修改原始报告以接受单个CityID,这取决于它的设计方式,但希望这可以帮助您实现目标。

如果不清楚,请发布您当前的报告设计,包括有关参数的所有详细信息,我会更新答案。