如何使用一个参数运行SSRS并发送PDF报告,然后更改参数并运行并发送另一个报告?

时间:2016-07-13 18:23:26

标签: sql tsql reporting-services

enter image description here我在SSRS中创建了报告,该报告在特定时间订阅并发送PDF电子邮件。 我需要完全相同的报告,但参数不同。有没有办法让SSRS自动更改参数值,然后发出PDF报告?

我在哪里可以更改参数?

1 个答案:

答案 0 :(得分:0)

我会为此使用数据驱动订阅。数据驱动订阅的一个好处是,您可以对订阅进行有意义的描述,而不仅仅是" Mail发送给..."

设置数据驱动订阅时,步骤3会询问有效的SQL查询。对于sql查询中返回的每一行,都将执行该报告。在您的情况下,您的查询可以像

一样简单
select 'Value1' as ParamValue
union select 'Value2'

这将为您提供两行,每行具有不同的参数值。

在第4步中,您可以设置收件人,主题行等选项。请注意,所有这些选项也可以作为查询的一部分。

您可以在步骤5设置参数值,然后选择"从数据库中获取值"在下拉列表中,选择您的参数名称。

通过这种方式设置,报告将执行两次(对于步骤3的查询中返回的每一行一次)。

我使用datadriven订阅的主要内容之一是我必须向多个收件人发送相同的报告,但每个收件人的参数不同。例如,我们向所有销售代表发送销售报告。销售代码是报告的参数,但我也可以自定义订阅的其他设置。使用包含我们的销售代表数据的表格,我使用类似这样的东西

SELECT
    SalesRepCode
,   SalesRepEmail
,   'Sales report for ' + SalesRepName + ' - ' + SalesRepCode + ', as of ' + GETDATE() AS SubjectLine
FROM SalesRepTable

这将返回大约70行,每个销售代表一行。对于每一行,将使用SalesRepCode作为报表参数,SalesRepEmail作为收件人,将SubjectLine作为主题行生成报表。一个订阅,同一报告的70个版本。