单表式主子报表的特点是用单个报表实现主子表的业务逻辑。一般数据集会有两个以上,分别是主表的数据集和子表的数据集,在展现上,一般要求主表以自由格式展现,子表以列表式展现,为一对多的关系,子报表可能同时存在多个。单表式主子报表操作比较方便。
第一步:打开设计器
第二步:通过工具 - 数据源菜单,连接数据源
第三步:新建空白报表
第四步:定义数据集
菜单报表 - 数据集,数据集设置窗口点击【增加】按钮增加数据集。
ds1:SELECT 订单明细.单价,订单明细.产品ID,订单明细.折扣,订单明细.数量,订单明细.订单ID,订单.订单ID,订单.客户ID,订单.发货日期,订单.到货日期,订单.货主名称,订单.运货商,订单.运货费,订单.货主城市 FROM 订单,订单明细 WHERE 订单.订单ID = 订单明细.订单ID
第五步:定义表达式
1、在 B2单元格输入表达式:= ds1.select(订单ID,,,订单ID)
2、设置B2单元格的左主格为:`0
3、在D2单元格输入表达式:= ds1.发货日期
设置显示格式为:yyyy年MM月dd日
4、在F2单元格输入表达式:= ds1.到货日期
设置显示格式为:yyyy年MM月dd日
5、在B4单元格输入表达式:= ds1.客户ID
6、在F4单元格输入表达式:= ds1.货主名称
7、在B5单元格输入表达式:= ds1.运货商
8、在D5单元格输入表达式:= ds1.运货费
设置显示格式为:¥#0.00
9、在F5单元格输入表达式:= ds1.货主城市
10、设置A8单元格的左主格为B8
11、在B8单元格输入表达式:= ds1.select@r(产品ID:1,订单ID==B2,,产品ID) select函数说明
设置B8单元格的左主格为B2单元格,并且对select表达式添加@r选项使用根数据集,通过根数据集可以查询到ds1数据集中所有订单ID为B2的产品列表。
12、在C8单元格输入表达式:= ds1.单价
设置显示格式为:¥#0.00
13、在D8单元格输入表达式:= ds1.折扣
14、在E8单元格输入表达式:= ds1.数量
15、在F8单元格输入表达式:=C8*E8
设置显示格式为:¥#0.00
16、设A1、A2、A3、A4、A5、A6、A7、A9单元格的左主格为B2单元格。
将这些单元格的左主格设为B2的目的是为了使B2单元格扩展的时候其它单元格随着一起扩展,从而实现单表式主子报表。
17、设A9单元格为行后分页,实现打印时每张定单单独打印。并将第9行下边框设为蓝色,对不同订单加以区分。
第六步:美化外观
第七步:保存预览
此报表保存为13.1.rpx,预览效果如下图所示:
第八步:发布报表