联系
我们

工作日 9:00-18:00

13632615190

常见错误排查

NVeloDocx是基于NVelocity和OpenXml的Word模版引擎,所以遵循NVelocity的语法,但是要求上更为严格,但同时也更为健壮,能够提前解析并发现很多语法错误。


这里给出一些常见错误,供您参考:

1、发布报错:

正由另一进程使用,因此该进程无法访问此文件

image.png

这是由于您正在编辑Word模板,所以关闭Word,重新发布即可。


2、缺少括号,比如下面命令会报错:

“#foreach($str in ${utils.SplitStr(${data.GetValue("beizhu")})}”中缺少“)”

检查后我们发现,“(”、“{”这两个括号没有完全匹配,缺少了“)”。

正确的应该是:#foreach($str in ${utils.SplitStr(${data.GetValue("beizhu")})})


3、括号不匹配

“${utils.SplitStr(${data.GetValue("beizhu")}))}”中的括号“{”和“)”不匹配

检查后发现,确实存在括号不匹配。

正确的应该是:${utils.SplitStr(${data.GetValue("beizhu")})}),存在了多余的“)”

image.png


4、Encountered...

错误段落:“#if("${data.GetValue("__Level__")}"=="A")”;错误信息:Encountered "__Level__" at line 1, column 23.

这种往往就是语法错误。比如上面的错误的段落中的if命令后面的"${data.GetValue("__Level__")}",这里由于是用了双引号,但是双引号里面又有双引号,这是不符合语法规范的,我们可以写成:"${data.GetValue('__Level__')}"中间的GetValue('__Level__')用单引号就对了。


5、书写不规范

“${word.InsertBarChart(${data.GetChild("Policy","DataGridViewForGroupBy1"),"保单汇总",140,90})}”书写不规范,逗号只能包含在(..)或者[..]中

这种粗看好像是没有问题的,括号这些都匹配,但是仔细检查后,结合错误原因发现原来是这样的:

${data.GetValue("Policy", "xxxx"), "保单汇总", 140, 90} 这里不符合规范,${} 不是方法,所以不能包括逗号。


image.png