除了前文所述各类通用函数,葡萄城报表还支持微软RDL标准规范中的其他函数,以及一些特殊用途的函数。有关RDL标准规范函数,参见微软MSDN: https://msdn.microsoft.com/zh-cn/library/ms252112(v=vs.80)
函数 | 说明 | 语法与示例 |
GetFields | 返回字段列表集合,仅限数据区域内使用。此函数可令复杂条件的表达式更易于编写。 | =GetFields() |
InScope | 判断当前值是否在某个作用域内。 | =InScope(<scope>) |
Level | 返回当前值在层次结构中的级别。 | =Level() |
Lookup | 返回外键关联的另一数据集的指定字段值。 | =Lookup(<SourceExpression>, <DestinationExpression>, <ResultExpression>, <LookupDataset>) |
Previous | 返回指定作用域中的前一个值,例如上一行记录的某一字段的值。 | =Previous(<Expression>) |
RowNumber | 返回当前行号 | =RowNumber() |
其中,应用较多的是Lookup和RowNumber函数。
Lookup函数
Lookup函数的典型用途是将多个数据集合并展示在同一个表格元素中。
函数语法定义:
=Lookup(<SourceExpression>, <DestinationExpression>, <ResultExpression>, <LookupDataset>)
参数说明:
- SourceExpression:主数据集的一个字段值,通常是数据库外键字段值。
- DestinationExpression:关联数据集的一个字段值,通常是数据库外键字段所参照的表的主键字段值。该字段的值应等于主数据集的SourceExpression字段值。
- ResultExpression:关联数据集的另一个字段值,通常是数据库外键字段所参照的表的数据字段值。该字段值将显示在表格中。
例如:
主数据集dsProduct:字段列表为:产品代码、产品名称、类别ID。
关联数据集dsType:类别ID、类别名称。
表达式:=Lookup( Fields!类别ID.Value ,Fields!类别ID.Value,Fields!类别名称.Value, "dsType")
设计状态如下图:
报表效果如下图:
RowNumber函数
RowNumber函数返回当前行号,典型用途是实现行号自动展示和表格交替背景色。
在表格内的单元格设置为 =RowNumber(),如下图:
选中表格数据整行(注意不是单个单元格),设置BackgroundColor属性,选择<表达式…>,如下图:
输入表达式:=IIF(RowNumber() mod 2=0,"Silver","White")。
该表达式的含义为:如果行号能被2整除,则背景色为银色(Silver,视觉效果为浅灰色),否则为白色。预览报表效果,如下图: