触发SSRS数据驱动订阅 - 提供参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了触发SSRS数据驱动订阅 - 提供参数相关的知识,希望对你有一定的参考价值。
我有一个接受日期参数的SSRS(2016)报告。用户选择日期并运行报告并为每个客户返回一页。该报告还有一个数据驱动的订阅,当触发时,通过电子邮件发送与客户相关的输出。
我目前的方法是有一个只有一些用户可以看到的文本框,然后单击文本框会触发订阅。我是这样做的:
当用户单击“查看报告”按钮时,将用户选择的参数插入表中,然后使用以下内容触发订阅:
EXEC msdb.dbo.sp_start_job @job_name ='job name to be sent out'
然后,订阅/报告的数据集使用插入表中的参数来完成它。一切正常。
当多个人运行报告时出现问题。第二人触发器可能会过度写入第一个人参数插入,导致发送错误的数据集。
我的问题是..是否有更好的方法来触发数据驱动的订阅,其中报告需要参数值 - 但参数值不能预先确定?
如果我的方法可以接受,我怎样才能消除参数值的覆盖?
更好的是,我如何确定正确的参数并将其传递给订阅?例如会话ID /用户ID ..等,
欢迎任何想法或替代实施..
我之前遇到过同样的问题,在从另一个用户处理过程中会覆盖默认表值。我解决它的方法是在HOST_ID或HOST_NAME的默认表中添加一列。这有点痛苦,因为你已经将该参数传递给报告。
SELECT HOST_ID(), HOST_NAME()
要么
在报表参数中,您可以使用以下表达式默认值来获取当前用户。
=Right(User!UserID, Len(User!UserID)-instr(User!UserID, ""))
- 注意:如果将此设置为报表变量,则数据驱动的订阅将失败。作为参数,它将起作用。
以上是关于触发SSRS数据驱动订阅 - 提供参数的主要内容,如果未能解决你的问题,请参考以下文章
SSRS 2008 R2-格式参数为DD / MM / YYYY
将Guid传递给SSRS 2008 Url Access参数