JAVA调用IReport模板生成PDF文件
先生成一个空白模板
然后先不要急着拼组件,先来大致了解一下这个工具的使用方法和模板的构造
title:只在报表的第一页显示,后面的就不在显示,常用来放置报表名称。
page header :相当于页眉,在第一页位于title的下面,而后的页中是位于最上部。
page footer :相当于页脚,和page header是想对应的。
detail :报表内容显示的部分,这部分内容是重复的,相当于迭代的过程,常用于放置类似表格中列的内容。
column header :针对Detail Band 的表头段,一般情况下在这个段中画报表的表头,用于放置表头内容
column footer :和column header 相对的。
summary :出现在整个报表的最后一页的detail的下面,统计总值结果。
下面下来做个测试,了解一下这个模板的各个位置,首先把各个构件的高度都调到最高,让这个页面放到最大,如果不放大的话,所有的构件都在同一页上了,看不出来效果,现在我把每个构件的中间都放了一个staticText,写上他们的名字,再把背景图也加上,看下效果,
如果你不知道背景图怎么展开,先点一下构件的名字,然后把属性高度调到最高,也就是802,你就可以看到他了,然后再从组件里拖一个image过来,放一个图片就OK了
然后准备就绪,编译一把,看看效果
共有三页,
第一页:
第二页
第三页:
然后可以总结下,这个title是只在第一页会有,summary是只在最后一页会有,背景图是每一页都有,detail除了第一页和最后一页都有,其他的组件都是除了最后一页都有,然后知道了这些以后就可以按照自己的需求去写这个页面了。
主要就是有个list的遍历循环,我等会儿再写。
常见的问题主要有
1,空白展示为null;
2,文字内容太长,溢出了;
3,中文乱码;
4,发布到linux服务器中文文字重叠,吃字;
其他的我暂时想不起来了,我等闲了再接着写,这会儿有事了
续:
list的循环,这里要结合java代码给塞数据
先来看一下塞一个变量怎么塞:
点击效果预览,会提示让你输入这个参数内容
然后就看到了这个参数了
下面我们来看list是怎么搞的。
先建一个list属性的参数,记得已定要改为list格式
然后在dataset1中添加参数和刚才的名称一致
然后生成jasper文件模板以后我用java代码调用一下看看
稍等会儿再写,,