2011-04-30 17 views
3

我目前正在從我的Forms應用程序中打印幾個報告。但是,僅使用內置的.NET打印方法構建打印報告非常繁瑣。即使只是在一些頁面上打印一張簡單的表格並進行格式化,也是幾個小時的任務(如果它看起來不錯)。如何爲打印報告編寫一個簡單的設計器

我需要的是一個所見即所得的設計器的佈局,所以我想自己寫一個。 它不應該是最終用戶,但作爲開發人員,我只是想創建佈局什麼樣的報告將看起來像各種安排/字體/圖像/格式等,而不是必須這樣做在代碼中嘗試&錯誤(並重新啓動應用程序數十億次)。

所以我的具體問題:

  1. 什麼將我作爲該報告的編輯和顯示畫布使用?我在打印文檔上使用的圖像控制/位圖?有沒有更好的辦法?

  2. 正在繪製一張可與在印刷頁上繪圖相媲美的形式嗎?分辨率打印機與屏幕有什麼不同?

  3. 如何獲得真正的所見即所得?我應該獲得打印機設置並使用相同的分辨率創建我的畫布嗎?還有什麼要考慮的嗎?

我知道身邊有報告設計師,但我認爲這是很好的,有時要了解你所使用的基本工作原理和實現他們是爲我做到這一點的最好辦法。

我知道,這不是一個具體問題A到這個問題的答案始終是B,但如果是這樣,我會很快發現在谷歌的答案。

在此先感謝!

+0

我知道生根粉水晶,但我想我自己寫的設計師。尤其是因爲獨立於隨附的任何許可條款。 – FinalNotriX 2011-04-30 22:22:52

回答

0

我不能說太多有關設計所見即所得的編輯器,但我已經通過我們的開發團隊編寫了使用一些自定義的內部報告引擎。

我主要有兩種創建報告的方式。第一個是使用PDFsharp(麻省理工學院許可)手動佈局不適合模糊的頁面。

第二種是通過Winnovative's HTML to PDF library (not free, but royalty-free)它使用IE的當前安裝版本進行佈局和吐出PDF。它看起來像他們最近發佈了一個名爲EVO PDF新版本,我從來沒有使用過。*

對於HTML到PDF解決方案,它支持JavaScript,因此您可以在圖表中的JavaScript庫像flotjqplot增加。

* 我不跟Winnovative無關。

0

你可能想節省時間和使用Visual Studio HTML設計師,你的所見即所得的編輯器。

我目前正在做的是使用ASP.NET MVC 3作爲一個簡單的報表引擎。在使用Visual Studio作爲報表設計器時,您可以使用MVC模式將報表數據源(模型)和渲染(視圖)真正分開。

從您的應用程序中,您可以使用報告可選參數輕鬆調用您的操作。例如:

http://localhost/Report/Customer/Orders/1

您只需獲得來自Web客戶端的DownloadString方法返回的字符串,你必須產生報表。

有一些使用HTML的缺點,主要是知道頁面何時會中斷的困難,但通過在View中使用代碼,您可以計算重複項目的數量並添加CSS中斷頁面並重新啓動表格的標題在下一頁上。

您可以實現從圖形到表格的任何操作,甚至可以生成與其他報表的鏈接。

HTH。