【问题标题】:Dynamically Set the to Address in SSRS reports Subscription在 SSRS 报告订阅中动态设置地址
【发布时间】:2015-05-19 06:43:42
【问题描述】:

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

【问题讨论】:

    标签: reporting-services ssrs-2012


    【解决方案1】:

    听起来您需要设置一个数据驱动订阅,该订阅可用于 SSRS 2012 企业版。

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

    当您创建数据驱动订阅时,您有机会创建另一个可用于收件人的 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
    

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

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

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

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

    【讨论】:

    • 但是我得再写一组查询对吧?我无法使用报表数据集中的查询结果。我还需要过滤掉数据集并将分配给用户的项目发送给该用户。
    • 是的,您必须编写更多脚本,我已经更新了答案以获得更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 2011-05-17
    相关资源
    最近更新 更多