iCoder强大的Word套表功能
訊光科技/張育誠
前言
在iCoder& EEP的套表功能中,Word的套表方式通常都是單筆資料的呈現。但客戶的需求往往不僅如此,例如明細資料的呈現,需要在一份Word套表中,一次將完整的資料印出來;有時是資料筆數很多,希望可以固定筆數換頁;或某些單據的列印格式希望能支援中一刀;或有一些需求要套印合約書的範本等等…。根據上述的不同需求,訊光也提供了越來越多樣化的套表列印方式,以下的三種範例有幾種不同的選擇,如:表格插入型、表格套表型、位置套表型等。
表格插入型
有些單據除了主檔外,還伴隨著單據的明細在文件的中間或下方,而此時筆數也不一定都一致,固定資料筆數沒有辦法解決此問題,所以我們須透過明細不限制筆數的方式,作出主檔明細同時存在的套表,讓其可以自由延伸,明細資料實際有幾筆,文件上就印幾筆。
如下的匯入Word格式:
此處要注意的只有畫面需要印出明細的欄位填入##,作為明細欄位呈現的位置,當資料筆數超過當初Word所設計明細表格的筆數時,系統自動會在明細下方增加不足的資料行。
匯出Word內容:
這裡可以看到原本匯入的範本文件中僅有4筆資料行,而當實際明細資料筆數超過4筆時,套表功能會自動作明細資料的延伸。如果要用動物來舉例的話就像臘腸狗,隨著明細資料的增加,肚子會越來越長。
表格套表型
當上述的狀況遇到明細筆數很多要分幾頁印出時,明細中間無限延伸的方式如每頁需要重印所有的表頭與表尾資料時,就會無法滿足用戶需求。透過iCoder可以改定義如下:
匯入Word格式:
其實匯入的文件跟上一個例子中的報價單幾乎一樣,可以看到表頭中的”電話”與”地址”多了一個”^F”的符號,代表了這兩個欄位只會在第一頁才會印出;表尾的”合計未稅”與”稅額”等則多了”^L”的符號,代表了這三個欄位只會在最後一頁才會印出。
重點在於:
在iCoder預設產生的匯出按鈕,一般是按”表格插入型”的方式印出,原本呼叫的程式碼方法為”exportWord”,此時要改成”exportWordLoop”即可使用”表格套表型”方式印出。如下:
匯出Word內容:
注意,上面的5筆明細資料被分成兩頁印出(因為第一頁只畫了4列的空間),且只有第一頁有”電話”與”地址”的資料,最後一頁才有”合計未稅”及”稅額”等的金額。
特色提示:
另外這種列印方式(exportWordLoop)也可以一次將多筆報價單(不同主檔),同時列印在同一份Word中,不像預設的(exportWord)只能列印某一筆報價單內容。
中一刀格式:
這種方式也可以應用在中一刀(A4紙張的一半)紙張格式來列印,只要透過Word來設定紙張的大小即可,如下的出貨單格式:
位置套表型
有時Word的文件內並沒有表格或格線能夠區分標題與欄位,但又希望能夠直接把資料套印在Word文件內時,如以下的合約書例子,在原來iCoder‘#’ 欄位符號後面,加上”:ColumnName”及以”@”結尾方式,來自由定位套表的位置。
匯入的Word格式:
上面紅色的字代表合約每次會變動的欄位,iCoder使用了”#”來代表欄位位置,因合約書的格式是沒有標題名稱的,所以欄位命名需要事先以”:欄位名稱”來定義(如”:甲方”代表欄位名稱為”甲方”);再則”#”後面所定義的參數會與合約書文字內容混淆,所以必須以”@”來代表結尾。
上面的”#”內的參數{…} 代表預設值的內容(新增時的預設值),如{2500} 代表預設為2500,{台北市民生西路290號8樓} 代表預設固定的地址。
匯出文件畫面:
以上,在文件中沒有格線的狀況下,透過這個自由設定套表欄位位置的方法,就可以不受表格侷限的呈現這種合約書類型的套表功能。
結語
在Word套表中,隨著使用者各式類型的需求,iCoder & EEP也陸續推出了強大的功能來滿足不同的報表。不管是多筆明細的自動延伸,還是希望固定每頁的高度,超過筆數就自動換頁,同時還能重複表頭。甚至多筆主檔同時列印在同一份Word之中;連同中一刀的格式以及沒有格線也能夠判斷的欄位位置等等。訊光的研發團隊持續不斷地推出強大的套表功能,只為了讓客戶達成使用者各式各樣的報表需求,期盼讓設計套表這件事情,能夠像呼吸喝水般輕鬆簡單。