2014-12-19 77 views
0

我有運行和導出具有相同密鑰列的每日報告的要求。 假設我們每天有大約50份報告,並且它在執行時間運行(時間因各個報告而異),並且報告必須以excel文件形式導出。使用.Net應用程序在計劃時間導出報告

另一個顯示報告狀態的應用程序,如果用戶想要查看報告,必須在按鈕點擊/超鏈接點擊時打開excel文件。 什麼是完成此任務的最佳方法。我目前的方法如下

我已經創建了存儲過程,用於將數據插入帶有Datestamp的主表中的所有報表。在主表中,maxtrix報告使用reportid提取報告數據,並使用相同的報告將報告導出爲ex​​cel文件。 存儲過程在報告執行時被調度爲SQL作業。當proc運行時,它會將reportid插入到用於datadriven訂閱(導出到excel文件)的表中。

數據驅動的訂閱每5分鐘運行一次以生成報告。如果報告的運行時間爲上午10點02分,訂閱的時間爲上午10點05分,那麼報告過程執行到報告導出之間的時間延遲爲5分鐘。 我正在尋找將數據插入到主表之後導出報表的方式。

當我試圖用susbindid來調用ADDEVENT時,我有鎖定問題,因爲少數報告同時運行。

如果您有適用於此場景的任何方法,請讓我。

TIA

回答

0

怎麼樣:呈現報表與SSRS瀏覽器和alow的用戶導出的報告;如果用戶需要更改報告,則可以將其導出爲ex​​cel並進行更新,當然這不會更新數據庫服務器上的數據; 或者您可以使用自定義應用程序來更新數據,在SSRS報告中放置應用程序的鏈接,或對設計元素使用操作;

+0

嗨 - 首先,感謝您發佈答案。 – Carolin

+0

我們將報告導出爲ex​​cel文件,這樣可以減少最終用戶手動導出報告的時間。報告大小從4 KB到3 MB不等。此外,我正在使用一個矩陣報告,它使用報告ID來提取不同的報告。如果最終用戶導出報告,則在導出時它將具有默認名稱,並且用戶必須手動輸入報告的名稱。爲了避免這些問題,我正在尋找方法來自動導出它們。爲了導出,我在SSRS web服務的幫助下創建了一個SSIS包。可以同時運行多個相同包的實例,不同的輸入 – Carolin

0

由於您已經使用SSIS包,您應該能夠使用OLE DB命令任務運行SSIS包中的過程; 然後當運行存儲過程的任務完成時,流程繼續執行生成報告/報告的任務。

另外我會使用SSIS系統變量StartTime作爲時間戳,它是包開始運行的時間;

+0

嗨 - 感謝您的回覆。對不起,我工作了幾天,所以我不能提前回復。我有另一個問題 。有可能我可以使用不同的參數運行SSIS包的多個實例。我仍然致力於在報告的執行時間上調用ssis包。如果我同時調用具有不同參數的SSIS包,我是否會遇到任何死鎖? – Carolin

+0

可以使用兩個或更多配置文件運行相同的軟件包。你把參數放在配置文件中,所以答案是肯定的,你可以用不同的參數運行SSIS包的多個實例。如果您繼續這樣做,關於死鎖,取決於軟件包的功能以及訪問哪些數據,但沒有直接的答案,但是如果您發現性能問題,那麼也許您可以在不同的時間運行SSIS軟件包。 – user3752281

相關問題