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