irport怎么从主表传递fields值给子表

 我来答
EvenHHZ
2016-09-09 · 知道合伙人软件行家
EvenHHZ
知道合伙人软件行家
采纳数:13691 获赞数:18845
个人出版图书:《玩转Python网络爬虫》、《玩转Django2.0》

向TA提问 私信TA
展开全部
方法/步骤
1
1. 打开ireport后,首先设置数据源,这里对数据源进行命名为JDBCCONN,设置好之后点击test可以测试连接是否正确,若是不正确可能有以下几种原因,
Ø url地址错误
Ø 用户名或者密码错误
Ø 没有引入连接数据库所需要的jar包

2
2. 新建报表后对该报表绑定数据集,如下图所示,选择你所需要在报表中显示的数据所对应的数据库表。然后选出所需要显示的表数据。

3
3. 将通过步骤二所得到的数据添加到报表中来,此时数据会显示在Fields中。这里可以根据自己的需要将这些Field拖动到报表中来,根据自己所需要的格式来布局。

4
4. 设计字表,在组件面板中找到subreport,将子报表拖到父表中来,

5
5. 若是子报表存在则选择该表所存在的位置,若不存在则新建子报表,如图所示:

6
6. 为字表显示数据绑定所需的数据集

7
7. 将查询出来的数据添加到字表中的fields中。

8
8. 此处的分组可以设置可不设置,在设计好子表后也可以对所需的数据进行分组操作。

9
9. 设置子报表的名称,这里可以看到子表所存在的相对路径和绝对路径。

10
10. 子表和父表

11
11. 子表中新增一个参数,这里设置为sid,该变量的含义是父表示通过一个参数来查询所对应的子表。这里的sid的类型必须和父表中查询所对应的字段类型相同,不然会出现类型不匹配错误。

12
12. 父表中选中字表,查看子表的属性,查找parameters选项。新建一个parameter,该参数是和子表交互所传的参数。上面说过子表中建立的sid参数的数据类型必须和父表中参数的数据类型一样,主要体现在这里。

13
13. 设计好子表,点击preview后首先弹出的是如下图所示的对话框,这里就是通过附表索要传递的参数,这里可以通过手动输入来查看。

14
14. 现在点击父表的preview,查看如下图所示,证明参数已经传递到了字表中。
子报表的设计以及参数的传递已经正确执行。

15
同为比较常用的java报表生成工具,FineReport对子报表的解决方案和实现方法与ireport有所不同,具体实现思路和步骤如下,供ireport使用者借鉴:
16
表单式主子表
1. 描述
单表式主子报表特点是用单个报表实现主子表的业务逻辑。一般包含多个数据集,通常由自由格式部分及列表格式部分,且为一对多,父与子的关系,如下图上方为订单信息,下方这个订单的明细:
这样的主子报表制作比较方便,且可以用于填报,因此称之为表单式主子报表。

17
2. 示例
2.1 打开报表
打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\FreeReport\Free.cpt。在该报表基础上来实现表单式主子表。
18
2.2 新增数据源
新增数据集ds2 ,SQL语句为SELECT * FROM [订单明细]。
19
2.3 表样设计
在原报表基础上,添加子表区域:

20
2.4 绑定数据列
将子表字段拖入对应单元格内,并作相应的设置。
单元格A9输入公式:=&B9,左父格为B9,给B9单元格扩展出来的数据编号;
单元格F9输入公式:=C9*D9*(1-E9),表示求产品的金额;
给每个订单进行合计,A10单元格设置父格为C2,并在F10中输入公式:=sum(F9)。

21
2.5 建立主子表的关联
主子表有着一个相同的数据列:订单ID,可通过过滤将两个表中的订单ID关联起来,双击B9增加过滤条件:订单ID等于'C2':

22
2.6 设置分页
此时主子表便制作好了,为了使报表可读性更强,我们设置分页,使得每页显示一个订单信息。右击A10单元格,选择其他属性>行后分页。
23
3. 保存与预览
保存模板。点击设计器中的分页预览,效果如上。
24
嵌入式主子表
1. 描述
嵌入式主子报表特点是在单元格中嵌入独立的报表模板,嵌入的模板称为子报表,嵌入子报表后的整体称为主报表。
各子报表间格式可以不对齐,子表与主表的格式也可以不对齐,子报表能够获取主表中的值。如下图员工销售一览表:

25
2. 示例
2.1 制作主报表
如下图设计主表:

26
添加参数
在主表中定义一个报表参数,参数名为销售员,通过参数查询某一个销售员的个人信息及订单信息。
使用默认的参数界面,销售员参数控件选择下拉框,实际值为雇员表中的雇员ID,显示值为对应的姓名。具体可查看参数定义与参数面板制作章节。
27
2.2 添加不同参数的子报表
子报表sub_1.cpt说明
子报表1:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\MasterReport\sub_1.cpt。
该子表中通过参数“ID”查询出对应销售员的个人信息。SQL语句为:SELECT * FROM 雇员 where 雇员ID = ${ID},表样为:

28
在主表中插入子表1
右击主表B3单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表1所在路径;
添加参数ID(子表中的参数名称),值使用公式$销售员,将主表的销售员参数值传递给子表1的ID参数,如下图设置:

29
2.3 添加相同参数的子报表
子报表sub_2.cpt说明
子报表2:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\MasterReport\sub_2.cpt。
该子表中通过参数“销售员”查询出对应销售员的订单信息。SQL语句为:SELECT * FROM 订单 where 雇员ID = ${销售员},表样为:

30
在主表中插入子表2
右击主报表D5单元格,单元格元素>插入子报表,弹出编辑子报表对话框,选择子表2所在路径;
由于子表2的参数名与主表中的参数名相同,这时可以不设置传递参数,直接选择继承报表的参数。

31
3. 保存与预览
保存模板,点击设计器中的分页预览,效果如上。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式