SSRS中的条件报告

时间:2013-05-03 12:38:11

标签: reporting-services ssrs-2008

我有一个以纯模式运行的SSRS 2008服务器。我想弄清楚以下是否可行,如果可行,该怎么做。我希望有一个预定的订阅,只有在满足某些条件时才会生成报告。为我表达条件的最自然的方式是,如果特定查询返回数据。这可能吗?

所以基本上我会定期检查数据库,如果有一些数据(比如在错误日志中),请发送一封电子邮件。

经过一些研究后,我发现了这个链接: http://blogs.msdn.com/b/bimusings/archive/2005/07/29/445080.aspx 人们在评论中提供以下技巧:

IF NOT EXISTS ( SELECT * FROM ....)

RAISEERROR('no records found,'16,1

ELSE

SELECT * FROM ....

我可以使用它来生成要发送或发送错误的电子邮件。问题是我的报告包含在存储过程中,你不能使用IF NOT EXISTS和store procs。有没有人建议如何检查存储过程是否返回行而不将其放入临时表或执行它查看@@ rowcout?最后一个对我不好,因为我不能将程序的输出也随电子邮件一起返回。

2 个答案:

答案 0 :(得分:0)

您正在寻找Data-Driven Subscriptions。从该MSDN文档:

  

Reporting Services提供数据驱动的订阅,以便您可以根据动态订阅者数据自定义报告的分发。数据驱动的订阅适用于以下类型的场景:

     

•将报告分发到大型收件人池,其成员身份可能会从一个分发更改为下一个分发。例如,将月度报告分发给所有当前客户。

     

•根据预定义的标准将报告分发给特定的收件人组。例如,将销售业绩报告发送给组织中的前十位销售经理。

并非所有版本的SSRS都支持数据驱动的订阅,因此请务必检查您的版本是否支持。

我没有多少工作,但AFAIK应该满足你的要求。来自related / relvant MSDN page

  

使用数据驱动订阅在运行时自定义报表输出,传递选项和报表参数设置。订阅使用查询在运行时从数据源获取输入值。您可以使用数据驱动的订阅来执行邮件合并操作,该操作将报告发送到订阅处理时确定的订阅者列表。

这似乎就是你所追求的。

答案 1 :(得分:0)

您实际上可以使用TSQL命令触发SSRS报告。我有一个计划定期运行的脚本,并做一些SQL twiddling来决定它是否应该运行特定的SSRS报告。这应该为你做的伎俩。您所做的就是报告的ID,然后像任何其他工作一样执行它 - 我建议您查看计划的SSRS报告,以查看数据库中的参数,以便您可以正确调用它。