1个工具,4个技巧,就能高效开发各种报表!
月末月初,年末年中,一大批報表需求涌來。每到這個時候,都覺得自己的表格技能格外雞肋,看到任何一個N天精通Excel的字眼都格外敏感。
但是,企業里批量的報表,爆炸的需求,縱使有再高的Excel技能也都招架不住。這時候恨不得有大神能寫個萬能腳本,一鍵搞定報表制作。
當然,萬能的代碼是沒有的,半自助化的報表工具倒有一個——FineReport。
這是一個供開發人員用的web報表工具,可以輕松制作各種復雜報表,批量生成同類型報表。像周報月報這種固定報表,做好模板,定時調度可自動生成。
但是,也有人會問,報表樣式迥異,很多都很難共用一張模板,需求多了,做模板也很吃力啊。
人啊,總是求懶心切。這里大師兄總結了FineReport制作報表模板的幾個技巧,比如復用數據集,復用模板組件,能大大降低重復工作量。
1 數據集復用
FineReport對數據的操作,是將數據從數據庫中提取出來作為“數據集”,然后再用于報表模板的設計和數據的展現集合。這樣做的好處是能將不同數據庫中的數據直接整合到一起,置于內存的數據處理性能也比較快。
在開發報表時經常會遇到需要復用已有數據集的情況,比如今天提取的一個數據集1個月前提取過。笨辦法就是把以前的數據集打開,復制取數的sql語句,然后復制粘貼,雖然也比較費時,但比重新輸入要好很多。
?
?
但是其他數據集的復用就特別麻煩了,特別是內置數據集。像模板內置數據集原理就是在模板數據集中新建一個類似數據庫表的原表,可作為模板的數據源來設計報表。但是是在原電腦上建立的數據庫連接,如果換一臺電腦這個鏈接就會失效,就看不了模板,這時候就可以直接將該模板的數據集定義成內置數據集或者在制作模板的機器上將該模板輸出成內置數據集模板,這樣該模板就可以在任何電腦上訪問了。
?
往往我們需要重新構建內置數據集,再重新錄入數據,可復用性為零,在另一個模板里使用其他模板已有的內置數據集就得重新做一個。除了費時間,再一點就是復用時操作太多容易出錯,而且是不易察覺的錯誤,這里推薦一個又快又不容易出錯的方法——notepad++。
它的好處體現在兩個方面:
① 可以直接用notepad++打開cpt或者frm(類似于代碼的形式),把里面的數據集部分的代碼復制到另外一個cpt或者frm里,一步復制粘貼就可以把所有各種類型的數據集(包括最麻煩的內置數據集)完全無錯地復用。
② 還可以一鍵替換用了很多次的模板參數,不需要自己一個個去改,十分方便。
?
2 編輯器sql優化
FineReport是通過寫sql來提取數據的。一般來說,我們取數都是從其他地方獲取測試有效的sql語句粘貼到FineReport中,比較麻煩。而設計器內部的sql編輯器沒有智能設置,且顯示區域較小,缺乏像navicat等自動聯想、自動檢測錯誤等人性化功能,導致開發報表時在設計器內部直接編寫sql語句很麻煩,并且FineReport內置的函數和數據庫的函數還有所區別。這個時候就可以安裝一款“高級數據庫查詢”插件,該插件提供了簡化sql輸入、無縫對接sql可視化編輯工具的能力。
(1)支持數據權限管理,方便之余更能兼顧安全;
(2)支持語法提示、自動補全(支持補齊字段名)和代碼美化,讓具有不同sql代碼編寫習慣的開發者也能便捷地熟悉對方的代碼;
(3)在sql中加入帆軟公式支持;
(4)支持可視化的sql builder,傻瓜式操作,通過簡單拖拽就能完成sql編寫,讓沒有sql基礎的業務人員也能完成簡單的sql編寫,大大降低了報表開發的門檻。
對比
默認sql編輯窗口:固定大小,代碼無法自動美化:
?
高級數據庫查詢:可全屏展現,自動美化代碼:
?
?
3 單元格部分屬性復用
他山之石,可以攻玉。很多時候我們能在別的模板中看到喜歡的設計,比如文字配色、背景色、邊框設置、條件屬性設置、超鏈效果等等,然后就想復制過來,但是一步步設置比較麻煩,希望能想復制粘貼一樣簡單地操作就能完成,現有的crtl+B可復制格式,但對于擴展、條件屬性、超鏈、控件等不能實現,直接把全部內容和設置直接復制過來還需要再調整,往往我們只想要復制它眾多屬性中的一個,那么這里推薦使用一款插件——可選擇性粘貼,可將單元格的一下部分單獨粘貼:
?
(1)元素(插入數據列、普通文本、富文本、公式、圖表、子報表、圖片、斜線);
(2)擴展屬性(擴展分享、左父格、上父格、可伸展屬性、擴展后排序及排序公式);
(3)樣式屬性(自定義屬性、文本格式/字體、單元格樣式/邊框/背景、對齊、換行、縮進等);
(4)形態屬性(數據字典、條形碼、公式形態、金額線);
(5)其他屬性(行高列寬調整、插入行策略、分頁設置等);
(6)控件(文本、文本域、數字、密碼、按鈕、復選按鈕、日期、文件等控件);
(7)條件屬性(背景、字體、顏色、新值、行高、列寬等條件屬性設置);
(8)超級鏈接(網絡報表、郵件、網頁鏈接、動態參數、JS腳本等);
(9)也可全部粘貼。
?
?
4 決策報表中組件復用
決策報表是專為解決駕駛艙類報表而開發的。不同于普通報表設計格子式界面,FineReport決策報表采用了畫布式操作界面,通過簡單的拖拽操作即可幫助用戶構建強大、全面的“管理駕駛艙”,在同一個頁面整合不同的企業數據,完美的展示企業的各類業務指標,實現數據的多維度分析。決策報表文件的后綴格式是frm。
制作大屏或駕駛艙時,也可以復用已有demo中的整個模塊,也可以復用其中的組件。
比如下面這個展示項目階段及節點時間的模塊,實際上使用了好幾十個控件疊加起來才可以有這樣的顯示效果。如果要自己一個一個疊加實現需要花費非常非常多的時間和精力才能做好,而且還需要不斷調試組件的大小和相對位置。
?
但frm里支持對多個組件的同時復制粘貼,并且可以一起放縮大小,保持整體比例和和各組件相對位置不變。
FineReport提供了組件云端共享和本地復用功能。將收集到的優秀 demo上傳到云端共享中心,大家可根據需要,自行下載自己喜歡的 demo,并應用到自己的決策報表之中,既節省了人力又做出了好看的報表。
此外,組件還支持本地復用,對任意選中的組件通過鍵盤可以進行復制、剪切、粘貼,支持在同一個報表模板內復用, 也支持在不同的報表模板間復用。
最后,一句話總結。對于復雜高頻的報表,尤其是企業報表需求,使用專用的報表工具,再掌握一些提高效率的技巧,絕對事半功倍。
歡迎關注我的公眾號“商業智能研究”,私信回復“資料包”,即可領取大數據、數據中臺、商業智能、數據倉庫等6G精華資料
總結
以上是生活随笔為你收集整理的1个工具,4个技巧,就能高效开发各种报表!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一家踏实做产品,在疫情下销售增速仍达35
- 下一篇: 在批评数据湖的时候,你有没有想过,它并不