欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

利用ireport打造子报表

更新时间: 2014-01-05 03:07:32 责任编辑: Author_N1

 

利用iReport制作子报表

iReport版本:3.7.3,JavaBean作为数据源。
1.先配置一下classpath,点击“工具”-->“选项”-->“iReport”-->“classpath”,
点击“AddFolder”,选择你的类文件编译之后的存放路径,如:D:\company\source\sponsorshipWeb\build\classes;
2.然后点击iReport主界面的Report DataSource按钮,新建一个JavaBeans set datasource,写上产生数据的类名,
还有一个静态方法名是用于预览的时候用,都无所谓。然后save。
3.点击一个数据库样的图标,在“Preview”按钮旁边。选择JavaBean DataSource,写上你的类全名,读取JavaBean的属性,再选择你需要的属性。

 

这样就可以完成基本的配置了,下面开始制作你的report。

 

1.创建主报表,添加各个静态文本域和属性(上面添加的属性都可以,也可以是系统属性),插入外部图片时,
在调色板中把“Image”拖到相应区域,在“Parameters”中添加一个参数,名字为“logoPath”(随便起名),类型为String,点击刚刚添加的那个Image的属性,在Inage Expression中选择上面添加的参数$P{logoPath},在iReport中预览的时候会弹出框让你输入图片的路径,在程序中的话,把图片的路径封装到Map中传递;

 

下面是重点了,子报表:


2.在调色板中有一个“Subreport”,把它拖到相应区域,选择“Create a new report”(也可选择已存在的report)-->“下一步”-->选择一个模板-->“下一步”-->选择Connections/DataSource,选择配置中新建的JavaBeans set datasource,然后一直下一步操作,到了“Subreport exp”这步,选择“Store the directory name in a parameter”,然后到“Connection exp”这步,选择“Don't use any connection or datasource”,点击完成;
3.到了子报表的设置界面,添加静态文本域和JavaBean属性,和设置主报表时一样;
4.回到主报表设置界面,会看到一个矩形框,这个就是子报表了,点击它,打开它的属性列表,在“Subreport properties”里面,会看到一个“Subreport Expression”,它的值如:$P{SUBREPORT_DIR} + "report1_subreport1.jasper",SUBREPORT_DIR这个是iReport自动生成的一个参数,在“Parameters”中可以找到,它有一个默认值,就是主报表所在的路径,预览的时候可以用,在程序中可以通过Map传递它的值;
5.在上面的属性列表中还可以看到“Connection type”,选择“Use a datasource expression”;在“Data source expression”写上:new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{applicationFileName})
$F{applicationFileName}:是主报表的JavaBean的一个属性,是一个List,里面封装的是另一个JavaBean,就是用
这个$F{applicationFileName}作为子报表的数据源,这样主报表就和子报表联系起来了。

经过我的测试是可以达到要求了。大家可以结合自己的项目参考一下。

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:07:32
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18628/
本文WWW.DOC100.NET DOC100.NET版权所有。