开发环境描述:
vista操作系统.
下载iReport-nb-3.5.3-windows-installer,这个作为报表的设计器.
采用的框架,webwork+ibatis+spring
步骤1:
安装iReport-nb-3.5.3-windows-installer,到C盘下,设有设计器,
启动iReport-nb-3.5.3,选择模板A4,
同时修改报表的属性language为java,原默认为groovy.如果没有修改可能部署无法正常运行. pagewidth,pageheigth设置宽度,高度.QueryText作为测试十分有用,写连接的数据库的sql语句. 窗口-->服务可以启动连接到数据库的操作.
对于.jrxml文件有设计,xml,预览等选项卡,设计预览类型在preview中选择.
=============================================
因为ibatis的List通过
queryForList(statementName, parameterObject);
以下是sqlmap的描述,返回resultClass的是hashMap.
<select id="findEmsmail" parameterClass="java.util.HashMap" resultClass="java.util.HashMap" remapResults="true">
</select>
在ireport中,调用以上返回的List数据,是通过如下方法,否则无法正常显示
$P.get("mail_feearea")
中文显示问题:设置以下属性即可解决.
pdfFontName="STSong-Light" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"
2.导入lib到项目中.需要从ireport中lib中找到以下类放到项目lib下.
commons-beanutils-1.8.0.jar
commons-digester-1.7.jar
commons-logging-1.1.jar
iText-2.1.0.jar
iTextAsian.jar(中文显示问题)
jasperreports-3.5.3.jar
jdt-compiler-3.1.1.jar
jxl-2.6.jar
png-encoder-1.5.jar
poi-3.2-FINAL-20081019.jar
3.action类
private List emsmailList;//申明该对象.同时需要有set/get方法.
if ("print".equals(actionType)) {
emsmailList = emsmailFacade.findEmsmail(search);//查询数据
return "report";
}
4.xwork的配置
<result name="report" type="jasper">
<param name="location">/WEB-INF/pages/application/netprint/emsmail/emsmail.jasper</param>
<param name="dataSource">emsmailList</param>
<param name="format">PDF</param>
</result>
注意:
针对webwork需要在xwork.xml中加入(代码页段)
<xwork>
<include file="webwork-default.xml"></include>
</xwork>
针对struct2需要如下配置(代码页段)
<struts>
<package name="default" extends="struts-default,jasperreports-default">
</structs>