08.06 1個工具,4個技巧,教你高效製作各種報表

月末月初,年末年中,一大批報表需求湧來。每到這個時候,都覺得自己的表格技能格外雞肋,看到任何一個N天精通Excel的字眼都格外敏感。

但是,企業裡批量的報表,爆炸的需求,縱使有再高的Excel技能也都招架不住。這時候恨不得有大神能寫個萬能腳本,一鍵搞定報表製作。

當然,萬能的代碼是沒有的,半自助化的報表工具倒有一個——FineReport

這是一個開發人員很常用的web報表工具,使用簡單,可以輕鬆製作各種複雜報表,批量生成同類型報表。像週報月報這種固定報表,做好模板,定時調度可自動生成。

但是,也有人會問,報表樣式迥異,很多都很難共用一張模板,需求多了,做模板也很吃力啊。

人啊,總是求懶心切。這裡我總結了FineReport製作報表模板的幾個技巧,比如複用數據集,複用模板組件,能大大降低重複工作量。

1.數據集複用

FineReport對數據的操作,是將數據從數據庫中提取出來作為“數據集”,然後再用於報表模板的設計和數據的展現集合。這樣做的好處是能將不同數據庫中的數據直接整合到一起,置於內存的數據處理性能也比較快。

在開發報表時經常會遇到需要複用已有數據集的情況,比如今天提取的一個數據集1個月前提取過。笨辦法就是把以前的數據集打開,複製取數的sql語句,然後複製粘貼,雖然也比較費時,但比重新輸入要好很多。

1個工具,4個技巧,教你高效製作各種報表

1個工具,4個技巧,教你高效製作各種報表

但是其他數據集的複用就特別麻煩了,特別是內置數據集。像模板內置數據集原理就是在模板數據集中新建一個類似數據庫表的原表,可作為模板的數據源來設計報表。

但是是在原電腦上建立的數據庫連接,如果換一臺電腦這個鏈接就會失效,就看不了模板,這時候就可以直接將該模板的數據集定義成內置數據集或者在製作模板的機器上將該模板輸出成內置數據集模板,這樣該模板就可以在任何電腦上訪問了。

往往我們需要重新構建內置數據集,再重新錄入數據,可複用性為零,在另一個模板裡使用其他模板已有的內置數據集就得重新做一個。除了費時間,再一點就是複用時操作太多容易出錯,而且是不易察覺的錯誤。

這裡推薦一個又快又不容易出錯的方法——notepad++,它的好處體現在兩個方面:

  1. 可以直接用notepad++打開cpt或者frm(類似於代碼的形式),把裡面的數據集部分的代碼複製到另外一個cpt或者frm裡,一步複製粘貼就可以完全無錯地複用。
  2. 還可以一鍵替換用了很多次的模板參數,不需要自己一個個去改,十分方便。
1個工具,4個技巧,教你高效製作各種報表

FineReport是通過寫sql來提取數據的。

一般來說,我們取數都是從其他地方獲取測試有效的sql語句粘貼到finereport中,比較麻煩。而設計器內部的sql編輯器沒有智能設置,且顯示區域較小,缺乏像navicat等自動聯想、自動檢測錯誤等人性化功能,導致開發報表時在設計器內部直接編寫sql語句很麻煩,並且finereport內置的函數和數據庫的函數還有所區別。

這個時候就可以安裝一款“高級數據庫查詢”插件,該插件提供了簡化sql輸入、無縫對接sql可視化編輯工具的能力。

  1. 支持數據權限管理,方便之餘更能兼顧安全;
  2. 支持語法提示、自動補全(支持補齊字段名)和代碼美化,讓具有不同sql代碼編寫習慣的開發者也能便捷地熟悉對方的代碼;
  3. 在sql中加入帆軟公式支持;
  4. 支持可視化的sql builder,傻瓜式操作,通過簡單拖拽就能完成sql編寫,讓沒有sql基礎的業務人員也能完成簡單的sql編寫,大大降低了報表開發的門檻。

對比

默認sql編輯窗口:固定大小,代碼無法自動美化:

1個工具,4個技巧,教你高效製作各種報表

高級數據庫查詢:可全屏展現,自動美化代碼:

1個工具,4個技巧,教你高效製作各種報表

SQL語句優化效果鏈接和插件下載,私信“插件”即可獲得

3.單元格部分屬性複用

他山之石,可以攻玉。很多時候我們能在別的模板中看到喜歡的設計,比如文字配色、背景色、邊框設置、條件屬性設置、超鏈效果等等,然後就想複製過來,但是一步步設置比較麻煩,希望能想複製粘貼一樣簡單地操作就能完成,現有的crtl+B可複製格式。

但對於擴展、條件屬性、超鏈、控件等不能實現,直接把全部內容和設置直接複製過來還需要再調整,往往我們只想要複製它眾多屬性中的一個,那麼這裡推薦使用一款插件——可選擇性粘貼,可將單元格的一下部分單獨粘貼:

  • 元素(插入數據列、普通文本、富文本、公式、圖表、子報表、圖片、斜線);
  • 擴展屬性(擴展分享、左父格、上父格、可伸展屬性、擴展後排序及排序公式);
  • 樣式屬性(自定義屬性、文本格式/字體、單元格樣式/邊框/背景、對齊、換行、縮進等);
  • 形態屬性(數據字典、條形碼、公式形態、金額線);
  • 其他屬性(行高列寬調整、插入行策略、分頁設置等);
  • 控件(文本、文本域、數字、密碼、按鈕、複選按鈕、日期、文件等控件);
  • 條件屬性(背景、字體、顏色、新值、行高、列寬等條件屬性設置);
  • 超級鏈接(網絡報表、郵件、網頁鏈接、動態參數、JS腳本等);
  • 也可全部粘貼。
1個工具,4個技巧,教你高效製作各種報表

粘貼插件詳細介紹和下載地址,私信“插件”即可獲得

4.決策報表中組件複用

決策報表,是專為解決駕駛艙類報表而開發的。不同於普通報表設計格子式界面,FineReport決策報表採用了畫布式操作界面,通過簡單的拖拽操作即可幫助用戶構建強大、全面的“管理駕駛艙”,在同一個頁面整合不同的企業數據,完美的展示企業的各類業務指標,實現數據的多維度分析。決策報表文件的後綴格式是frm。

製作大屏或駕駛艙時,也可以複用已有demo中的整個模塊,也可以複用其中的組件。

比如下面這個展示項目階段及節點時間的模塊,實際上使用了好幾十個控件疊加起來才可以有這樣的顯示效果。如果要自己一個一個疊加實現需要花費非常非常多的時間和精力才能做好,而且還需要不斷調試組建的大小和相對位置。

1個工具,4個技巧,教你高效製作各種報表

1個工具,4個技巧,教你高效製作各種報表

但frm裡支持對多個組件的同時複製粘貼,並且可以一起放縮大小,保持整體比例和和各組件相對位置不變。

FineReport提供了組件雲端共享和本地複用功能。帆軟官方將收集到的優秀 demo上傳到雲端共享中心,用戶可根據需要,自行下載自己喜歡的 demo,並應用到自己的決策報表之中,既節省了人力又做出了好看的報表。此外,組件還支持本地複用,對任意選中的組件通過鍵盤可以進行復制、剪切、粘貼,支持在同一個報表模板內複用, 也支持在不同的報表模板間複用。

最後,一句話總結。對於複雜高頻的報表,尤其是企業報表需求,使用專用的報表工具,再掌握一些提高效率的技巧,絕對事半工倍。


分享到:


相關文章: