分组报表,体验主子格概念
分组报表,体验主子格概念
第一步:打开设计器
第二步:连接数据源
第三步:新建报表,在菜单栏中选择“文件”-“新建报表”,弹出如下所示的新建报表向导窗口:

以下是引用片段: |
数据集类型选择“SQL检索”,点【下一步】进入SQL编辑器窗口。

选择指定模式为”全部”,在可选表名中双击”客户”表,点【数据字段】标签

在数据字段列表中选择我们想要展现的字段,通过【语法】标签可以查看到此数据集的语法:ds1: SELECT 客户.城市,客户.公司名称,客户.联系人姓名,客户.联系人职务 FROM 客户 选好后点【确定】按钮,回到向导窗口。

将【报表类型】设为“分组报表”,点【下一步】按钮进行分组定义。

将”城市”字段拖到【分组定义】中,其它默认不变,点【生成分组报表】按钮,进入设计器编辑界面,我们看到,一张分组报表就做好了,单元格中自动产生了表达式:

1,A2单元格中表达式为:=ds1.Group(城市,false)
2,B2单元格中表达式为:=ds1.Select(EMPID),此时B2单元格的左主格默认是A2单元格,因此,B2单元格随A2单元格的扩展而扩展。
3,C2单元格中表达式为:=ds1.联系人姓名
4,D2单元格中表达式为:=ds1.联系人职务
5,将报表内容设置居中显示。
第四步:保存预览
此报表保存为6.1.raq,预览效果如下图所示:

第五步:发布报表

-
group函数说明
根据分组表达式,从数据集中选出一组组集。
语法: datasetName.group( <selectExp, , <filterExp ) //适用于不需要排序或数据集中已排好序 datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})
参数说明: selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。 列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 descExp 分组前记录的排序顺序,true为逆序,false为顺序 filterExp 过滤表达式 sortExp 分组前记录的排序依据表达式 groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等 groupDescExp 组排序顺序,true为逆序,false为顺序 rootGroupExp 是否root数据集表达式
返回值: 一组数据的集合,数据类型由selectExp的运算结果来决定
示例:
例1:ds1.group(class) 把数据集ds1中所有记录按照class字段进行分组, 并返回每组的class值组成的集合
例2:ds1.group(class, true ) 把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组, 并返回每组的class值组成的集合
例3:ds1.group(class,false,sex=='1') 从数据源ds1中选取性别为"1"的记录,按照class字段升序排列, 然后根据class进行分组,并返回每组的class值组成的集合
例4:ds1.group(class, true, sex=='1', id ) 从数据源ds1中选取性别为"1"的记录,按照id字段降序排列, 然后根据class进行分组,并返回每组的class值组成的集合
例5:ds1.group(省份,true,,,sum(工业产值),true) 对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值), 然后按照这个汇总值对组进行逆序排列
-
左主格:单元格进行纵向扩展时,我们称其为其右边格子的左主格。左主格属性可以默认缺省,也可以人为的改变。单元格扩展时会把其所有的附属单元格都进行复制,带动着一起扩展。在例子8.1中,所有单元格的左主格都是B2,因此当B2单元格进行扩展时,带动着其他所有格子一起复制,由此形成了一条记录就是一页报表的效果。