当前位置: 代码迷 >> ASP >> iReport跟JasperReport生成报表
  详细解决方案

iReport跟JasperReport生成报表

热度:217   发布时间:2012-11-07 09:56:10.0
iReport和JasperReport生成报表

1.?????? iReport

http://ireport.sourceforge.net

2.????JasperReport

http://jasperreports.sourceforge.net

?

下面是iReport1.1.0+JasperReport1.1.1

IReport-1.1.0的安装.

1.?????? iReport的官方网站上下载iReport-1.1.0在本地解压缩.

2.?????? Ant文件夹复制到C盘的根目录下面.

3.?????? iReport的文件夹下找到iReport.bat,然后进行编辑.

4.?????? iReport.bat下面输入下面的内容.

@echo off

set JAVA_HOME=C:\j2sdk1.4.2_05

set ANT_HOME=C:\ant

set IREPORT_HOME=C:\Documenti\progetti\iReport\iReport2\

rem %ANT_HOME%\bin\ant javadocs

%ANT_HOME%\bin\ant iReport

完成之后可以双击iReport.bat文件,运行启动iReport

iReport-1.1.0的安装.(不需要Ant)

1.?????? 编辑iReport.bat文件如下内容即可.

@echo off

set JAVA_HOME=C:\j2sdk1.4.2_05

set PATH=C:\j2sdk1.4.2_05\bin;

set ClASSPATH=C:\j2sdk1.4.2_05\lib\tools.jar

set CMD_LINE_ARGS=

:setArgs

if ""%1""=="""" goto doneSetArgs

set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1

shift

goto setArgs

:doneSetArgs

cd bin

startup.bat %CMD_LINE_ARGS%

使用iReport制作报表

双击iReport1.1.0\bin\startup.bat就可以开始使用iReport了。

IReport界面如下:



?

?

?

点击new report 后,如下图:

?

?

?

?

弹出报表属性对话框,在这个对话框中输入报表属性的名字.选择报表纸张,修改对齐方式,页边距等报表的属性单击ok完成报表属性的设置.如下:

?

?

?

?

接下来,我们就可以设置报表内容。其中, 设置为静态文本 设置为参数,

**使用变量,参数,字段必须在变量,参数,字段的列表中进行设置.它们的名字必须和报表上的名字相同,数据类型相同.且字段的名字要和你所要填加到报表中的数据的VO的属性名字相同.

当点击 时,为了防止中文乱码问题,需要做如下设置,在Font中,Font Name设置成宋体,PDF Font Name设置成STSong-LightPDF Encoding要设置成UniGB-UCS2-H (Chinese Simplified),这样才不会出现中文问题。然后在static text中输入正文。

?

?

?

?

当点击?时,中文问题也同样处理。并且在Text Field中,参数名字要与VO中的一致,当
?
变成绿色?时,说明正确,存在变量name,否则说明书写错误或者没有添加该变量。

?

?

?

?

Library中,添加参数,变量如下:(切记!同VO中变量名字完全一致)



?

?

?

当报表的所有设置结束后,点击[建立][编译]即可保存,每次修改后,如此操作即可。



?

?

?

比如建立了如下的报表,有如下的程序实现。



?

?

1.?????? JasperReportiReport的结合:

在程序中用下面的语句来实现报表数据的加入。

??????? List list = new ArrayList();

??????? for(int i=0;i<10;i++){

??????????? UserInfo userInfo = new UserInfo();

??????????? userInfo.setUserNO("编号"+i);

??????????? userInfo.setUserName("姓名"+i);

??????????? userInfo.setUserAge(new Integer(i));

??????????? userInfo.setUserSex("");

??????????? list.add(userInfo);

??????? }

??????? Map map = new HashMap();

??????? map.put("company","胜利者");

??????? JRDataSource ds = new JRBeanCollectionDataSource(list);

??????? ServletContext servletContext = this.getServletContext();

??????? File reportFile = new File(servletContext.getRealPath("/WEB-INF/report/reportinfo.jasper")) ;

??????? try {

????????? ??OutputStream outputStream = response.getOutputStream();

??????????? response.setContentType("application/pdf");

??????????? JasperPrint jasperPrint = JasperFillManager.fillReport(reportFile.getPath(),map,ds);

??????????? JasperExportManager.exportReportToPdfStream(jasperPrint,outputStream);

??????????? outputStream.flush();

??????????? outputStream.close();

??????? } catch (IOException e) {

??????????? e.printStackTrace();? //To change body of catch statement use Options | File Templates.

??????? } catch (JRException e) {

??????????? e.printStackTrace();? //To change body of catch statement use Options | File Templates.

??????? }

?