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

Dynamically Set the to Address in SSRS reports Subscription

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

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

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

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

如果你的过程是这样创建的(你的可能会更复杂一些......)

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

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

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

不过,您可以直接在上面的框中输入脚本。

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