我显示了一个带有分配给的字段的项目列表,它们是电子邮件地址。现在,我已经设置了具有分配给电子邮件地址的不同列表的订阅,并将整个项目列表发送给所有用户。我只想将分配给特定用户的项目发送给该用户;而不是必须将所有项目发送给所有用户。 这可以在SSRS中完成吗?我必须动态设置To地址,并过滤掉结果数据集。
答案 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中?)
设置订阅(企业版,对吧?)
虽然,您可以在上面的框中输入脚本。
SELECT DISTINCT EmailAddress from MyTable