2013-04-10 17 views
2

我有一個C#項目,它使用ReportExecution2005.asmx Web服務。在我的項目中,我遍歷一些數據庫記錄,將行數據傳遞給報表參數,然後渲染報表。使用報告執行Web服務時,如何判斷報告的表是否不返回行?

該報告是一個簡單的,一個數據集,一個表報告,我最終導出到Excel。

當我呈現報表時,我不知道我傳遞的參數是否實際上會導致報表的數據集/表返回任何行。如果報告確實返回數據,那麼我會通過電子郵件發送報告。但是,如果報表的表格爲空,那麼我需要跳過此報表並轉到下一個報表。

有無論如何我可以檢查我的呈現報告,看看數據集或表是否返回任何數據?

感謝您的期待。

回答

2

這聽起來更像是在後端sql中可以完成的事情,而不是在報告中。報告只是產生,據我所知,沒有任何烘焙可以做到這一點。訂閱的知識是非常基本的....但你可以做動態訂閱,可以離開數據庫邏輯。

我相信你可以做一個多層次的方法來使訂閱成爲動態的。

  1. 在SQL數據庫中創建一個作業,用於跟蹤包含數據的報表的數據庫。只需要簡單地插入到RecordTable select(reportname),dateadd(day,datediff(day,0,getdate()),0),Count(*)from(tabledataset)中。
  2. 如果您的數據集包含行或不包含行,請在設定的時間每天運行此作業以填充。
  3. 創建一個動態訂閱來執行查詢,如果rowcount大於零發送出去,如果不是。
+0

雅,我覺得執行服務沒有任何開箱即用的問題。我正如你所暗示的那樣,我只需要從另一個角度來解決它。我的其他想法是讀取導出的XLS文件,或者先將其導出爲XML,然後解析現有數據。 – csthopper 2013-04-10 16:38:34

+0

是的。數據庫設置將花費更長的時間,但最終會是一個更健全的解決方案。一般來說,在.NET和數據庫中,他們更多的工作,但一旦到位,從長遠來看操縱數據就更容易了。 – djangojazz 2013-04-10 17:07:27

相關問題