從EXCEL到finereport
這年頭,excel真是個(gè)好用的東西,不管是什么項(xiàng)目,最終用戶總會(huì)要求把報(bào)表導(dǎo)出到excel,不僅僅數(shù)據(jù)要導(dǎo)出,格式也要導(dǎo)出,樣式還不能失真,實(shí)在煩死了程序員。更有甚者,不少最終用戶在項(xiàng)目需求的初期,就給程序員提供了一大堆的excel表樣,還理直氣壯的說,看,表樣都給你們畫好了,你們可以直接用,不需要畫表樣了。一句話足可以讓你啞巴吃黃連,有苦說不出。
最終用戶想要的說白了就是要把數(shù)據(jù)庫中的數(shù)據(jù)按他們要求的格式展現(xiàn)出來。EXCEL能滿足用戶對表樣的需求,但也有局限的地方,比如不能動(dòng)態(tài)感知數(shù)據(jù)庫。最終用戶除了要?jiǎng)討B(tài)感知數(shù)據(jù)庫還要求可以動(dòng)態(tài)顯示數(shù)據(jù)庫或是要求可以完全通過網(wǎng)頁來查看數(shù)據(jù)等
如果從數(shù)據(jù)庫寫代碼也是可以做報(bào)表的,但是數(shù)據(jù)庫只管理純數(shù)據(jù)但不管理數(shù)據(jù)的錄入和展示。當(dāng)然,
數(shù)據(jù)的錄入和展示也可以自己寫出來,但是寫代碼實(shí)在太煩瑣,想到就頭大……
現(xiàn)在市面上的報(bào)表工具也好,報(bào)表控件也好,大都是基于控件拖拽式的。俗話說,鼠標(biāo)拖拖拽拽畫報(bào)表,似乎很容易,可實(shí)際上只有程序員知道,中國式報(bào)表講究的是格線對齊,控件拖拽是很難格線對齊的,能把人眼珠子看直了!偏偏最終用戶還那么熱愛excel,所有的報(bào)表都希望和excel平滑導(dǎo)入導(dǎo)出!控件拖拽式的報(bào)表在界面模型上和excel完全不同,能否平滑導(dǎo)入導(dǎo)出,嚴(yán)重取決于控件的對齊程度,因此難度可想而知。
當(dāng)然也有一種報(bào)表工具,完全借鑒了excel的界面模型,利用單元格的合并和拆分,利用單元格的邊框來組織報(bào)表樣式,其表樣的編輯方式和excel完全相同,兩者之間可以平滑的導(dǎo)入導(dǎo)出。可是基于單元格合并拆分的模型和基于二維表的數(shù)據(jù)庫物理表模型沒法有機(jī)的結(jié)合起來,因此這種報(bào)表幾乎都只能做靜態(tài)報(bào)表,需要靠程序員編程來實(shí)現(xiàn)動(dòng)態(tài)行列報(bào)表的制作。
finereport報(bào)表在研究了幾千張中國式報(bào)表的基礎(chǔ)上,提出了一套完整的數(shù)學(xué)模型,終于把類excel的界面模型和數(shù)據(jù)庫的二維物理表有機(jī)的結(jié)合起來了,不僅僅解決了動(dòng)態(tài)行列的問題,還解決了跨行組運(yùn)算的問題,可以說從根本上解決了中國式報(bào)表無規(guī)則表樣和無規(guī)則運(yùn)算的問題。
操作也非常簡單,花個(gè)幾分鐘配置下服務(wù)器,然后就是做模版,接著就剩直接COPY了。
finereport報(bào)表和excel編輯界面的比較: