2012-07-03 88 views
0

我的應用程序需要創建並生成報告的能力,似乎在兩個主要選項是SSRS或水晶報表與其他選項,如Infragistics的,主動報告等一大堆。可插拔的報告工具

由於應用程序將在各種不同的企業環境中使用會有不同prefrences爲這是他們的報告工具。因此,例如1個客戶可能是SSRS用戶,另一個可能認爲Crystal是有史以來最好的。

這意味着它不是我的應用程序綁定到一個特定的報表工具,但在相關的一個堵塞了許多清單的能力是非常重要的。

有沒有人做過類似的事情? 在總體水平上,你將如何去實現這一點,我應該注意什麼問題?

預先感謝任何幫助

亞歷

+0

你需要可插拔報告在運行時或使根據目標環境構建應用程序之前的選擇? – HichemSeeSharp

+0

我認爲從實際角度來看,在部署到目標環境之前做出選擇會容易很多,我認爲會有太多的額外開銷 – lostinwpf

+0

PRISM has給我的機會做出兩個模塊,每個模塊都有自己的報告工具,但應用程序與它們交互的方式是幾乎一樣。 – HichemSeeSharp

回答

1

,你將有可能是,所有這些系統都使用自己的數據源對象和渲染引擎,你需要有自己單獨實現各系統的問題專有查看器控制。你或許可以讓所有的觀衆看起來都一樣,但他們會喜歡不是都有相同的功能。

如果您正在使用的業務對象作爲你的數據源,我強烈建議您先發送數據到數據庫中,你會發現少得多的開銷在每個報告解決方案,如果您是直接從數據庫中提取您的數據。

每個報表查看器(每個不同的報表解決方案的那些)將讓你去掉一切從觀衆除了主報表視圖窗格。然後,您可以實現您自己的按鈕,例如「打印,導出爲PDF,XLS,縮放,上一頁,上一頁,還有更多,然後可以將按鈕連接到報表查看器控件上的功能,例如Viewer.Zoom(100)你很可能會在這雖然浪費了很多時間,因爲它是一個很大的努力來重新編寫那些已經存在和功能,只是讓他們看起來是一樣的按鈕。

+0

之間的通信。動態報告如何? – HichemSeeSharp

+0

我的意圖是直接從數據庫中獲取數據 - 但是,如果您說每個供應商都有不同的實現,這仍然會導致問題 - 我認爲這是一個如何隱藏這些細節的問題? – lostinwpf

+0

定義'隱藏',你說用戶會知道他們是想使用水晶還是SSRS,所以他們會選擇他們想要的,然後你會打開一個窗口顯示Crystal或SSRS報告查看器 – jimmyjambles