javabean完成以后就是添加ireport的报表了
打开ireport的option然后在classpath中添加路径。
然后在ireport中追加数据源如图,点击图标后会出现数据源列表然后按new会出现bean的选择
next后会让你输入工厂类,和方法名,还有返回的属性这里我用的是数组。然后点击测试成功表明没有问题了。
接下来就是追加field如下图,选择你的数据bean类然后自动读取,选择需要的项目进行追加。
在报表上进行编辑记得字体要选宋体
preview后发觉成功
接下来是做子表的图表显示这里使用自报表的形式(不用也可以具体情况具体分析 只是例子不用纠结)
使用subreport建立一个自报表(建立方法请自行查找 注意 数据源请选择empty的)
然后在自报表中加入child field方法略 注意是自报表
然后再summary中加入饼图 配置是name做分类degree做数据。然后preview
预览后的结果 这说明子表已经完成,然后是在附表中配置字表的数据源
将主报表中的child类型从list改为net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
这里提一下如果是数组的话用net.sf.jasperreports.engine.data.JRBeanArrayDataSource
然后在自报表datasource属性中加入 $F{child} 注意connectiontype 选datasource的然后将数据源设定为主表数据源
preview结果下面的结果就是这却的
在最后 所有的结合数据源都是需要jrdatasource的所以 不管原来list也好数组也好,都需要转换为jrdatasource类型。
还有就是不用自报表也能实现饼图 就是直接拖一个饼图然后追加一个数据源,最后这个数据源和child进行关联即可。网上有例子就不贴了。