讓使用者自己寫報表-iReport做到了
訊光科技/張育誠
前言
多年來EEP開發工具中,多數是以表單操作為主體,但使用者總是會有各種五花八門的報表或是統計需求,而且各部門所要的報表與資料也會不同,通常就會讓已經很忙碌的IT部門更加難以應付。
因此,有沒有可能讓使用者自己來設計報表呢?隨著Low-Code工具的盛行,市場上以終端使用者為對象的各式Low-Code的報表工具就如雨後春筍般冒出來;這樣就真能讓使用者自己設計報表嗎?其實不然,除了使用者的水平外,最難的就是是否免學習就能順利上手。
有鑑於此,我們在新的EEPCloud與EEP .NET Core產品中,加入了這個iReport的新模組,提供了一個Runtime親和介面,讓使用者不必學習程式,也能輕鬆的設計自己想要的報表。
什麼是iReport
簡單來說,就是讓使用者在EEP的Runtime(執行階段)介面中,就能快速設計屬於自己的報表,其特色與優點如下:
1. 提供終端User自行設計報表的能力,並滿足用戶的彈性需求。
2. 減低資訊人員負擔,資訊人員只需要設計頁面供User使用,即可提供iReport的功能讓User自行設計。
3. 因為要給User使用,所以完全無須撰寫程式碼。
4. iReport使用RWD的介面,User可利用個人電腦、平板、手機等設備輕鬆設計各式報表。
5. User透過iReport可以進行Word套印設定、Excel套印設定、PDF報表清冊設定、樞紐分析設定、統計圖表設定等功能,如下:
6. 多樣選擇:EEPCloud雲端平台及EEP .Net Core實體平台,皆支援iReport功能。
如何讓User使用iReport
在EEP的每個RWD表單上,都可以在設計畫面的功能按鈕(ToolItems)加入UserDefined這個按鈕,即可讓User使用iReport來設計自己的報表,就是這麼簡單。因為iReport就是利用資訊人員設計好的表單(已經有現成的資料來源與查詢介面),而不要讓User去煩惱資料表是哪一個,要下什麼條件等問題,通常這部分對User來說比較難以理解。
如上,將"UserDefined"按鈕拖入DataGrid中,這樣在Runtime頁面上就會有iReport這個"自訂報表"的功能了。
Word套表
Word的套表,顧名思義,你只要依照目前表單顯示出來的欄位來設計一張空白的Word表格即可,如下,只要表格上定義的欄位名稱一樣,資料就套印出來。
也可以下載別的User所設計的或開發者事先設計好的範本,修改格式再重新上傳即可。
如下,為上面空白客戶資料表.doc表格所套印出來的結果。
印表時,除了輸出成Word格式,也可以選擇PDF格式下載,或直接以Email發送出去。如下:
Excel套表
與Word一樣,表單上的資料可以用同樣的方式套印到Excel當中,Excel可以下載別的用戶設計的或是開發者事先設計的重新修改即可:
如下,設計一個空白的Excel表格,並重新上傳即可。
透過iReport會將User所查詢出來的資料套到你自訂的Excel表格中(只要欄位一樣就可以套上去),如下:
除了自行上傳,Excel的套表也是可以利用原來開發者所設計的Excel範本來做調整。例如我們下載開發者寫的Excel報表,將不需要顯示的欄位直接移除:
上傳Excel之後,重新印出來的結果如下:
同樣印表時,除了輸出成Excel格式,也可以選擇PDF格式下載,或直接以Email發送出去,如下為改以Email送出的方式:
對方會收到這樣的信件:
PDF報表
透過先前的CloudReport技術,提供給使用者親和的拖拉介面,可以讓User設計一個簡單的清冊資料,將表單的欄位以拖拉方式拖入報表的版面中即可;並可設定報表的基本屬性與每個欄位的屬性,甚至可以指定群組與加總等;最後可以輸出成PDF格式的報表。如下,左邊為表單上的欄位,中間為報表版面,下面為【報表屬性】 (基本設定):
接著可修改【欄位屬性】中欄位表頭標題、是否加總或顏色等等:
當資料需要分群進行分類或統計時,也可設定【群組設定】的群組欄位,如果搭配加總也會有群組統計效果。
如下為一個出貨統計表輸出成PDF報表的案例:
樞紐分析
這裡的樞紐分析,可以讓USER自行決定X軸與Y軸的欄位,還有想統計的欄位,User先以表單的查詢出結果後,透過iReport進行樞紐分析來呈現自訂的統計結果。
上圖中,左邊為表單的欄位,中間為樞紐分析區域,只要將欄位拖入【X軸欄位】或【Y軸欄位】區域中,並選擇【統計值欄位】。如果按下【預覽】將直接顯示該統計的結果:
最下方還有呈現方式可以選擇,除了表格數值外,還可以選擇各種統計圖的方式來呈現,如下為"堆疊圖":
統計圖
與上面的樞紐分析有點像,但此專門用來讓USER自己來設計統計圖表,同樣的操作模式,以表單上面所查詢回來的資料欄位為主,選擇要呈現的統計圖,將欄位拖入相對的統計項目當中即可。如下,圖表的類型有柱狀圖、橫向柱狀圖、折線圖、圓餅圖、環狀圖等五種圖表可以選擇。
如勾選"柱狀圖",只要拖拉表單欄位,放入【X軸欄位】與要統計的【Y軸欄位】即可,並勾選是否自動群組(重覆的資料統計成一筆X軸資料合併顯示)。以下為搭配兩個Y軸欄位顯示來比較或對照:
這是橫軸柱狀圖:
以下為折線圖:
這個為環狀圖:
設計權與使用權
iReport在自訂報表按鈕中,可針對不同的使用者(不同的程度),來區分兩種不同權限:
1. UserDefined(設計+印表)
2. UserPrint(單純印表)
UserDefined與UserPrint都一樣可以用來打開已經設計好的 iReport報表,差異在UserDefined可以設計新的或修改原有的iReport報表,而UserPrint只能用在預覽與印表,無法新增與修改報表。
| 預覽功能 | 設計/修改功能 | 印表功能 |
UserDefined | ○ | ○ | ○ |
UserPrint | ○ | X | ○ |
這是UserDefined的iReport界面:
以下為UserPrint(單純預覽與印表):
結語
iReport讓一般使用者擁有更多彈性,就算不會寫程式,也能滿足不斷變更的報表需求,讓User自己就能夠完成基本的報表,不用每次都來麻煩工作已經很繁重的IT部門或軟體業者。搭配權限設定,區分User對iReport的開發權和使用權,能夠設定報表的開發與使用權利,共享常用或好用的版本,並避免設計好的報表被異動或誤刪。產生的報表也可以直接Mail給相關承辦人或長官,操作更直覺。
iReport的強大功能也會收錄在我們新的EEP.Net Core平台中,提供IT部門強而有力的報表利器,實現Low-Code帶來的方便與利益。
相關文章