引入式主子报表- 主子报表-报表设计初级教程
目录

引入式主子报表

引入式子报表的特点是,主报表单元格根据子报表的行数列数,双向同时扩展,子报表有几行几列,主报表中就扩展出几行几列。子报表占用主报表的空白行列,格线严格对齐,引入式子报表在展现、导出和打印时为表格。
    引入式的子报表扩展后,和主报表形成了一个统一的二维矩形单元格,因此子报表的源格不保留,此时母报表不能访问子报表的值。

一、报表实例

制作“销售情况一览表”,引用“雇员信息表”、“订单信息表”和“货运费用表”三个子报表。

二、设计过程

(一) 设计子报表1

第1步:新建报表

第2步:定义数据集
demo_雇员信息2:select 雇员ID, 销售人员, 上级, 地址, 家庭电话, 职务, 邮政编码, 雇佣日期 from DEMO_EMPLOYEE

第3步:编辑子报表1

1. 设置B1单元格的表达式:=demo_雇员信息2.select(雇员ID,false,雇员ID==@ID)

2. 设置B2单元格的表达式:=demo_雇员信息2.职务

3. 设置B3单元格的表达式:=demo_雇员信息2.上级,设置显示值为:demo_雇员信息2.select(销售人员,,雇员ID==value(),,true) 

4. 合并B4、C4、D4单元格,设置B4单元格的表达式:=ddemo_雇员信息2.地址

5. 设置D1单元格的表达式:=demo_雇员信息2.销售人员

6. 设置D2单元格的表达式:=demo_雇员信息2.雇用日期,设置显示格式为:yyyy-MM-dd 

 7. 设置D3单元格的表达式= demo_雇员信息2.家庭电话

8. 将A1~A4、B2、B3、B4、D2、D3单元格的左主格设为B1

 9. 美化外观

第4步:保存报表

子报表1保存为“雇员信息表”。

(二) 设计子报表2

第1步:新建报表

第2步:引用数据集demo_客户订单

第3步:编辑子报表2

1. 设置A2单元格的表达式:=demo_客户订单.group(货主地区,false,雇员ID==@ID)

2. 设置B2单元格的表达式:=demo_客户订单.count()

3. 设置C2单元格的表达式:=demo_客户订单.sum(数量*单价*(1-折扣))

4. 美化外观

第4步:保存报表

子报表2保存为“订单信息表”。

(三) 设计子报表3

第1步:新建报表

第2步:定义数据集

demo_货运费用: select 货主地区, 运货费, 运货商ID, 雇员ID from DEMO_ORDERS

第3步:编辑子报表3

1. 设置C1单元格的表达式:=demo_货运费用.group(运货商ID,false),并将扩展方式设为横向扩展 
    设置显示值为:map(list(1,2,3),list("急速快递","统一包裹","联邦货运"))

 

2. 合并A2、A3单元格,设置A2单元格的表达式:=demo_货运费用.group(货主地区,false,雇员ID==@ID

3. 设置C2单元格的表达式:=demo_货运费用.count()

4. 设置C3单元格的表达式:=demo_货运费用.Sum(运货费),设置显示格式为:¥#0.00 

5. 美化外观

第4步:保存报表

子报表3保存为“货运费用表”。

(四) 制作主报表

第1步:新建报表

第2步:引用数据集"demo_雇员信息2"

第3步:编辑主报表

1. 合并A2~A8单元格,设置A2单元格的表达式:=demo_雇员信息2.select(雇员ID,false),设置显示值为:demo_雇员信息2.select1(销售人员,雇员ID==value())

2. 选中B3单元格,插入子报表1,引入方式为“引入式”,增加参数ID,对应值表达式:=A2

 

3. 选中B5单元格,插入子报表2,引入方式为“引入式”,增加参数ID,对应值表达式:=A2

4. 选中B7单元格,插入子报表3,引入方式为“引入式”,增加参数ID,对应值表达式:=A2

 

5. 美化外观

第4步:保存报表

主报表保存为“销售情况一览表”。

(五) 预览打印

引入式主子报表“销售情况一览表”的预览效果如下图所示: