嵌入表达式

我们已经知道,Excel报表模板采用"[内容]"格式来引用数据,采用"<表达式>"格式来计算表达式
通常 表达式自身也会引用数据,例如以下格式中的"[编号]"表示引用编号列的数据:

<"编号:" & [编号]>

反过来,我们也可以在"[内容]"这种格式中嵌入表达式 ,需要注意的是,嵌入表达式的格式为"<*表达式*>",而不是"<表达式>"。

示例一

下面的格式可以直接统计订单表中产品为PD01的销售数量:

[$订单,Sum(数量),产品 = 'PD01']

如果要统计的产品不是固定的,而是存储在Var变量tp中,一些用户可能会如下设置格式:

[$订单,Sum(数量),"产品 = '" & [!tp] & "'"]

这样的格式是不对的,常规格式中嵌入的表达式,要用符号"<*"和"*>"括起来,所以正确的格式为:

[$订单,Sum(数量),<*"产品 = '" & [!tp] & "'"*>]

实际上,常规格式的任何一部分,都可以用嵌入表达式来动态合成。

示例二

假定表中有一名为“姓名”的列,用于输入员工姓名,如张三、李四、王五等等。
在项目文件夹的Images目录下,有员工的照片文件,如: 张三.bmp、李四.bmp、王五.bmp

如果要在Excel报表中打印员工照片,由于员工表没有照片列,无法以引用图片列的方法实现。

所以只能采用引用图片文件的方式来打印员工照片。
我们知道,引用图片文件的格式为:
[&&文件名]。
但是这里的文件名不是固定的,需要根据员工姓名来合成。
我们可以用下面的格式来打印员工照片:

[<*"&&" & [姓名] & ".bmp"*>]

上面的格式中,嵌入了一个表达式:"&&" & [姓名] & ".bmp"

假定姓名是“张三”,在求出表达式的值后,整个格式变为:

[&&张三.bmp]

也就是直接引用图片文件“张三.bmp”。


本页地址:http://www.foxtable.com/webhelp/topics/2294.htm