您的位置:首页 > 编程语言 > ASP

用ireport设计报表,通过jasper实现pdf导出及打印

2009-09-05 23:04 831 查看
开发环境描述:

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: