ireport 5.6.0的常见使用及开发报表中经常遇到的问题总结

来源:互联网 发布:利达主机编程软件 编辑:程序博客网 时间:2024/05/07 04:01

         前言:第一次使用这个ireport报表工具的时候,在使用过程中遇到很多问题,百度的答案也是零零散散,有的可以找到,有的根本就没有。使用了近2个月,在此期间看过 2 3 本关于ireport的书,几十个博客关于ireport的使用和常见问题整理,我将这些都整理起来,自己再补充一些,希望可以帮到初次使用ireport的新手。

ireport常见使用。

关于Band的解释如下



看图慢慢进行理解。

Column Header和 Detail 1 要与你拖入的字段 高低一致,这样很美观

 蓝线与上下高低一致。

band 属性的print when Expression 这里写入条件 可以让它在某个条件显示 如new Boolean($V{PAGE_NUMBER}==$P{cc})

页数是第几页的时候显示。方便做复杂的页面。

接下来介绍常见的问题

问题1:如何在ireport实现每页显示固定条数

有两种解决方法:

方法1:在Reprot Inspector 下的你的ireport 属性中设置page height 也就是纸张的高度。

方法2:在组建面板中使用break按钮。拖入Detail 1 中。 在它的属性中找到print When Expression ,这是分页的触发条件

如:(new Boolean($V{PAGE_COUNT}.intValue()%15==0)
&&
new Boolean($V{PAGE_NUMBER}==1))
||
(new Boolean($V{PAGE_COUNT}.intValue()%30==0)
&&
new Boolean($V{PAGE_NUMBER}>1))

意思是如果数据满足每满足15条并且页数为1 进行分页 或者 如果数据满足每30条并且页数>1 进行分页。

具体需求 具体写条件。

问题2: 关于组件面板的使用

break 分页符 Frame拉入后可以在里面写东西(也就是一个简化的新的页面)

Barcode是条形码根据需求选择想要的那个,拖入后在属性里设置code Expression这里是条形码显示的值。在Preview中预览可以

用手机扫一扫读取。设置Module Width可以更好的调整条形码的样子。

Line 线   最常用的 Static Text    拖入输入汉字即可

问题3:

关于金额方面使用千分符进行显示

右键Field pattern  在Number中勾选Use 1000 separa...

问题4:关于日期方面的处理

右键Field pattern  Date或 Time

问题5:关于数据显示  数据为null是不显示null 显示空白

选中所有动态Text Field 属性中勾中Blank When Null

问题6:关于单元格的边框带线

右键点击padding And borders  在borders中点击4个方向,在Line width中输入0.5  点击OK

问题7:关于数字类型 % 小数点位数及数据处理

右键Field pattern Currency  Percentage中找

问题8:关于图片的路径问题

新建一个Parameters 在图片属性中的Image Expression 中选这个参数,将绝对路径通过参数传入图片。 

问题9:关于pdf导出中文汉字显示不出来,怎样处理

选中所有Static Text 和Text Field 在属性里面的最下方 Pdf Encoding 选择 Unigb-UCS2-H和PDF FONT NAME IS..选STSong-Light

问题10:关于IReport中如果动态单元格中显示的字过长,进行换行,而其它没换行其显示高度肯定不一致了,解决换行导致的单元格对不齐

属性中勾选Stretch with overflow 并在Stretch type 中选择第三个Rekative to tall....

建议 拉大单元格大小 字调小 自然换行

问题11:关于iReport 中获取系统当前时间

【Text Field Expression】参数,属性可手工录入为【java.util.Calendar.getInstance().getTime()】

问题12:关于报表属性介绍

Summary on a new page Summary 单独打印一页可以设置自己想要的效果

Title on a new page  同上


问题13:关于单元格字段属性介绍

略...

问题14:关于detail1 与column header中间有大量空白 进行处理

Float Column footer 在detail 1和footer中间去除大量空白

问题15:关于主子报表的问题

这个可以用一条sql搞定 没必要那么麻烦 

问题16:关于调整单元格高度和宽度小技巧


问题17:关于统计某个值怎么显示

这个百度 有 或者在java后台计算出以参数传入

问题18:关于金额 人民币大写转换

在java后台写好转换方法 把大写以参数或临时字段加入sql中

问题19:页面美观问题


统一以这种样式。

还有一些零碎的各种问题,百度会有一些答案的,就先简单介绍到这里,以后会有补充。

QQ799800648 用问题可以找宝宝一起研究哇。


2 0