一、报表实例
制作“雇员信息表”,了解select()函数的作用。
二、设计过程
1、引用数据集ds2
ds2:select 雇员ID,姓氏+名字 as 姓名,出生日期,地址,职务,邮政编码,雇佣日期,照片 from DEMO_EMPLOYEE
2、编辑报表
(1)B2单元格的表达式:=ds2.Select(姓名)
(2)B3单元格的表达式:=ds2.雇员ID
(3)B4单元格的表达式:=ds2.职务
(4)B5单元格的表达式:=ds2.地址
(5)D2单元格的表达式:=ds2.出生日期,设置显示格式为:yyyy年MM月dd日
(6)D3单元格的表达式:=ds2.雇佣日期,设置显示格式为:yyyy年MM月dd日
(7)B4单元格的表达式:=ds2.邮政编码
(8)将A1~A6单元格的左主格设为B2单元格。
三、小结
自由报表
从上面的表达式可以看出,该报表最关键的是B2单元格,利用select()函数从数据集中取数据,并把结果在报表中进行纵向扩展。其它单元格的左主格都设为B2,因此当B2单元格扩展时,带动着其它所有格子一起复制,由此形成了一条记录就是一页报表的效果。
这个例子用到了select()函数,下面我们做一下介绍。
四、函数说明
select()
函数说明:从数据集的当前行集中选取符合条件的记录
语法: datasetName.select(<select_exp>{, desc_exp{, filter_exp{, sort_exp{,rootGroupExp}}}} )
datasetName.select(<select_exp>, , <filter_exp>) //适用于不需排序或数据集中已排好序
参数说明:
select_exp 要选择的字段列名/列号,或表达式。列号用#n表示,例如:#0代表第0列,#1代表第1列,依此类推
desc_exp 指定数据排序的顺序,true表示降序排列,false表示升序排列
filter_exp 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位
sort_exp 数据排序表达式,当此项为空时先检查desc_exp是否为空,如果为空,则不排序,否则使用select_exp排序。
rootGroupExp 是否root数据集表达式,为true,从数据集里取数,为false,则从本单元格主格的结果集里取数
返回值:一组数据的集合,数据类型由select_exp的运算结果决定
示例:
例1:ds1.select(name) 从数据集ds1中,选取name字段列的所有值,不排序。
例2:ds1.select(#2, true) 从数据集ds1中,选取第二个字段列的所有值,降序排列。
例3:ds1.select(name,false,sex=='1') 从数据集ds1中,选取sex=='1'的name字段列的值,升序排列。
例4:ds1.select(name,true,sex=='1',id) 从数据集ds1中,选取sex=='1'的name字段列的值,按id字段降序排列。
select()函数注意事项