首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SSRS 2008 R2数据驱动订阅中停止发送空报表

在SSRS 2008 R2数据驱动订阅中停止发送空报表
EN

Stack Overflow用户
提问于 2011-12-19 18:31:10
回答 5查看 13.8K关注 0票数 7

我正在使用SSRS2008 R2中的数据驱动订阅来安排一些报告。

无论生成的报告是否为空,报告仍将发送给收件人。很长一段时间以来,这一直是一个常见的问题,老实说,我在论坛上看到的建议并没有完全奏效。

我尝试过的其中一个建议是,我已经创建了一个隐藏参数,并将其设置为default values选项卡中主数据集上的一个字段。如果报表为空,则会抛出错误;如果报表设计器中有要显示的数据,则会生成报表。但是,当我计划此报告时,它要求我提供默认值,如果不提供默认值,我将无法完成计划程序向导。如果我提供了任何默认值,仍然会发送空报告。但与此不同的是,应该为空报告抛出一个错误,并且不应该发送它们。

以前有人用过这种方法吗?如果是这样的话,你能告诉我这里遗漏了什么吗?

我只是想知道你们对这个问题是否有一个理想的解决方案。

非常感谢你的帮助。

问候

EN

回答 5

Stack Overflow用户

发布于 2012-02-17 10:18:25

以下是我的解决方法:通过存储过程检索数据,并将以下代码放在末尾

代码语言:javascript
复制
IF @@ROWCOUNT = 0 RAISERROR('No data', 16, 1)

有关更多详细信息,请查看Russell Christopher's article and comments。令我惊讶的是,已经过去6年了,微软就是想不出一个解决方案:3

票数 10
EN

Stack Overflow用户

发布于 2016-12-13 05:44:50

我发现一个非常容易实现的有效方法是在查询中包含一个除以行数的额外字段。如果计数为零,则会出现被零除的错误,并且不会发送电子邮件;如果计数至少为1,则报告运行良好,电子邮件发送出去。

代码语言:javascript
复制
SELECT 
  [table].[id]
  ,(1/COUNT(id))
FROM [table]
WHERE [table].[id] > @Parameter

关于此技术的一个注意事项是,它确实增加了一些额外的开销,因此如果您期望非常大的数据集的可能性,那么它可能并不合适。

票数 1
EN

Stack Overflow用户

发布于 2015-06-09 14:10:28

实现这一目标的方法有很多。根据查询结果更改订阅的行为很容易。只需查询数据库以找出情况(例如,在进程日志中--或者只返回您无论如何都必须运行的过程的状态),然后使用if语句。

例如:

代码语言:javascript
复制
DECLARE @SomeVariable INT = 0; -- 0 means good

EXEC @SomeVariable = reports.sp_some_proc; -- Returns 1 if something is bad

IF @NoData = 0 -- everything is fine send report

SELECT 
    mail_to = 'email1; email2; email3,... important people.....',
    mail_subject = 'Whatever subject',
    mail_comment = 'Whatever comment',
    include_report = 'True'

ELSE -- the world is a dark place, variable is probably 1 or something. bad...

SELECT 
    mail_to = 'someone you don''t like',
    mail_subject = 'something is bad' + LEFT(CONVERT(VARCHAR(25), GETDATE(), 20),16),
    mail_comment = 'like i said, something is bad',
    include_report = 'False'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8560002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档