2011-02-09 40 views
2

我創建了一個與WCF服務通信的「winform」應用程序。我需要從WCF服務生成報告我的選擇是什麼?

winform顯示包含許多行的datagridview。用戶可以選擇(複選框)他希望打印的行,然後單擊打印按鈕。

選定的行被髮送到我的WCF服務中的一個方法,該方法又返回二進制數據(要打印的文檔)的集合。一旦返回,我在磁盤上爲返回的集合中的每個二進制數據創建一個pdf文件。

一旦完成,這些新創建的文件發送到打印機...

注: 之前創建這些PDF文檔,我需要建立一個將之前的任何這些PDF文檔的打印的「摘要」報告文件。

爲此,我在我的WCF服務中調用一個將返回二進制數據的方法。然後我得到這個二進制文件,並用它創建一個摘要pdf文檔...

這是我的問題: 什麼是最好的方法來創建我的「彙總報告」?

到目前爲止,我一直在嘗試使用Reporting Services來設計我的總結報告,但是我正在抓住一些我希望在該報告中做的事情(即:試圖添加複選框列和使其「選擇」或不依賴於特定的規則和/或使我的報告雙語......)。所以我想可能RS不像我想的那樣靈活/直觀......

我的WCF服務將調用Reporting Services Web服務,調用相應的報告並返回我將發回的二進制數據到winform應用程序。

我雖然也用水晶報表,但因爲我從來沒有使用過它,它會適得其反......

,我能想到的最後的選擇是從我沿着通過WCF服務內調用網頁必要的參數。該網頁會呈現自己,我試圖將該網頁轉換成二進制數據,這將通過我的WCF服務方法返回...

雖然我還沒有嘗試過最後一種方法,但我認爲它可能會給我更多我可以/不可以做什麼的靈活性。

有沒有人有一個建議或其他替代方案可以幫助我? 感謝

回答

1

我不知道這個帖子還開着......

如果有人關心就知道了,這是我終於想出瞭解決方案:

我獲得後的二進制數據的收集和循環遍歷該集合以在用戶磁盤上生成物理PDF文件,我需要一種方法(第二次)調用我的WCF來生成摘要報告。一旦渲染,想法就是獲得生成的結果(二進制)並將該數據發送回winform應用程序,以便我可以創建一個不錯的Summary.pdf文件(在用戶的磁盤上)。

完成後,以編程方式將所有生成的PDF文件使用第三方組件發送到打印機。

現在...因爲總結報告可能需要一段時間才能顯示出來,所以我增加了發生超時的可能性。增加超時並不是一個合適的選擇...

因此,解決方案是,而不是在服務器上調用/創建摘要報告,我決定在我的winform應用程序內部集成一個客戶端報告定義文件(.rdlc)。

基本上,當我安裝winform應用程序時,它還包含Summary.rdlc文件。在適當的時候,我從我的WCF服務獲取報告所需的數據,並將這些數據提供給在用戶計算機上本地呈現的.rdlc文件,然後在用戶的磁盤上創建Summary.pdf文件。

就這樣!