联系
我们

工作日 9:00-18:00

13632615190

NVelocity基础知识

NVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。


比如我们要使用NVelocity构造一个语句:您好张三,今天是星期天。

如果我们要动态替换“张三”和“星期天”两部分为具体的值,则可以使用NVelocity语法构造这段话:

您好${xx},今天是${yyy}。

其中xx和yyy表示NVelocity的变量,在调用时传入具体的变量值。


取值:

1、变量:如果参数是普通文本,或者数值等等,则直接使用:${Name}这样的取数方法;

2、属性:如果参数是一个对象,要取对象的属性值则可以这么做:${cust.Name}或者${cust.Tel}等等;

3、方法:如果参数是一个对象,想调用这个对象的某个方法,那么可以这么做,如:${utils.ToCapital("123.45")} 其中utils参数就是一个对象,ToCapital就是这个对象的某个方法;


循环:

NVelocity的循环需要使用foreach命令,比如要循环某个子表则首先通过上面的“方法”从主表中获得子表数据后进行循环,以客户联系人CustomerContact子表为例


取子表数据:${data.GetChild("CustomerContact")}

赋值给变量:#set($child=${data.GetChild("CustomerContact")})


image.png


遍历过程中要获得联系人子表中当前行的某个“__Name__”字段的值,则使用下面的方法:

${child.GetValue($item,"__Name__")}


注意:#foreach和#end必须成对出现,有#foreach必须要有#end,否则报错。


条件判断:

某些时候,需要根据条件判断是否显示某个段落或者某些信息,则需要使用到NVelocity的if命令,比如当客户评级为A时,显示一个“优质客户”标签,则可以使用这样的条件命令:

#if(${data.GetValue("__Level__")=="A"}

优质客户!

#end


注意:#if和#end必须成对出现,有#if必须要有#end,否则报错。


赋值:

赋值就是把某个值赋给某个变量,比如前面“循环”中我们取子表数据赋值给child变量,用于后面的循环,就用到了:

#set($child=${data.GetChild("CustomerContact")})