Web打印的在線設(shè)計(jì)
前一段時(shí)間,我根據(jù)自己的項(xiàng)目要求設(shè)計(jì)了一個(gè)基于FastReport的Web打印控件,然后把它稍做修改,掛到網(wǎng)上,引起了大家的關(guān)注,有好多朋友還向我申請(qǐng)了注冊(cè),在此謝過了!以后我還會(huì)一樣的給大家免費(fèi)注冊(cè),大家一起共同促進(jìn)Web打印更快捷,更強(qiáng)大。
這幾天,我一直在研究Web打印,我覺得我的設(shè)計(jì)思路是對(duì)的。我們搞軟件設(shè)計(jì),無論是面對(duì)最終用戶,還是面對(duì)程序員,良好的用戶體驗(yàn)是軟件成敗的關(guān)鍵因素。具體對(duì)于打印設(shè)計(jì)來說,就是能用最少的代碼,最少的時(shí)間設(shè)計(jì)出用戶所需要的報(bào)表?,F(xiàn)在的程序員大部分是從C/S架構(gòu)走過來的,對(duì)于C/S架構(gòu)下,豐富多彩、快捷方便的報(bào)表打印設(shè)計(jì)多有懷念,呵呵,我就是其中的一個(gè),可能是我們80后的人開始老了,老是懷念美好的過去。當(dāng)然,對(duì)于軟件開發(fā)行業(yè),每年不斷有新技術(shù)推出,只要有好的技術(shù),我們80后的程序員也會(huì)不斷的學(xué)習(xí),不斷的前進(jìn),絕不停留在原地,等著行業(yè)的淘汰。B/S架構(gòu)越來越成為軟件開發(fā)的主流,作為B/S架構(gòu)的軟肋就是用戶體驗(yàn)不足,隨著Ajax技術(shù)的推廣,網(wǎng)絡(luò)帶寬的改善,這方面也在慢慢的縮小和C/S架構(gòu)的差距,我想終有一天可以達(dá)到或者差不多達(dá)到C/S架構(gòu)的用戶體驗(yàn)。
我想作為Web打印的程序員體驗(yàn)就是能夠達(dá)到C/S架構(gòu)的報(bào)表軟件設(shè)計(jì)水平,只要我們準(zhǔn)備好數(shù)據(jù)源,基本上不要寫代碼,在報(bào)表設(shè)計(jì)器中就可以快速的設(shè)計(jì)出用戶所需的報(bào)表,如果用戶要修改報(bào)表,也只需調(diào)整報(bào)表格式,無需去修改代碼。其實(shí)這種設(shè)計(jì)思想也是報(bào)表設(shè)計(jì)的主流,作為報(bào)表之王的水晶報(bào)表就是其中的一例,只可惜水晶報(bào)表只能用于.NET平臺(tái),企業(yè)版又太貴,我們一般的程序員和軟件公司都承擔(dān)不起,不然一個(gè)Web打印也用不著這么費(fèi)周折。其它有名的報(bào)表打印也是這么一個(gè)設(shè)計(jì)思想,我就一直沒有想明白,國內(nèi)的所謂專業(yè)Web打印公司,為什么不按照這主流思想去設(shè)計(jì)公司的產(chǎn)品,而是搞什么代碼控制打印,用一行行代碼(代碼中有坐標(biāo)和數(shù)據(jù)),硬是去畫一個(gè)報(bào)表,這么低劣笨拙的設(shè)計(jì)怎么和人家去比,也許一時(shí)靠低價(jià)還可以賣一點(diǎn),但終至?xí)蕴?/P>
這幾天,我對(duì)我設(shè)計(jì)的Web打印控件進(jìn)行了重大的改進(jìn),重點(diǎn)放在如何用最少的代碼,最少的時(shí)間設(shè)計(jì)出用戶所需要的報(bào)表。我覺得我原來的報(bào)表設(shè)計(jì)器操作不方便,特別是對(duì)于ADO不熟悉的程序員,一下子很難掌握。我想作為報(bào)表的設(shè)計(jì),最好是和報(bào)表預(yù)覽或打印結(jié)合在一起,程序員只需修改最小的代碼,就可以把一份報(bào)表由設(shè)計(jì)狀態(tài)迅速的轉(zhuǎn)為用戶實(shí)際使用的狀態(tài),兩者完美結(jié)合在一起,設(shè)計(jì)狀態(tài)和實(shí)際使用狀態(tài)沒有任何差別。我在原來的控件基礎(chǔ)上增加了DesignReport函數(shù),調(diào)用此函數(shù)即進(jìn)入報(bào)表的編輯狀態(tài),此函數(shù)的參數(shù)和預(yù)覽報(bào)表函數(shù)(ShowReport)打印報(bào)表函數(shù)(PrintReport)完全相同,程序員編輯好報(bào)表后,只需把DesignReport函數(shù)替換為ShowReport或PrintReport就可以預(yù)覽或打印報(bào)表。另外還增加了一個(gè)屬性ReportFileName,此屬性是指定報(bào)表的名稱,指定好報(bào)表的名稱后,便于報(bào)表的保存和上傳。報(bào)表編輯還是采用FastReport,對(duì)于FastReport不熟悉的程序員可能要稍加學(xué)習(xí),不過很簡單的,我記得我學(xué)的時(shí)候就是看了一下別人的報(bào)表,大約十幾分鐘,然后就直接用了。報(bào)表編輯之前請(qǐng)先組織好數(shù)據(jù)源和報(bào)表參數(shù),這個(gè)和預(yù)覽報(bào)表一樣的,在設(shè)計(jì)過程中,可以直接預(yù)覽報(bào)表,你看到的就是用戶看到的,沒有任何差別。報(bào)表做好后,最后要上傳至服務(wù)器,這因?yàn)閳?bào)表編輯時(shí)只是暫存在客戶電腦上,最終的報(bào)表文件還是以服務(wù)器為準(zhǔn)。在報(bào)表編輯器中提供了FTP功能,在工具欄上有一個(gè)按鈕,單擊此按鈕,再輸入FTP服務(wù)器名、FTP用戶名、FTP密碼以及FTP文件夾(這個(gè)文件夾是從FTP的根目錄開始的文件夾,比如Web/ASP/FRP/,F(xiàn)TP傳送文件前,先必須定位到此文件夾),然后單擊上傳就可以把報(bào)表上傳到服務(wù)器。
還順手把有時(shí)候?qū)С鯡xcel表,中文亂碼的問題解決了。
報(bào)表預(yù)覽和編輯的網(wǎng)址:http://www.xinyuerj.com/ASP/
http://www.xinyuerj.com/ASP.NET/
報(bào)表編輯的示例窗口如下:

報(bào)表的上傳示例窗口如下:

報(bào)表預(yù)覽的示例窗口如下:

【編輯推薦】