再谈表达式计算
前面的章节已经提到,可以在Excel报表中直接进行表达式计算,表达式用符号"<"和">"括起来。
例如:
<"编号:" & [编号]>
<CUMoney([金额])>
不过下面两个表达式却不能正常计算:
<[%Sum(金额)] & "元">
<CUMoney([%Sum(金额)])>
[%Sum(金额)]这种用于数据统计的格式,在表达式中出现的时候,必须用符号*括起来,所以上面两个表达式应该修改为:
<*[%Sum(金额)]* & "元">
<CUMoney(*[%Sum(金额)]*)>
实际上除了[列名]这种标准数据引用格式外,所有其他格式,在表达式中出现的时候,都必须用符号*括起来。
下面我们来总结一下这些非标准的格式。
正如前面所言,数据统计格式在表达式中出现的时候,必须用符号*括起来,例如下面的表达式是错误的:
<Round([%Sum(金额)] /10000,2) & "万元">
正确的表达式为:
<Round(*[%Sum(金额)]* /10000,2) & "万元">
我们在学习标签打印的时候,已经知道下面的格式:
[列名+X]
表示细节区数据行之后的第X行,X是个整数,例如:
[数量+2]
表示细节区数据行之后第2行的数量列。
这种跨行引用数据的格式参与表达式计算的时候,也必须用符号*括起来,例如:
<IIF(*[数量+1]* > 100, *[数量+1]*, 0)>
此外,直接引用格式在表达式中出现的时候,也必须用符号*括起来,例如:
<"单号:" & *[@任务,单号,+0]*>
同样,表达式中引用父表数据的格式,也必须用符号*括起来,例如要在订单表的细节区的表达式中,引用父表产品表中的产品名称:
<"品名" & *[产品,产品名称]*>