首页 > 解决方案 > SSRS 打开带有提供参数的子报告

问题描述

我有一个包含 5 个参数的报告,我想从此报告中打开另一个包含 13 个参数的报告。当我尝试打开此报告时,它说缺少一些参数。我想知道是否有可能,如果我不传递参数,那么它应该在报告和 SQL 查询中忽略这些参数(所有这些都是多值参数)。我不能使用“允许空值”,因为这些是多值参数。

这是主要报告

这些是我要调用的子报告中的参数

有人能帮助我吗?或者我每次都需要使用精确的参数创建单独的子报表

标签: reporting-servicesssrs-2008ssrs-2012ssrs-2008-r2reportingservices-2005

解决方案


有两种常见的方法可以做到这一点。

使用列表默认值填充参数 在您的子报告中,以@service 为例。如果您可以从数据库中获取服务列表,则创建一个数据集以提供不同服务的列表,将其用作参数的默认值。然后,当您不从主报表传递任何内容时,子报表将使用所有服务。

将默认参数值设置为固定常量 另一种选择是将子报表参数设置为默认值,例如*all,然后在将其传递给子报表的数据集查询时进行处理。

所以数据集查询可能类似于

SELECT *
  FROM myTable
  WHERE location in (@location)
    AND (service = '*All' OR service IN(@Service)

推荐阅读