iCoder的Excel報表實例
訊光科技/Joyce OU
前言
iCoder不但可以用Word來快速產生輸入表單與列印的套表格式外,更可以用Excel來產生查詢與統計報表。關於Word表格運用我們已在之前"iCoder智能編程實例"文章中為大家介紹過了;在此將介紹如何透過Excel針對各式的資料明細表或各類統計表來設計報表,例如員工的資料清冊、每天的日報表、出貨統計表、每月的實績報表等各式各樣的Excel報表。
iCoder對於Word上傳規格的操作,簡單分為四步驟,即 [ 定義現有表格 ] à [ 上傳表格 ] à [ 規格確認 ] à [ 編程匯出 ]。同樣的在Excel的運用上也是與其相同的步驟。
匯出Excel範本
如果您只有Word的Doc檔案,沒有Excel可做為列印的明細報表格式。可以透過Word的 [Excel匯出] 來匯出一個對應的 Excel範本,再重新以Excel讀入即可。
步驟如下:
1. 使用現成的Word表單 [客戶資料表] 填入設計參數 "#" 的相關定義(如下圖,說明如"iCoder智能編程實例"文章),登入iCoder上傳此Word表格,進行[保存] 與 [編程匯出] 後就會自動產生對應的資料表、表單頁面與Word套表。
2. 在Word的 [規格確認] 中(如下圖),透過以下 [Excel匯出] 可自動產生一個Excel的報表範本,如果您不想列印全部欄位可以調整畫面上的 "印表" 設定,取消勾選即不列印此欄位資料。我們把以下幾個欄位取消勾選 並 [保存] 後再匯出 Excel範本。
3. 自動產生的Excel範本(如下圖)。iCoder會自動填入欄位參數"#",其中"#Q"開頭代表為讓User輸入的查詢條件欄位。"$" 開頭代表系統變數,如下$TODAY代表印表日期,$USERNAME代表印表者名稱。
4. 透過 [新增] -> [Excel] 功能將您上圖的Excel範本 "客戶資料表.xlsx " 上傳後,畫面會新增一個頁籤 "客戶資料表"的 "印表欄位設定" 頁面提供確認(如下圖)。
註: 此上傳會依 #M:客戶資料表 定義的資料來源帶入對應的欄位規格。
5. 上傳完成後,可直接按下[保存] [編程匯出] 即可。此時只需要3秒鐘iCoder就會自動產生Excel對應的報表程式。
6. 點選 [預覽] 會呈現RWD自動寫好的程式頁面,同時透過此頁面使用者就可以針對資料 查詢/印表(匯出) 了。
7. 圖中的 [印表] 可以把資料套印到原來的Excel表格上(如下圖),並在電腦、平板、手機上皆可執行。
設定加總公式
如上的Excel報表範本是可以設定計算公式的,因為所有"#"的欄位位置都是使用插入的方式,所以只要"#"欄位在Excel的計算公式範圍內都是有效的。
1. 如下圖,我們把上例中的 "營業額" 以Excel的公式加入加總設定"=SUM(I5,I6) ",公式SUM的範圍為 (標題攔 , 一資料儲存格)。
2. 接著我們重新用 [新增] / [Excel] 將這個更改過的Excel範本重新讀入 iCoder中,如下圖,會詢問"客戶資料表"已經存在,是否覆蓋? 按下 [確定] 即可將其覆蓋。
3. 重新按下 [保存] / [編程匯出] 後再 [預覽],同樣在頁面中暫不輸入查詢條件直接點選 [查詢] 畫面會呈現所有資料,接著按下 [印表] 把資料套印到 Excel中,如下圖會得到最新的加總效果。
設計Excel範本
以上,是假設沒有Excel報表格式的情況,接著我們就直接以Excel來設計報表,通常都是以現成的Excel格式加工一下即可使用。
1. 我們就以 "出貨統計表" 為範例(如下圖),相同在Excel報表中填入設計參數 "#" 的相關定義(於後面章節會有較詳盡的說明),其中 #M:INVO用來定義此出貨統計表的資料表為INVO,"#G"則代表群組的欄位(用來分群),"#NT"代表為數值且要加總的意思。
2. 因 "出貨統計表" 中的 "出貨單" 必須先上傳到 iCoder產生出貨單的資料表,其出貨單的 Word表格如下圖,透過 iCoder上傳產生"出貨單"的資料表與輸入頁面。(在iCoder執行[新增] / Word,然後[保存]並執行[編程匯出]即可)
3. 在iCoder中執行 [新增] / Excel,上傳Excel後會產生 [印表欄位設定] 與 [查詢設定] 兩頁籤,如下圖。
[印表欄位設定] :依Excel中以 "#" 所定義的資料來帶入相關欄位規格。
[查詢設定] :帶入Excel中以 "#Q" 所定義的查詢條件。
4. 透過系統工具列的 [保存] 會自動存檔與執行 [編程匯出],自動產生對應的查詢頁面與報表等相關程式。
5. [預覽]:點選預覽模式的切換可檢視 手機、平板、電腦 等網頁頁面的視覺效果如下。
6. 輸入條件查詢後,以 [印表] 的方式取得報表的Excle檔案結果如下圖。
Excel的欄位參數
接著我們就針對iCoder於Excel表格中的 "#" 參數定義說明如下:
1. 查詢條件欄位的定義:當User要列印或下載此Excel報表時,會先出現查詢條件輸入的頁面,其中查詢條件的欄位設定以"#Q"開頭,部分說明如下:
標記類型 |
說明 |
查詢條件 |
範例 |
QT
|
Text,一般的查詢欄位,通常是文字類型。 |
=等於 %開頭 $包含 |
名稱:#QT%,查詢名稱為某字串開頭的資料 備註:#QT$,查詢備註包含有某內容的資料 |
QD |
Date,日期欄位查詢,通常會以範圍來查詢 |
=等於 >大於等於 <小於等於 |
交貨日:#QD>,交貨日大於等於某日期的資料 交貨日:#QD<,交貨日小於等於某日期的資料 |
QR
|
RefName,查詢某個編號值,並使用關聯選單讓User選擇 |
=等於
|
客戶編號:#QR= 客戶資料,查詢客戶編號為某個值的資料 |
QC |
Combol,查詢某個內容值,並使用下拉選單 |
=等於 %開頭 $包含 |
稅別:#QC= 應稅 未稅 免稅,選擇查詢指定稅別的資料 規格:#QC$ 產品規格,選擇查詢規格包含有某內容的資料 |
M: |
用來指定資料表的名稱,沒有設定時,資料表名稱就與Excel的檔名一樣。 |
|
出貨統計表 #M:INVO,代表資料來源為INVO資料表 |
$ |
代表系統變數,如可以使用$TODAY、$USER、$USERNAME等 |
|
印表日期:$TODAY 印表人:$USERNAME |
2. 印表欄位定義:當User要列印或下載此Excel報表時,會以此設定匯出到Excel報表上的資料欄位,其"#"的參數部分定義如下:
標記類型 |
說明 |
範例 |
T |
Text,一般字串欄位,通常沒設定就代表Text |
客戶編號 # |
N 或 NT |
Number,一般的數值欄位,如果是'NT'代表Number+Total,與數值欄位一樣,多了會進行加總。Number後面通常會設定數值的格式,如N0代表沒有小數點 |
庫存量 #N N0 營業額 #NT N2 |
R
|
RefName,會以編號去關聯名稱並列印出名稱欄位。 |
員工姓名 #R 員工資料 |
D 或 DT |
Date或DateTime,日期或日期+時間的欄位,通常後面會有日期的格式設定,如 YYYY/MM/DD來代表日期格式 |
出貨日 #D YYYY/MM/DD 出生年月日 #D YYY-MM-DD,代表民國年 起始時間 #DT YY-MM-DD HH:MI:SS |
E |
Element,多欄位資料印出,此必須配合當初Word表單上的'#E'的參數設定,才能夠還原資料的格式,如: '#E 帳號:#,銀行:#,合格:#'等格式。 |
付款方式 #E 月結:#天,隔月:#日請款 最高學歷 #E 學校:#,科系:#,畢業年度:# |
G
|
Group,列印時會自動按照此欄位排序與作為群組的依據(相同的資料會被合併),如果以配合'#NT'加總欄位,也會進行群組的小計與合計。 |
客戶編號 #G |
結語
iCoder的主旨是希望藉由企業平日使用的Word、Excel表格格式,少許加工後,即可自動完成表單輸入的頁面程式,及將單據資料套回到原來的Word表格及Excel的報表上。如果User有特殊功能無法使用iCoder來滿足需求時,亦可透過最終的EEPCloud平台給專業的開發者來進行二次開發。在 iCoder上所產生的頁面無論是電腦、平板、手機上皆可執行,讓企業的系統可以快速往外延伸到行動化的應用。
除外之外,iCoder也針對表單與表單間的商業邏輯處理提供了常用的解決方案,可以用視覺化拖拉的方式定義表單與表單的邏輯關係,我們將會在後面的文章中持續為各位介紹,請各位拭目以待。