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

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

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

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

FineReport

這是一個開發人員很常用的web報表工具,使用簡單,可以

輕鬆製作各種複雜報表,批次生成同類型報表

。像週報月報這種固定報表,做好模板,定時排程可自動生成。

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

人啊,總是求懶心切。這裡我總結了

FineReport

製作報表模板的幾個技巧,比如複用資料集,複用模板元件,能大大降低重複工作量。

1.資料集複用

FineReport

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

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

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

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

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

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

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

這裡推薦一個又快又不容易出錯的方法——

notepad++

,它的好處體現在兩個方面:

可以直接用notepad++開啟cpt或者frm(類似於程式碼的形式),把裡面的資料集部分的程式碼複製到另外一個cpt或者frm裡,一步複製貼上就可以完全無錯地複用。

還可以一鍵替換用了很多次的模板引數,不需要自己一個個去改,十分方便。

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

2.編輯sql最佳化

FineReport是透過寫sql來提取資料的。

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

這個時候就可以安裝一款“高階資料庫查詢”外掛,該外掛提供了簡化sql輸入、無縫對接sql視覺化編輯工具的能力。

支援資料許可權管理,方便之餘更能兼顧安全;

支援語法提示、自動補全(支援補齊欄位名)和程式碼美化,讓具有不同sql程式碼編寫習慣的開發者也能便捷地熟悉對方的程式碼;

在sql中加入帆軟公式支援;

支援視覺化的sql builder,傻瓜式操作,透過簡單拖拽就能完成sql編寫,讓沒有sql基礎的業務人員也能完成簡單的sql編寫,大大降低了報表開發的門檻。

對比

預設sql編輯視窗:固定大小,程式碼無法自動美化:

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

高階資料庫查詢:可全屏展現,自動美化程式碼:

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

3.單元格部分屬性複用

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

但對於擴充套件、條件屬性、超鏈、控制元件等不能實現,直接把全部內容和設定直接複製過來還需要再調整,往往我們只想要複製它眾多屬性中的一個,那麼這裡推薦使用一款外掛——

可選擇性貼上,

可將單元格的一下部分單獨貼上:

元素(插入資料列、普通文字、富文字、公式、圖表、子報表、圖片、斜線);

擴充套件屬性(擴充套件分享、左父格、上父格、可伸展屬性、擴充套件後排序及排序公式);

樣式屬性(自定義屬性、文字格式/字型、單元格樣式/邊框/背景、對齊、換行、縮排等);

形態屬性(資料字典、條形碼、公式形態、金額線);

其他屬性(行高列寬調整、插入行策略、分頁設定等);

控制元件(文字、文字域、數字、密碼、按鈕、複選按鈕、日期、檔案等控制元件);

條件屬性(背景、字型、顏色、新值、行高、列寬等條件屬性設定);

超級連結(網路報表、郵件、網頁連結、動態引數、JS指令碼等);

也可全部貼上。

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

4.決策報表中元件複用

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

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

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

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

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

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

FineReport

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

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