ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

javabean完成以后就是添加ireport的报表了

打开ireport的option然后在classpath中添加路径。

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

然后在ireport中追加数据源如图,点击图标后会出现数据源列表然后按new会出现bean的选择

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

next后会让你输入工厂类,和方法名,还有返回的属性这里我用的是数组。然后点击测试成功表明没有问题了。

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

接下来就是追加field如下图,选择你的数据bean类然后自动读取,选择需要的项目进行追加。

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

在报表上进行编辑记得字体要选宋体

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

preview后发觉成功

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

接下来是做子表的图表显示这里使用自报表的形式(不用也可以具体情况具体分析 只是例子不用纠结)

使用subreport建立一个自报表(建立方法请自行查找 注意 数据源请选择empty的)

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

然后在自报表中加入child field方法略 注意是自报表

然后再summary中加入饼图 配置是name做分类degree做数据。然后preview

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

预览后的结果 这说明子表已经完成,然后是在附表中配置字表的数据源

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

将主报表中的child类型从list改为net.sf.jasperreports.engine.data.JRBeanCollectionDataSource

这里提一下如果是数组的话用net.sf.jasperreports.engine.data.JRBeanArrayDataSource

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

然后在自报表datasource属性中加入 $F{child} 注意connectiontype 选datasource的然后将数据源设定为主表数据源

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

preview结果下面的结果就是这却的

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

ireport5.6+jasperreport6.3开发(四)--以javabean为基准的报表开发(ireport)

在最后 所有的结合数据源都是需要jrdatasource的所以 不管原来list也好数组也好,都需要转换为jrdatasource类型。

还有就是不用自报表也能实现饼图 就是直接拖一个饼图然后追加一个数据源,最后这个数据源和child进行关联即可。网上有例子就不贴了。

上一篇:PHP mysqli_free_result()与mysqli_fetch_array()函数


下一篇:REUSE_ALV_GRID_DISPLAY详解