4、数据集函数用法解析
3,782次浏览
编辑于2014年11月26日 17:35:16
摘要由AI智能服务提供
本文解析了数据集函数用法,包括数据集、数据集函数、行集、分组与组集等概念。介绍了Select()、select1()和Group()函数的具体用法和区别。Select()选取符合条件的记录数组,select1()检索并返回第一条符合条件的记录,Group()按分组表达式从数据集中选出组集。
数据集函数用法解析
首先介绍几个重要概念:数据集 数据集为一个由数据数组构成的二维数据表,其同一列的元素数据类型都相同,列的名字和数据类型都保存在数据集中。我们把数据集的行称为记录,列称为字段。 数据集函数 能够对数据集的记录进行操作(取数、分组、运算等)的函数,称为数据集函数,语法如下:f(dataSource,…) 其中,dataSource为数据集的名字,f为函数名。 行集 数据集的行集定义为一些由数据集的行按某种顺序构成的数组,数据集本身也是一个行集。从组成元素上看,行集是数据集的子集,但排列次序未必与数据集的行序相同。 分组与组集 将数据集的所有记录按照一定的规则划分成N个行集的过程称为分组,分组后的每个行集称为一个组,多个组构成了组集。
————————————————————————————Select():从数据集的当前行集中选取符合条件的记录,返回结果是一个数组,相同数据不会合并。 使用select函数时,相当于从数据集中取出一组符合条件的记录集合,在单元格中进行扩展,此时每个扩展出来的单元格都保留一个指针,指向当前记录,即当前行。因此在这些单元格的子格中,应当直接用“field(数据集名,列名)”来引用同一个数据集同一条记录的值,此时报表引擎不需要对数据集进行检索遍历了,而是直接从当前行中取值。
典型示例:
————————————————————————————select1():从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值。 select1的函数和select函数的区别在于:(1)select1函数每次只取出一条记录,但是当前行的概念是一样的,当它从数据集中取出一条记录时,保留了一个指针指向该记录,因此他的附属单元格里只需要利用“field(数据集名,列名)”即可从该记录中取值,而不需要重新检索遍历数据集。(2)select1函数检索数据集时,检索到第一条满足条件的记录随即把该记录返回,而不继续往下检索;而对于select函数,即使已经检索到满足条件的记录了,还会继续往下检索,直到所有记录检索完为止,因为select的任务是检索出一组记录,它还不确定后面是否还有满足条件的记录。 因此,如果你确定只要从数据集中取出一条记录,那么请一定用select1而不要用select。典型示例:
————————————————————————————Group():根据分组表达式,从数据集中选出一组组集。 group函数是对数据集按照某个字段或者表达式进行分组,获得一组组的集合,然后从每组中取出一个指定字段或者表达式的值,放到单元格中进行扩展,扩展出来的每个单元格都保留了一个指针指向当前的组集,该组集称为当前组。 因此在附属单元格中,需要对该组集进行操作时,不需要用任何条件和主单元格关联了;否则,如果加设了条件,会导致报表引擎还对组集中的记录进行遍历检索。
典型示例:
首先介绍几个重要概念:数据集 数据集为一个由数据数组构成的二维数据表,其同一列的元素数据类型都相同,列的名字和数据类型都保存在数据集中。我们把数据集的行称为记录,列称为字段。 数据集函数 能够对数据集的记录进行操作(取数、分组、运算等)的函数,称为数据集函数,语法如下:f(dataSource,…) 其中,dataSource为数据集的名字,f为函数名。 行集 数据集的行集定义为一些由数据集的行按某种顺序构成的数组,数据集本身也是一个行集。从组成元素上看,行集是数据集的子集,但排列次序未必与数据集的行序相同。 分组与组集 将数据集的所有记录按照一定的规则划分成N个行集的过程称为分组,分组后的每个行集称为一个组,多个组构成了组集。
————————————————————————————Select():从数据集的当前行集中选取符合条件的记录,返回结果是一个数组,相同数据不会合并。 使用select函数时,相当于从数据集中取出一组符合条件的记录集合,在单元格中进行扩展,此时每个扩展出来的单元格都保留一个指针,指向当前记录,即当前行。因此在这些单元格的子格中,应当直接用“field(数据集名,列名)”来引用同一个数据集同一条记录的值,此时报表引擎不需要对数据集进行检索遍历了,而是直接从当前行中取值。
典型示例:
————————————————————————————select1():从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值。 select1的函数和select函数的区别在于:(1)select1函数每次只取出一条记录,但是当前行的概念是一样的,当它从数据集中取出一条记录时,保留了一个指针指向该记录,因此他的附属单元格里只需要利用“field(数据集名,列名)”即可从该记录中取值,而不需要重新检索遍历数据集。(2)select1函数检索数据集时,检索到第一条满足条件的记录随即把该记录返回,而不继续往下检索;而对于select函数,即使已经检索到满足条件的记录了,还会继续往下检索,直到所有记录检索完为止,因为select的任务是检索出一组记录,它还不确定后面是否还有满足条件的记录。 因此,如果你确定只要从数据集中取出一条记录,那么请一定用select1而不要用select。典型示例:
————————————————————————————Group():根据分组表达式,从数据集中选出一组组集。 group函数是对数据集按照某个字段或者表达式进行分组,获得一组组的集合,然后从每组中取出一个指定字段或者表达式的值,放到单元格中进行扩展,扩展出来的每个单元格都保留了一个指针指向当前的组集,该组集称为当前组。 因此在附属单元格中,需要对该组集进行操作时,不需要用任何条件和主单元格关联了;否则,如果加设了条件,会导致报表引擎还对组集中的记录进行遍历检索。
典型示例:
select.png(95.71KB)
select1函数典型示例.png(30.90KB)
group.png(118.27KB)
group函数典型示例.png(43.10KB)
select函数示例.png(38.20KB)
推荐阅读