JasperReport与IReport开发指南 下载本文

选中Start on a New Page,来实现强迫换页,再选中Reset Page Number ,来实现页码重新编号。如果不需要设置分组的空间,可以设置高度为0。

设计报表模板

在开发的时候要注意以下几点:

1、 各个单证需要哪些band来实现它的功能;

2、 文本框伸展的时候会带动它下面的文本框往下流动,当是不能带到它下面的旁边的文本

框往下移动,这就需要在中间依靠一个空白文本。如上图的空白文本框。

使用CLOB对象

在java Scriptlet中添加下列方法 import net.sf.jasperreports.engine.*; import java.io.Reader; import oracle.sql.CLOB;

public String getCLOBString(CLOB clob)throws JRScriptletException { StringBuffer sb = new StringBuffer(1024); Reader instream = null; try {

instream = clob.getCharacterStream();

char[] buffer = new char[(int)clob.length()]; int length = 0;

while((length = instream.read(buffer)) != -1) { sb.append(buffer); } }

catch(Exception ex) { ex.printStackTrace(); }

finally { try {

if(instream != null) instream.close(); }

catch(Exception dx) { instream = null; }

return sb.toString(); }

}

在文本框中添加脚本处理

($P{REPORT_SCRIPTLET}).getCLOBString ($F{ENDORSETEXT}) 注意$F{ENDORSETEXT}是字段名称。

如何设置单证尾部签字部分

如果报表模板不需要支持批量打印,直接可以把签字部分放到lastPageFooter Band上,这样实现起来很简单。但是在批量打印中就不能这样做,需要把签字部分放在分组尾端打印,并合理设置好各band的高度,这样才能做到签字部分在pageFooter Band上面打印。

参考信息

iReport 中引用报表中的变量、参数及字段的书写形式

元素 名称 引用

变量 variablesName $V{ variablesName } 参数 parameterName $P{ parameterName } 字段 filedsName $F{ filedsName } 动态sql SQLSTR $P!{SQLSTR} 资源文件 key name $R{key name}

各个国家语种代码

语种代码 英文名称 中文名称 德语 英语 法语 日语 爪哇语 韩语 中文 de en fr ja jw ko zh German English French Japanese Javanese Korean Chinese 各个国家代码

Country Code Description CN DE FR IN US China Germany France India United States iReport pdf字体和字符集选择

语言 PDF 字体名

简体中文 STSong-Light

繁体中文 MHei-Medium MSung-Light 日语 HeiseiKakuGo-W5 HeiseiMin-W3

韩语 HYGoThic-Medium HYSMyeongJo-Medium 字符集 编码

简体中文 UniGB-UCS2-H UniGB-UCS2-V 繁体中文 UniCNS-UCS2-H UniCNS-UCS2-V 日语 UniJIS-UCS2-H UniJIS-UCS2-V

UniJIS-UCS2-HW-H UniJIS-UCS2-HW-V 韩语 UniKS-UCS2-H UniKS-UCS2-H