2008-10-01 146 views

回答

1

我認爲答案是否定的,至少不能開箱即用。考慮到RS中包含的印刷傳送擴展樣本,編寫自己的傳送擴展應該不難。

+0

謝謝你提到關於擴展。 – 2008-10-01 22:49:10

1

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

+0

謝謝你讓我知道「NoRows」屬性。 – 2008-10-03 17:47:44

0

我已經成功使用一個數據驅動訂閱和表包含我的訂閱者的數據驅動訂閱查詢看起來像這樣:

SELECT * FROM REPORT_SUBSCRIBERS WHERE EXISTS (SELECT QUERY_FROM_YOUR_REPORT) 

在傳送設置,收件人是數據列包含我的電子郵件地址。
如果內部查詢未返回任何行,則不會發送電子郵件。


爲了您的目的,您可以利用「包含報告」和「評論」傳送設置。
我想,這樣的數據驅動訂閱查詢會爲你工作:

SELECT '[email protected]; [email protected]' 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 

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

1

發現這個別的地方...

我有一個乾淨的解決這個問題,唯一的缺點是,系統管理員必須創建和維護計劃。請嘗試執行以下步驟:

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

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

  3. 打開在SQL Management Studio中新創建的作業,轉到步驟和SQL複製的行(它看起來是這樣的:EXEC ReportServer.dbo。@的addEvent =事件類型 'TimedSubscription',@ EVENTDATA = '1c2d9808-aa22-4597-6191-f152d7503fff')

  4. 與實際時間表創建SQL自己的工作,並使用類似:

IF EXISTS(SELECT測試標準...)

BEGIN

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

END