首页 > 代码库 > iReport+jasperreport创建子表的几种方式(1)

iReport+jasperreport创建子表的几种方式(1)

在制作报表的过程中,子表是必不可少的,今天就研究了一下制作子表的几种方式

一、连接数据库创建子表

以MySQL为例

1)iReport 创建父表

这个就是创建一个新的表格,不过记得数据源要选择mySQL ,其他的数据库数据源也一样的。

2)创建好之后,我们来创建子表,在组件面板找到拖动到父表当中的任意一个地方,我是放到detail里面的

它会产生一个向导

一路next下去,只是在最后一项选择use empty datasource,不过选其他的也行,待会我们还要修改

3)说一下原理:这种方式就是利用每张报表都有的Parameters属性,在iReport4.6中,点击子报表在右侧属性栏的最下面有两个属性


一个是Parameters属性,他可以用来向子表传递数据接下来我会说到,第二个是Return Values很明显这个可以用来将子表的数据返回,这个有时间再说。

下面子表属性进行设置:

有两个属性需要注意,一个是Subreport Expression用来指出子表的路径,这个新建之后一边不需要修改

另外一个是connect type,这个要选择Use a datasource express 创建子表时候选择默认值,就是父连接,这个现在不是重点,不过在之后的方式中,这个是很有用的

下面是重点

设置点击Parameters打开这样一个窗口,点击add之后

这就是你自定义Parameters的地方,名字可以随便取,我的是如下设置:名字是id我要传递给子表的是数据库的ID字段,到此,我们对于主表这边的设置结束

4)下面设置子表这里有一个关键点,就是在子表左边栏Parameters属性这边要新建一个Parameters,右键-》新建名字要和上面我们创建的一样而字段的类型要和从主表传递过来的字段一样:我定义的是id同时在我的数据库中定义的ID字段是String类型的,所以是以下设置注意,Default Value Expection一定要设置为“”字符,不然会报错,折腾了我好几个小时

这个设置好之后打开数据连接窗口最左边的小按钮,打开后使用select语句不过要使用我们自定义的字段,如下图,

你会发现出现了一些属性字段选择添加,就OK啦

我的字段和子表设置

下面是预览结果

OK,创建子表的第一种方式就是这样,如果有需要留邮箱,我把源码发过去,希望能共同学习

回家了,明天继续写


iReport+jasperreport创建子表的几种方式(1)