设为首页 加入收藏

TOP

iReport+jasperreport创建子表的几种方式(2)(二)
2015-07-24 11:37:38 来源: 作者: 【 】 浏览:10
Tags:iReport jasperreport 创建 方式
DataSource createDataSource()
{
//生成测试数据
ArrayList provinces = new ArrayList();

ProvinceBean province = new ProvinceBean();
province.setProvinceName("山东");

ArrayList cities = new ArrayList();
CityBean city = new CityBean();
city.setCityName("济南");
cities.add(city);
city = new CityBean();
city.setCityName("青岛");
cities.add(city);
city = new CityBean();
city.setCityName("潍坊");
cities.add(city);

province.setCities(cities);
provinces.add(province);

province = new ProvinceBean();
province.setProvinceName("江苏");

cities = new ArrayList();
city = new CityBean();
city.setCityName("南京");
cities.add(city);
city = new CityBean();
city.setCityName("无锡");
cities.add(city);
city = new CityBean();
city.setCityName("苏州");
cities.add(city);

province.setCities(cities);
provinces.add(province);

return new JRBeanCollectionDataSource(provinces);
}

}

我的文件列表

\

注意一下,要把jasperreport的jar文件拷贝到lib文件夹下,不然出错找度娘或者问我好了

下面用iReport制作我们需要的报表模板

\这两个

打开iReport新建一个报表,数据源的话可以选择空数据源

在主表左侧属性Fields中新建字段;从上面我们创建的Bean中可以知道有两个字段需要建立一个是provinceName一个是cities

创建时候要注意cities的数据类型是list\

之后创建子表,这个一路next下去就OK了,将其放到任意一个bands中,如果没有特殊的偏好设置,在主表中点击子表它的属性应该会在右边栏显示,上上次的文章我已经说过要注意Connection type属性,一个是不用,一个是和父表相同,还有一个use datasource。。。。这是这次我们要使用的,选择它然后在下面Data Source Exception 中填入

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{cities})

\

如下图:$F{cities}就是我们要传递给字表的数据,只注重技术,不考虑美观,做的就随意了些

\

下面切换到子表的设计界面,把那些没有用到的bands删掉或者高度设为0

不知道你还记不记得上面我们创建的CityBean,它包含一个属性参数,而我们传给子表的是一个City列表,那么在子表中我们要把它提取出来

所以,在子表的fields中新建字段cityName这个字段属性要和CityBean里面的完全一样,不然就会出错的。

之后点击preview,当然是在主表中点击,会跳出些让输入什么的,不用管它,我们只要是想让iReport编译我们的文件形成后缀名为.jasper,也借此检查一下是否有错。

编译之后把主表和子表拷贝到之前说的那位置,运行服务器

\

打开:

\

需要源码请留邮箱,欢迎来探讨

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MHA+非root用户SSH等效性配置 下一篇需求引导设计切莫教条主义

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)
·Linux source 命令 - (2025-12-24 19:50:34)
·switch520最新的地址 (2025-12-24 19:19:41)
·微信聊天功能使用了 (2025-12-24 19:19:39)