我有一份SSRS报告,根据业务功能发送给不同的用户组。我需要订阅才能更改发件人地址,具体取决于报告的发送对象。例如,当报告针对财务组时,它应该从Finance@example.com发送,但是当它用于采购组时,它应该来自ProcurementAdmin@example.com。
目前,报告仅从订阅设置的from
字段中配置的地址发送。
我曾经在某个帖子中读过一次,在订阅表中更改所有者ID会这样做 - 但这对我没有任何改变。
有没有办法让SSRS订阅中的起始地址动态化?
我使用的是SQL Server和SSRS 2008 R2。
答案 0 :(得分:2)
执行此操作的最简单方法是创建与配置的地址不同的多个订阅。但是,如果您拥有SQL Server的企业版或商业智能版,则有更好的方法。
您可以使用数据驱动订阅来完成此操作。这允许您使用SQL查询设置所有订阅选项。 您需要SQL Server的企业版或商业智能版才能使用数据驱动的订阅。
我假设您的报告采用参数来确定报告的类型(例如财务,采购等)
首先转到报告的“订阅”部分,然后创建新的数据驱动订阅:
然后,您将为将返回订阅信息的SQL查询配置数据源。 注意:这实际上不必依赖数据库中的表,如果适合您,可以合成SELECT
语句中的所有值。
您可以使用与此类似的查询来获取所有设置:
SELECT 'finance' AS type,
'finance_report_people@example.com' AS rcptAddr,
'FinanceAdmin@example.com' AS fromAddr
UNION ALL
SELECT 'procurement',
'procurement_report_people@example.com',
'ProcurementAdmin@example.com'
然后,接下来的两个屏幕允许您使用此查询确定的值来设置订阅的各种选项。在这种情况下,您可以将参数值设置为type
字段,to
值将使用rcptAddr
字段,您可以使用fromAddr
设置from字段。< / p>
通过这种方式,您可以根据您传递给报告的参数值配置具有不同收件人,回复地址,地址,主题等的动态订阅。