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-Light,PDF Encoding要设置成UniGB-UCS2-H (Chinese Simplified),这样才不会出现中文问题。然后在static text中输入正文。
?
?
?
?
当点击?时,中文问题也同样处理。并且在Text Field中,参数名字要与VO中的一致,当
?变成绿色?时,说明正确,存在变量name,否则说明书写错误或者没有添加该变量。
?
?
?
?
在Library中,添加参数,变量如下:(切记!同VO中变量名字完全一致)
?
?
?
当报表的所有设置结束后,点击[建立][编译]即可保存,每次修改后,如此操作即可。
?
?
?
比如建立了如下的报表,有如下的程序实现。
?
?
1.?????? JasperReport与iReport的结合:
在程序中用下面的语句来实现报表数据的加入。
??????? 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.
??????? }
?