我使用Datewerks中的Report Server。
我已經創建了一個報告,就像時間安排報告一樣。
但是,如果表中沒有數據(行)可用,那麼如何設置報告以便它不發送報告?ReportServer:沒有空表的報告
0
A
回答
0
目前有兩種可能性如何在ReportServer中完成。首先是使用條件調度。在這裏你需要創建一個條件來檢查你的報告是否有任何數據。條件本身是動態列表(變體),並通過終端命令rcondition創建。一旦條件就位後它可以在調度過程中進行選擇(通過激活第一面板上的先進選擇。爲了讓您一開始,看看。
第二種可能是使用的ReportServer的腳本功能並掛鉤到調度程序中,如果您只對動態列表報告感興趣,這種方法效果特別好,因爲在這裏可以很容易地確定報告是否包含任何數據(例如,對於Jasper或BIRT報告,它不是清楚如何確定報告是否包含數據,因爲報告引擎可能仍然生成具有多個頁面的PDF /文檔。)
您正在尋找的鉤子是SchedulerExecutionHook在執行任何預定作業並可能否決執行之前調用它。以下是一個腳本,用於檢查a)計劃作業是否爲報表執行作業,b)報表是否爲動態列表。如果滿足這些條件,它將運行報告,然後檢查結果是否有數據。如果情況不是這樣,它否決執行。
import net.datenwerke.scheduler.service.scheduler.hooks.SchedulerExecutionHook
import net.datenwerke.scheduler.service.scheduler.hooks.adapter.SchedulerExecutionHookAdapter
import net.datenwerke.rs.scheduler.service.scheduler.jobs.report.ReportExecuteJob
import net.datenwerke.rs.base.service.reportengines.table.entities.TableReport
import net.datenwerke.rs.base.service.reportengines.table.output.object.CompiledTableReport
import net.datenwerke.scheduler.service.scheduler.helper.SkipJobExecution
def callback = [
doesVetoExecution : { job, logEntry ->
if(job instanceof ReportExecuteJob &&
job.getReport() instanceof TableReport){
job.doExecute()
if(job.getExecutedReport() instanceof CompiledTableReport &&
! job.getExecutedReport().hasData()){
return new SkipJobExecution("No data")
}
}
}
] as SchedulerExecutionHookAdapter
def HOOK_NAME = "SkipEmptyListSchedulerHook";
GLOBALS.services.callbackRegistry.attachHook(HOOK_NAME, SchedulerExecutionHook.class, callback)
要註冊掛鉤,將其放置在這種情況下,每當服務器啓動時鉤註冊的文件服務器的bin/onstartup.d文件夾。爲了不重新啓動服務器,而是直接註冊它,打開終端(CTRL + ALT + T)並手動執行腳本(exec命令)。有關腳本的介紹,請參閱Scripting Guide(特別是Chapter 7)。
我應該補充說,這不是一個最佳的實現。這裏發生的是,爲了決定是否發送電子郵件,報告被執行。如果未被否決,報告將作爲實際流程的一部分再次執行。據我所知,目前還沒有太多可以做到的事情。一個可能的優化將不是簡單地運行報告,而是使用LIMIT 1來適應它。
相關問題
- 1. 該報告沒有表
- 2. SSRS - 通過ReportServer數據庫表確定報告權限?
- 3. 該報告有沒有表錯誤
- 4. Adwhirl的報告沒有顯示圖表
- 5. Crystal報表錯誤,報告有沒有表
- 6. SSRS ReportServer列出位於文件夾中的所有報告(遞歸)
- 7. SQL報表生成器與空報告
- 8. 錯誤SSRS subscrition中但報告builber或ReportServer WebUI
- 9. Jasper報告中的空白子報告
- 10. 沒有有效的報告源可用 - 水晶報告
- 11. 報表瀏覽器並沒有表現出報告
- 12. 空報告
- 13. 沒有報告異常
- 14. 沒有TestFlight崩潰報告
- 15. 子報告沒有顯示
- 16. ACRA沒有創建報告
- 17. localytics沒有給出報告?
- 18. SSRS報告沒有創建
- 19. phpMyAdmin報告'沒有權限'
- 20. Javascript沒有報告錯誤
- 21. 查詢在ReportServer實例上查找所有* SSRS數據集列表*所有* SSRS數據集所有* SSRS報告
- 22. 從reportserver文件夾中的所有報告收集所有參數並填充sql表
- 23. 在主報告中沒有呈現的子報表
- 24. 水晶報表子報表沒有鏈接到我的主要報告
- 25. Birt報告 - 不生成空白報告
- 26. 有沒有辦法在RDLC報告上禁用空白區域?
- 27. PHP:帶日期空白的報告表
- 28. 將參數傳遞給SSRS中的報告但沒有報告
- 29. 在IE 11中的活動報告WebViewer:沒有指定報告
- 30. Android的市場崩潰報告沒有與bugsense報告