分类: Java
2015-03-30 11:17:54
上图所示为一张主子填,分上下两部分,上半部分为订单的主表,下半部分为订单明细,这两部分数据分别来自不同的物理表,用户修改数据后,同时保存到两张物理表中,并保持数据库事务一致性。
下面我们就来看一下用实现上述报表的过程。
1.连接数据库frDemo
2.设计报表
2.1新建报表
2.2表样设计
按照下图设计好报表的基本框架。
2.3新建一数据集
新建数据集ds1:
SQL语句:select * from 订单明细
新建数据库ds2:
SQL语句:select * from 订单where 订单ID=10248
2.4绑定数据列
按照下列表格将数据集的字段拖入对应报表单元格内,并作相应的设置。
单元格 | 内容 | 基本属性设置 |
B3 | ds2.订单ID | 从上到下扩展,其余默认 |
D3 | ds2.发货日期 | 从上到下扩展,其余默认 |
F3 | ds2.到货日期 | 从上到下扩展,其余默认 |
B4 | ds2.客户ID | 从上到下扩展,其余默认 |
F4 | ds2.货主名称 | 从上到下扩展,其余默认 |
B5 | ds2.运货商 | 从上到下扩展,其余默认 |
D5 | ds2.运货费 | 从上到下扩展,其余默认 |
F5 | ds2.货主城市 | 从上到下扩展,其余默认 |
A8 | =&B8 | |
B8 | ds1.产品ID | 从上到下扩展,其余默认 |
C8 | ds1.单价 | 从上到下扩展,其余默认 |
D8 | ds1.折扣 | 从上到下扩展,其余默认 |
E8 | ds1.数量 | 从上到下扩展,其余默认 |
F8 | =C8*E8 |
2.5单元格设置过滤
双击B8,进入单元格数据列对话框,点击过滤,设置过滤条件为:订单ID等于B3。
2.6单元格的表单属性设置
对B3,D3,F3,B4,F4,B5,D5,F5,A8,B8,C8,D8,E8,F8单元格设置表单属性,其中D3,F3为日期型,C8,D8,E8均为数字型,并且允许小数,其余均为文本类型。设置完后如图:
2.7设置报表填报属性
打开报表|报表填报属性对话框,如图所示:
点击左上角的添加按钮,添加一个新的内置SQL。
数据库选择frDemo,模式为空,表选择订单,如图所示:
点击智能添加字段,出现下图所示的对话框,用来将模板中的所要填入的字段和数据表中的字段对应,您可以自由选择所需对应的字段。
添加完后,单击智能添加单元格,填入对应的单元格。可以选单元格不改变时不参与更新,这样可以加快填报后数据更新速度。添加完后点击确定,显示如下图,可以看到在预览中已经自动生成了相对应的更新数据库的SQL语句。
再添加一个内置SQL2,数据库选择frDemo,模式为空,表选择订单明细。以同样的方式智能添加字段à智能添加单元格,设置好后如图
3.保存预览
保存为:
%FineReport_HOME%/WebReport/WEB-INF/reportlets/com/doc/form/9.2.cpt
启动报表服务器,点击设计器右上角的填报预览,就可以进行预览填报了。或者在浏览器里直接数据地址: