目前,國(guó)內(nèi)市場(chǎng)第一的報(bào)表工具應(yīng)該是FineReport,開(kāi)源的有Birt、JasperReports。
金蝶用友廣泛用于財(cái)務(wù),BO是SAP的BI工具,水晶報(bào)表是SAP的報(bào)表工具。
以上都是商業(yè)工具,好處是一方面報(bào)表工具是一個(gè)數(shù)據(jù)庫(kù)程序,企業(yè)級(jí)的系統(tǒng)工具,對(duì)于讀取連通數(shù)據(jù)庫(kù)、集成開(kāi)發(fā)會(huì)更加靈活;另一方面諸多報(bào)表廠(chǎng)商由于需要實(shí)現(xiàn)商業(yè)化,在產(chǎn)品的打磨和服務(wù)上下足了功夫,很多工具在實(shí)際的業(yè)務(wù)場(chǎng)景中遠(yuǎn)比excel方便。
關(guān)于FineReport:日常工作中,涉及到表格、圖表、分析、數(shù)據(jù)處理,大家首選的一定是Excel。但很多人困惑于Excel的深入學(xué)習(xí)難度,雞肋的大數(shù)據(jù)處理效率。
比如某網(wǎng)友為處理七八個(gè)維度,近萬(wàn)條數(shù)據(jù)奔潰不已;又有人幾十萬(wàn)行的數(shù)據(jù)把電腦頻頻跑崩;再者,隨著多任務(wù)線(xiàn)之間的交叉,匯總?cè)蝿?wù)呈幾何級(jí)數(shù)增加……
倒不是說(shuō)Excel完成不了這類(lèi)任務(wù), Excel作為個(gè)人辦公軟件絕無(wú)僅有,但作商業(yè)用,效率還稍有不足。最主要的原因還是處理速度上,excel更多時(shí)候充當(dāng)?shù)氖禽p量數(shù)據(jù)庫(kù)和計(jì)算功能。
懂IT的朋友可能會(huì)說(shuō),交給數(shù)據(jù)庫(kù)啊,寫(xiě)兩條SQL就解決了。再不行,找程序員寫(xiě)代碼,什么圖形化的界面,分析,圖表,數(shù)據(jù)錄入,修改刪除界面,都可以交由程序開(kāi)發(fā),性能杠杠的。那如果有一款工具能解決掉數(shù)據(jù)庫(kù)之后的數(shù)據(jù)增改刪,展現(xiàn),交互分析,移動(dòng)大屏展示,并做到辦公協(xié)同,那就是小編今天想來(lái)講講的FineReport了。
FineReport的本質(zhì)是一個(gè)通用的報(bào)表制作和數(shù)據(jù)可視化工具,是一個(gè)開(kāi)放的商業(yè)報(bào)表工具。好比Excel,小到可以存儲(chǔ)統(tǒng)計(jì)數(shù)據(jù)、制作各式各樣的圖表、dashboard,大到制作財(cái)務(wù)報(bào)表、開(kāi)發(fā)進(jìn)銷(xiāo)存系統(tǒng)。
下文將從技術(shù)的角度講講FineReport,操作上為何能省時(shí)省人力,如何在實(shí)現(xiàn)系統(tǒng)化數(shù)據(jù)分析的同時(shí)又能有驚艷的可視化。
一、如何花1小時(shí)完成一張復(fù)雜報(bào)表,解放10+人力?1、關(guān)于FineReport的制表原理
FineReport是通過(guò)連接數(shù)據(jù)庫(kù),讀取數(shù)據(jù)字段來(lái)設(shè)計(jì)報(bào)表模板的,所以在制作模板前先要知道數(shù)據(jù)庫(kù)的類(lèi)型、地址、訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)名密碼,兩者建立一個(gè)數(shù)據(jù)連接后才可開(kāi)始設(shè)計(jì)模板。然后依據(jù)所需功能(表格展示?填報(bào)?dashboard分析?)和表樣來(lái)操作模板,最后在web端展示。
制作模板時(shí)處理的對(duì)象是數(shù)據(jù)字段(區(qū)別于Excel的單元格數(shù)據(jù)),模板中一個(gè)單元格放一個(gè)數(shù)據(jù)字段,web端展示時(shí)字段擴(kuò)展。FineReport報(bào)表中單元格的擴(kuò)展是有方向的,可縱向擴(kuò)展,也可橫向擴(kuò)展,也可以不擴(kuò)展。
單元格的擴(kuò)展是針對(duì)某一個(gè)單元格,當(dāng)報(bào)表主體中綁定了多個(gè)單元格時(shí),單元格與單元格之間依靠父子格關(guān)系跟隨擴(kuò)展。子格的數(shù)據(jù)會(huì)根據(jù)父格的數(shù)據(jù)進(jìn)行過(guò)濾分組顯示,并且還會(huì)跟隨父格的擴(kuò)展方向而擴(kuò)展。
2、三大類(lèi)報(bào)表設(shè)計(jì)方式,解決日常所有報(bào)表需求,并且一表復(fù)用。
1)普通模板設(shè)計(jì),此者最常用。依靠著單元格的擴(kuò)展與父子格的關(guān)系來(lái)實(shí)現(xiàn)模板效果,可進(jìn)行參數(shù)查詢(xún),填報(bào)報(bào)表,圖表設(shè)計(jì)等。比如交叉報(bào)表、行式報(bào)表、分組報(bào)表等等。
2)聚合報(bào)表設(shè)計(jì),針對(duì)不規(guī)則大報(bào)表。適用于一張模板中顯示多個(gè)獨(dú)立模塊的報(bào)表,幾個(gè)報(bào)表塊匯總在一起的復(fù)雜報(bào)表。
3)決策報(bào)表設(shè)計(jì),就是表單,也是dashboard,用于彌補(bǔ)普通報(bào)表分頁(yè)預(yù)覽不能展示控件的問(wèn)題。同時(shí)表單可以進(jìn)行自由拖拽設(shè)計(jì),自適應(yīng)頁(yè)面大小顯示,自由制作駕駛艙可以更好的在各種大小類(lèi)型的屏幕上展示,包括移動(dòng)端、大屏。
以下舉例一些常見(jiàn)的報(bào)表格式。
交叉表
行式報(bào)表
分組報(bào)表
自由報(bào)表
3、參數(shù)實(shí)現(xiàn)數(shù)據(jù)查詢(xún)和過(guò)濾
在很多情況下,我們需要根據(jù)條件查詢(xún)數(shù)據(jù),過(guò)濾。在FineReport中,通過(guò)設(shè)置參數(shù)綁定數(shù)據(jù)字段和過(guò)濾的控件(單選框復(fù)選框等等),參數(shù)可用JS編輯更多復(fù)雜的情況,通過(guò)界面輸入查詢(xún)條件來(lái)控制報(bào)表顯示的內(nèi)容及形式,而后導(dǎo)出打印。
4、填報(bào)
填報(bào)就是向數(shù)據(jù)庫(kù)中錄入數(shù)據(jù),用于固定格式固定條件的數(shù)據(jù)收集。就好比你注冊(cè)知乎時(shí)提交的郵箱、收集、用戶(hù)名、密碼,都會(huì)按照格式存放到數(shù)據(jù)庫(kù)中。
填報(bào)也需要一個(gè)模板,操作流程如下:
填報(bào)模板由控件組成,文本控件、數(shù)字控件、密碼控件、單復(fù)選框、網(wǎng)頁(yè)、文件等等??丶?duì)應(yīng)著數(shù)據(jù)字段。有了填報(bào),就可以收集數(shù)據(jù),并且允許用戶(hù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的增刪改。出于數(shù)據(jù)質(zhì)量和數(shù)據(jù)安全的考慮,還可以對(duì)填報(bào)進(jìn)入的數(shù)據(jù)做校驗(yàn)操作。
5、打印 &導(dǎo)入導(dǎo)出
FineReport的打印方式分為客戶(hù)端打印和服務(wù)器端打印。
服務(wù)器端打印就是使用報(bào)表應(yīng)用所在的服務(wù)器,連接的打印機(jī)進(jìn)行打??;
客戶(hù)端打印就是使用本地連接的打印機(jī)進(jìn)行打?。挥址譃镕lash打印、PDF打印、Applet打印以及本地打印。
出于對(duì)Excel的支持,有各種方式(如下)導(dǎo)出成Excel文件,同時(shí),設(shè)計(jì)器中可導(dǎo)入Excel,填報(bào)也可直接導(dǎo)入帶有數(shù)據(jù)的Excel表樣。
二、如何制作酷炫的Dashboard可視化酷炫的dashboard都需要通過(guò)FineReport的表單(決策報(bào)表)來(lái)設(shè)計(jì)展現(xiàn)。通過(guò)拖拽報(bào)表塊、圖表塊和各類(lèi)控件初步設(shè)計(jì)界面。
不同于普通報(bào)表,普通報(bào)表是一個(gè)整體,無(wú)法實(shí)現(xiàn)局部刷新。表單是由各個(gè)組件組成,可以實(shí)現(xiàn)組件內(nèi)刷新,即局部刷新。像動(dòng)態(tài)大屏都是全局或者局部刷新的,所以需要用決策報(bào)表制作實(shí)現(xiàn)。
1、決策報(bào)表制作過(guò)程
新建表單:FineReport支持新建工作薄,即普通報(bào)表模板,還支持新建表單,兩種設(shè)計(jì)模式;
拖入組件:FineReport表單支持多種不同的組件類(lèi)型,包括報(bào)表塊、tab塊、絕對(duì)畫(huà)布?jí)K、參數(shù)、圖表和控件等等;
定義數(shù)據(jù)集:定義各個(gè)組件數(shù)據(jù)來(lái)源,圖表組件數(shù)據(jù)即可來(lái)源于數(shù)據(jù)集,也可來(lái)源于單元格;
設(shè)置表單樣式:即設(shè)置表單的顯示樣式。
2、數(shù)據(jù)可視化與交互
很多網(wǎng)友以前給我留言,問(wèn)這樣的可視化是什么圖表制作的。其實(shí)大多由FineReport自帶的H5圖表。此前有提到FineReport良好的開(kāi)放性,可讓IT同事寫(xiě)代碼開(kāi)發(fā),所以在制作時(shí),也可接入Echarts等第三方控件來(lái)制作圖表。
3、實(shí)用而強(qiáng)大的數(shù)據(jù)地圖
finereport有很強(qiáng)大的地圖功能:基本地圖、GIS地圖、熱力地圖、大數(shù)據(jù)流向地圖等。
GIS地圖基于GIS地圖層進(jìn)行數(shù)據(jù)展示,支持自定義GIS主題風(fēng)格,能夠與數(shù)據(jù)表鉆取聯(lián)動(dòng)。比如省級(jí)鉆取到市級(jí)、縣級(jí)、街道。
三、總結(jié)以上便是FineReport一部分功能,篇幅有限,很多細(xì)節(jié)無(wú)法展開(kāi)。
要說(shuō)效率,最大的好處就是從數(shù)據(jù)庫(kù)中讀出數(shù)據(jù)自動(dòng)產(chǎn)生報(bào)表,且一類(lèi)報(bào)表做成一個(gè)固定樣式的模板,每次只要同步一下,自動(dòng)生產(chǎn)周期性的報(bào)表,如日?qǐng)?bào)、周報(bào)、月報(bào)、季報(bào)等。 每次按照條件查詢(xún),Excel批量導(dǎo)出/打印,少了人力去一個(gè)一個(gè)用Excel統(tǒng)計(jì)匯總。
而且操作上,大多數(shù)功能FineReport都封裝成模塊了,包括寫(xiě)SQL取數(shù),匯總篩選過(guò)濾等,基本上都有對(duì)應(yīng)的功能鍵。像著名的資產(chǎn)負(fù)債表,如果按照以往寫(xiě)代碼或者寫(xiě)復(fù)雜的SQL語(yǔ)句,就有點(diǎn)摧殘生命了,而且那天書(shū)般的SQL語(yǔ)句要是出點(diǎn)錯(cuò)誰(shuí)來(lái)查,如果數(shù)據(jù)來(lái)自多個(gè)源,那就徹底無(wú)法解脫了。
其次,在數(shù)據(jù)處理速度上,由于性能一部分依靠數(shù)據(jù)庫(kù),一部分依靠FineReport的行式報(bào)表引擎,相比于Excel的單機(jī)效率,幾十萬(wàn)行的數(shù)據(jù)秒出。再者,企業(yè)數(shù)據(jù)庫(kù)有各種自帶或第三方的集群方案,通過(guò)堆機(jī)器就可以近似于無(wú)限的加大數(shù)據(jù)儲(chǔ)存能力。
最后,F(xiàn)ineReport除了解放個(gè)人,最大的貢獻(xiàn)應(yīng)該是對(duì)企業(yè)。在商業(yè)用途上,我們要考慮效率,人員的培訓(xùn)成本,協(xié)同性,還要考慮對(duì)企業(yè)業(yè)務(wù)的支撐、貢獻(xiàn),這幾點(diǎn)Excel是比較難發(fā)揮貢獻(xiàn)的。有知友說(shuō)“Excel用得再溜,老板也不會(huì)給你漲工資,可能還革了其他同事的命”。那是因?yàn)镋xcel處理了數(shù)據(jù),但沒(méi)有得到有效結(jié)果去服務(wù)于業(yè)務(wù)帶來(lái)效益。那如果在報(bào)表之后,基于業(yè)務(wù)基于指標(biāo)去做特定主題的數(shù)據(jù)分析,站在公司角度做數(shù)據(jù)化管理,為領(lǐng)導(dǎo)的業(yè)務(wù)決策提供有效意見(jiàn),這樣的高度就別有不同了。