我想知道如果它是空的,是否可以不附加Excel表格,如果空的话可能会在电子邮件中写一个不同的评论。
当我去报告投放选项时,没有这样的配置。
编辑:我正在运行SQL Server Reporting Services 2005。
如下所述的一些可能的解决方法:
MSDN: Reporting Services Extensions
NoRows and NoRowsMessage properties
我应该研究这些事情。
答案 0 :(得分:1)
我相信答案是否定的,至少不是开箱即用的。考虑到RS中包含的打印传送扩展示例,编写自己的传送扩展名应该不难。
答案 1 :(得分:1)
答案 2 :(得分:1)
在其他地方找到了这个......
我对此问题有一个干净的解决方案,唯一的缺点是系统管理员必须创建和维护计划。请尝试以下步骤:
为包含所有必需收件人的报告创建订阅。
将订阅设置为在昨天的每周运行(即如果今天是星期二,请选择星期一),时间表从今天的日期开始,并在今天的日期停止。从本质上讲,这个时间表永远不会运行。
在SQL Management Studio中打开新创建的作业,转到步骤并复制SQL行(它看起来像这样:EXEC ReportServer.dbo.AddEvent @ EventType ='TimedSubscription',@ EventData = '1c2d9808-aa22-4597-6191-f152d7503fff')
使用实际计划在SQL中创建自己的作业,并使用类似:
如果存在(选择您的测试标准......)
BEGIN
EXEC ReportServer.dbo.AddEvent @EventType = ... etc。
END
答案 3 :(得分:0)
我使用数据驱动订阅和包含我的订阅者的表取得了成功,数据驱动的订阅查询如下所示:
SELECT * FROM REPORT_SUBSCRIBERS WHERE EXISTS (SELECT QUERY_FROM_YOUR_REPORT)
在投放设置中,收件人是包含我的电子邮件地址的数据列 如果内部查询没有返回任何行,则不会发送任何电子邮件。
出于您的目的,您可以利用“包含报告”和“评论”投放设置 我想像这样的数据驱动订阅查询对你有用:
SELECT 'person1@domain.com; person2@domain.com' AS RECIPIENTS,
CASE WHEN EXISTS (REPORT_QUERY) THEN 'TRUE' ELSE 'FALSE' END AS INCLUDE_REPORT,
CASE WHEN EXISTS (REPORT_QUERY) THEN 'The report is attached' ELSE 'There was no data in this report' END AS COMMENT
在配置订阅的投放设置时,请在相应字段中使用这些列。