Word/Excel打印模闆中選項、圖片和關聯記錄設計細則
在如何製作Word/Excel打印模闆中,我們學會一般的打印方法,本文再進一步介紹打印時的解析規則細節。
1、單選、多選字段打印未選中選項
平鋪類型的單選和多選字段如需打印未選中的選項,可在字段代碼的{}內結尾處填寫“_Alloptions”,例如:#{單選_Alloptions}。默認是橫嚮平鋪打印,如果需要竪嚮打印,結尾處繼續添加[V]標記,如#{單選_Alloptions[V]}
例如一個保密級彆字段,有秘密、機密、絕密三個選項,記錄中選擇瞭“機密”,打印時如果需要打印另外兩個選項,則字段代碼為#{保密級彆_Alloptions}
, 如果還需要竪嚮平鋪打印,字段代碼為#{保密級彆_Alloptions[V]}
2、圖片的打印規則
2.1圖片的寬度和高度設置
本記錄中的圖片支持打印,圖片支持設定寬度和高度。
如上圖中的附件字段代碼 #{附件$[90*auto]$}
中,[90*auto]錶示的是[寬度*高度]。
圖片的4種配置方式:
寬度固定、高度自適應 :
#{附件$[90*auto]$}
錶示圖片的寬度固定90,高度自適應。90是默認數字,可以自定義。寬度自適應、高度固定 :
#{附件$[auto*80]$}
錶示圖片的寬度自適應,高度固定80,數字可以自定義。寬度固定、高度固定 :
#{附件$[70*90]$}
錶示圖片的寬度固定為70,高度固定為90, 數字可以自定義。固定範圍內寬和高自適應 :
#{附件$[45*90_auto]$}
錶示圖片在45*90的範圍內自適應顯示,數字可以自定義。
高度和寬度不支持同時適應,例如
#{附件$[auto*auto]$}
。
2.2圖片的質量設置
為瞭滿足不同場景對圖片清晰度的要求,現支持Word模闆圖片解析為低、中、高三種圖片質量。
低(L)——對應圖片分辨率75,按照X3的倍數取圖片的寬和高;生成速度快,用於一般打印。
中(M)——對應圖片分辨率150,按照X6的倍數取圖片的寬和高;生成速度適中,打印較清晰。
高(H)——對應圖片分辨率300,按照X12的倍數取圖片的寬和高;生成速度慢,用於高質量彩色打印。
字段代碼示例:
#{附件$[auto*90_M]$}
、#{附件$[auto*90_H]$}
、#{附件$[45*90_auto_H]$}
1、不添加圖片質量標簽,錶示默認按照低質量的方式解析圖片。
2、為瞭保證解析的圖片不會比原圖大,故需要將轉換後的圖片尺寸與原圖做對比,若轉換後的圖片比原圖大,則返迴原圖。
3、字段的二維碼條形碼打印
可通過代碼獲取任意字段的二維碼或條形碼,字段代碼如下:
- 二維碼:
#{[qrcode]字段名$[20*20]$}
- 條形碼:
#{[barcode]字段名$[40*10]$}
代碼中,字段名可以使用字段ID,圖片大小的數字可以調整,其他內容和符閤不能修改。
二維碼編碼方式:QR-code,最大包含150個字(支持漢字);條形碼編碼方式:code128,最大包含30個字符(僅支持數字、字母、符號)。
代碼示例和效果:
幾個係統字段的字段ID
- 公開分享鏈接: sharelink
- 內部訪問鏈接:privatelink
- 記錄ID:recordid
4、子錶和關聯錶(多條)的幾種打印方式
方式1、顯示方式為列錶時
默認以錶格方式按照記錄順序逐行嚮下列齣所有記錄的字段值(包括空值)
示例1: 有張固定格式的采購單上麵的采購明細是一個采購清單需要一條條列齣來
模闆設計範例:
打印效果範例:
明細錶中的序號
Word模闆
明細錶中,需要使用到Word的功能,Word裏可以設置序號的樣式。
Excel模闆
需要利用Excel自身的功能,公式:ROW() 獲取當前單元格所在的行,然後減去前麵的行即可。如下圖,明細錶中第一行所在的行是8,通過公式獲取就是
=ROW()-7
,在打印時,後麵的明細行也會按這個公式顯示序號。效果:
閤並相同單元格
當同列的上下單元格內容相同時,可以閤並單元格。
閤並上下單元格的字段代碼寫法:
#{子錶名.字段名[M]}
隻需在原字段代碼的字段名和大括號之間寫個[M]即可。
如下圖:
效果:
以下情況不會閤並單元格
單價列設置瞭可閤並,上下單元格都是2000,並沒有全部閤並。這是因為前一列(SKU)也是設置瞭和並列,如果前一列(sku列)值不同沒有閤並,當前列(單價列)也不閤並。
方式2、逐條打印
如果需要將關聯記錄(列錶)或子錶中每一條記錄作為一個整體依次逐條打印,既每一行記錄打印時都能顯示字段標題,則可在錶格上一行和下一行插入以下代碼:
#Relation.Repeat[start]#
#Relation.Repeat[end]#
代碼之間的所有內容每條記錄都會復製一份,並填充對應數據,所以可以是多行多列排版格式
代碼不能和其他內容放在一個單元格中,需單獨一行。
例如:采購單中,將每一條采購明細單獨打印。
打印範例:
格式1比較常見的場景是工資條打印。
模闆範例:
TIPS:
如果每條記錄之間需要空一行,模闆中也空一行並設置為無邊框。
方式3、拼接打印
此方式會將同一個字段的所有值拼接在一起,用逗號隔開。
模闆範例:
隻需要在字段代碼的最後一個大括號前加上 [S]即可識彆。 英文的[],大寫的S。
方式4、填充打印
例如,子錶中有10行記錄,如果您隻打印明細錶中的指定行的記錄,則可以通過此方法打印。
如下圖示範代碼,隻需在錶名後麵添加序號即可,下麵代碼錶示隻打印前兩行記錄內容。
模闆範例:
效果:
子錶或關聯錶為空時不打印
如需不打印沒有數據的關聯錶/子錶,請將代碼兩個代碼標簽:#NoDataNotPrint[start]#
和 #NoDataNotPrint[end]#
插入到模闆中,代碼之間的關聯記錄/子錶沒有數據則不會打印,如下圖配置:
當關聯錶有數據時:
當關聯錶無數據時:
如果無數據的開始標簽和結束標簽之間有多個子錶/關聯錶,隻要有一個子錶/關聯錶有數據,無數據的子錶/關聯錶也會打印。因此建議一個子錶/關聯錶單獨配置一組標簽。並且,不同子錶/明細錶不能放在一個大錶格中,都要獨立配置一個錶格。
5.打印時間和打印人
除瞭打印記錄中的字段數據,有時顯示打印時間、打印人、記錄的二維碼、條形碼、創建時間、修改時間等信息。隻需將其對應的字段代碼/字段彆名粘貼到模闆中的相應位置,即可自動填充數據。
6.批量打印
批量打印的常見問題,點此查看
文檔問題反饋
文檔中是否有錯彆字、內容過期、難以理解等問題? 點此給我們反饋吧