目录

单表式主子报表

单表式主子报表

单表式主子报表的特点是用单个报表实现主子表的业务逻辑。一般数据集会有两个以上,分别是主表的数据集和子表的数据集,在展现上,一般要求主表以自由格式展现,子表以列表式展现,为一对多的关系,子报表可能同时存在多个。单表式主子报表操作比较方便,而且可以进行数据填报。

第一步:打开设计器

第二步:连接数据源

第三步:新建空白报表

第四步:定义数据集

ds1:SELECT 订单明细.单价,订单明细.产品ID,订单明细.折扣,订单明细.数量,订单明细.订单ID,订单.订单ID,订单.客户ID,订单.发货日期,订单.到货日期,订单.货主名称,订单.运货商,订单.运货费,订单.货主城市 FROM 订单,订单明细 WHERE 订单.订单ID = 订单明细.订单ID

第五步:定义表达式


1,在 B2单元格输入表达式:= ds1.dselect(订单ID)   设置B2单元格的左主格为:`0

2,在D2单元格输入表达式:= ds1.发货日期 设置显示格式为:yyyy年MM月dd日

3,在F2单元格输入表达式:= ds1.到货日期 设置显示格式为:yyyy年MM月dd日

4,在B4单元格输入表达式:= ds1.客户ID

5,在F4单元格输入表达式:= ds1.货主名称

6,在B5单元格输入表达式:= ds1.运货商

7,在D5单元格输入表达式:= ds1.运货费 设置显示格式为:¥#0.00

8,在F5单元格输入表达式:= ds1.货主城市

9,设置A8单元格的左主格为B8

10,在B8单元格输入表达式:= ds1.select(产品ID,false,订单ID==B2,,true)  设置B8单元格的左主格为B2单元格

11,在C8单元格输入表达式:= ds1.单价 设置显示格式为:¥#0.00

12,在D8单元格输入表达式:= ds1.折扣

13,在E8单元格输入表达式:= ds1.数量

14,在F8单元格输入表达式:=C8*E8 设置显示格式为:¥#0.00

15,设A1、A2、A3、A4、A5、A6、A7、A9单元格的左主格为B2单元格。 将这些单元格的左主格设为B2的目的是为了使B2单元格扩展的时候其它单元格随着一起扩展,从而实现单表式主子报表。

16,设A9单元格为行后分页,实现打印时每张定单单独打印。并将第9行下边框设为蓝色,对不同订单加以区分。

第六步: 美化外观

第七步:保存预览 此报表保存为9.1.raq,预览效果如下图所示:


第八步:发布报表


  • dselect函数说明

    从数据集的当前行集中选取符合条件的记录,选出字段相同的行将会只保留第一行

    语法: datasetName.dselect( <select_exp>{, filter_exp{,rootGroupExp}} )

    参数说明: select_exp 要选择的字段列名/列号,,也可以是表达式。 列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 filter_exp 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。 rootGroupExp 是否root数据集表达式

    返回值: 一组数据的集合,数据类型由select_exp的运算结果决定 函数

    示例: 例1:ds1.dselect( name ) 从数据源ds1中选取name字段列的所有值,name相同的纪录只会保留第一个