WordPress Core 5.0seo薪資
前面幾篇已經(jīng)把E6開發(fā)平臺配套的Word模版隱藏NVeloDocx的基礎(chǔ)用法介紹了一遍,這些基礎(chǔ)用法基本上可以完全覆蓋實際業(yè)務(wù)的絕大部分需求。所以我們這一篇就介紹一些邊邊角角的內(nèi)容,給本系列來一個首尾。
本篇的主要內(nèi)容有:
1、匯總計算:比如我們經(jīng)常遇到的Word報告中的配件清單,需要能夠計算總耗時,總費用等等;
2、E6腳本:基于NVeloDocx,我們同樣可以使用E6腳本,比如使用E6腳本進行日期格式化,進行金額字段的小寫數(shù)字轉(zhuǎn)換成中文等等;
3、水印:水印也可以通過NVelocity命令進行填充;
下面我們來一個個進行介紹:
匯總計算:
比如我們在使用子表數(shù)據(jù)填充Word表格的時候,很多時候需要顯示一個匯總行,甚至于某些情況下還需要把金額轉(zhuǎn)換成大寫形式,如下圖:
子表最后一行是匯總行
那么我們怎么設(shè)置這個模板呢?還記得前面《根據(jù)NVeloDocx Word模板引擎生成Word(二)》中已經(jīng)介紹過子表輸出到Word表格時的模板語法,這里也是一樣的,只不過要匯總我們必須要一個新變量(下圖模版中的$total)來保存每個循環(huán)的疊加匯總。
?模版
變量的定義自然需要再循環(huán)開始前進行定義,所以我們在#foreach前定義變量#set($total=0)。
變量的匯總我們在#end前,先把要匯總的字段值取出來賦值給變量$baofei,也可以不用這么做,這么做的原因主要是讓后面的匯總命令短一點,不易出錯而已。所以下面兩種寫法都是對的:
第一種:就是上圖中的這種:
#set($baofei=${child.GetValue($item,"baodanbaofei")})
#set($total=${utils.Add($total, $baofei)})?# 這里表示把total變量和保費變量相加后再復制給total
第二種:直接相加(不建議這種方式)。
#set($total=${utils.Add($total, ${child.GetValue($item,"baodanbaofei")})})
這里為了實現(xiàn)兩個變量相加,我們引入了一個工具方法utils.Add(參數(shù)1,參數(shù)2),為什么要這么做呢?因為如果直接使用#set($total = $total + $baofei)的話,就可能失敗,我總覺得這是NVelocity的一個Bug!!!
匯總后要把匯總金額轉(zhuǎn)成大寫,通過工具方法${utils.ToCapital($tatal)}?即可,如上面的模版圖。
E6腳本:
在NVeloDocx模版引擎中也可以使用E6腳本,最常見的比如顯示當前日期,比如報告日期就可以使用E6腳本來實現(xiàn):
報告日期?
模版如下:通過工具方法 ${script.Exc("Today()")} 來執(zhí)行一個E6腳本,其中 "Today()"就是要執(zhí)行的E6腳本。
模版?
水印:
比如要在生成的Word中顯示水印信息,當前“用戶名+用戶編號”這種顯然是一個動態(tài)的信息,就可以通過設(shè)置水印為E6腳本,生成Word時再進行動態(tài)計算。
?水印效果圖
在Word中設(shè)置水印的方法:
設(shè)置中-水印菜單
?選擇自定義水印
設(shè)置水印“文字”為E6腳本?
在水印設(shè)置時,就可以設(shè)置水印“文字”為執(zhí)行E6腳本:
${script.Exc("UserName()+UserNO()")}
其中:
UserName():E6腳本,表示當前登錄用戶的姓名;
UserNO():E6腳本,表示當前登錄用戶編號;
這樣生成的Word文檔中,水印就會自動替換成當前操作用戶的用戶名+用戶編號。
總算完結(jié)了,給有需要的朋友一個參考。