动态设置SSRS报告订阅中的地址

时间:2015-05-19 06:43:42

标签: reporting-services ssrs-2012

我显示了一个带有分配给的字段的项目列表,它们是电子邮件地址。现在,我已经设置了具有分配给电子邮件地址的不同列表的订阅,并将整个项目列表发送给所有用户。我只想将分配给特定用户的项目发送给该用户;而不是必须将所有项目发送给所有用户。 这可以在SSRS中完成吗?我必须动态设置To地址,并过滤掉结果数据集。

1 个答案:

答案 0 :(得分:3)

听起来您需要设置SSRS 2012企业版的数据驱动订阅。

使用User参数创建报告,该参数将创建附加到电子邮件地址的项目列表。

然后,当您创建数据驱动订阅时,您将有机会创建另一个可用于收件人的SQL语句,并将值作为参数传递给报表。

如果你的proc被创建了(你的可能会更复杂......)

CREATE PROC GetAssigned 
          @EmailAddress nvarchar(255)
As

IF @EmailAddress is Not null
    SELECT EmailAddress,Item1,Item2
    FROM MyTable
    WHERE EmailAddress = @EmailAddress
ELSE
    SELECT DISTINCT EmailAddress FROM myTable

您可以在报告中运行此proc作为数据驱动订阅,以获取要发送的电子邮件地址列表以及作为报告的参数。 (虽然您可以将SELECT DISTINCT查询添加到下面的框中,而不是将其添加到proc中?)

设置订阅(企业版,对吧?)

enter image description here

虽然,您可以在上面的框中输入脚本。

SELECT DISTINCT EmailAddress from MyTable
  • 然后在输入收件人的下一个屏幕上使用proc
  • 返回的值

enter image description here