簡體   English   中英

SQL Server Reporting Services 2005 - 如何處理空報表

[英]SQL Server Reporting Services 2005 - How to Handle Empty Reports

我想知道如果它是空的,是否可以不附加Excel表格,如果空的話可能在電子郵件中寫一個不同的評論。

當我去報告交付選項時,沒有這樣的配置。

編輯 :我正在運行SQL Server Reporting Services 2005。

一些可能的解決方法如下所述:

MSDN:Reporting Services擴展

NoRows和NoRowsMessage屬性

我應該研究這些事情。

在其他地方找到了......

我對這個問題有一個干凈的解決方案,唯一的缺點是系統管理員必須創建和維護計划。 請嘗試以下步驟:

  1. 使用所有必需的收件人為報告創建訂閱。

  2. 將訂閱設置為在​​昨天的每周運行(即如果今天是星期二,請選擇星期一),時間表從今天的日期開始,並在今天的日期停止。 從本質上講,這個時間表永遠不會運行。

  3. 在SQL Management Studio中打開新創建的作業,轉到步驟並復制SQL行(它看起來像這樣:EXEC ReportServer.dbo.AddEvent @ EventType ='TimedSubscription',@ EventData ='1c2d9808-aa22-4597 -6191-f152d7503fff')

  4. 使用實際計划在SQL中創建自己的作業,並使用以下內容:

如果存在(選擇您的測試標准......)

開始

EXEC ReportServer.dbo.AddEvent @EventType = ...等

結束

我相信答案是否定的,至少不是開箱即用的。 考慮到RS中包含的打印傳送擴展示例,編寫自己的傳送擴展並不困難。

是的,我不認為這是可能的。 您可以使用表的“NoRows”屬性在沒有返回數據時顯示消息,但這不會阻止附加報告。 但至少當他們打開excel文件時,它可以打印出自定義消息而不是空文檔。

我已成功使用數據驅動訂閱和包含我的訂閱者的表,數據驅動的訂閱查詢如下所示:

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

然后在配置訂閱的傳遞設置時,在相應字段中使用這些列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM