当前行、当前组的概念

阅读(2747) 标签: , ,

使用select函数时,每个扩展出来的单元格都保留一个指针,指向当前记录,即当前行;使用group函数进行分组,然后从每组中取出一个指定字段值放到单元格中进行扩展,扩展出来的每个单元格都保留了一个指针指向当前的组集,该组集称为当前组。

select 函数

使用select函数相当于从数据集中取出一组符合条件的记录集合,在单元格中进行扩展,此时每个扩展出来的单元格都保留一个指针,在这些单元格的附属单元格中,应当直接用“数据集名.列名”来引用同一个数据集同一条记录的值,当列名包含特殊字符或列名为表达式时可使用“数据集名.field(fieldName)”获取。此时报表引擎不需要对数据集进行检索遍历了,而是直接从当前行中取值。

 

图示:

 

典型的select用法:

 

group 函数

group函数是对数据集按照某个字段或者表达式进行分组,获得一组组的集合,然后从每组中取出一个指定字段或者表达式的值,放到单元格中进行扩展,扩展出来的每个单元格都保留了一个指针指向当前的组集,该组集称为当前组。

因此在附属单元格中,需要对该组集进行操作时,不需要用任何条件和主单元格关联了,如果加设了条件,反倒画蛇添足,导致报表引擎还对组集中的记录进行遍历检索。

 

正确的group 用法:

 

不合理的group用法:

 

group函数的原理图示: