1. 描述
单表式主子报表特点是用单个报表实现主子表的业务逻辑。一般包含多个数据集,通常由自由格式部分及列表格式部分,且为一对多,父与子的关系,如下图上方为订单信息,下方这个订单的明细:
这样的主子报表制作比较方便,且可以用于填报,因此称之为表单式主子报表。
2. 示例
2.1 打开报表
打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\FreeReport\Free.cpt。在该报表基础上来实现表单式主子表。
2.2 新增数据源
新增数据集ds2 ,SQL语句为SELECT * FROM [订单明细]。
2.3 表样设计
在原报表基础上,添加子表区域:
2.4 绑定数据列
将子表字段拖入对应单元格内,并作相应的设置。
单元格 | 数据集 | 数据列 | 属性 |
B9 | ds2 | 产品ID | 列表,从上到下扩展,居中,左父格为:C2,其余默认 |
C9 | ds2 | 单价 | 从上到下扩展,居中,其余默认 |
D9 | ds2 | 数量 | 从左到右扩展,居中,其余默认 |
E9 | ds2 | 折扣 | 从左到右扩展,居中,其余默认 |
单元格A9输入公式:=&B9,左父格为B9,给B9单元格扩展出来的数据编号;
单元格F9输入公式:=C9*D9*(1-E9),表示求产品的金额;
给每个订单进行合计,A10单元格设置父格为C2,并在F10中输入公式:=sum(F9)。
2.5 建立主子表的关联
主子表有着一个相同的数据列:订单ID,可通过过滤将两个表中的订单ID关联起来,双击B9增加过滤条件:订单ID等于'C2':
2.6 设置分页
此时主子表便制作好了,为了使报表可读性更强,我们设置分页,使得每页显示一个订单信息。右击A10单元格,选择其他属性>行后分页。
3. 保存与预览
已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\MasterReport\Master.cpt