浏览 4750 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-24
网址:https://sourceforge.net/projects/jasperreports/ 最好下载完整的zip包:jasperreports-1.3.0-project.zip 这样可以得到所有的文件,包括src,samples。 2.下载到jasperreports-1.3.0-project.zip包后,解压一看,本身是一个project,有.project,.classpath文件等,于是想到可以把它做为一个project导入eclipse中,于是把它拷贝到eclipse的workspace中,然后“import”,即可整个jasperreport工程导入到ecplise了! 注意:我刚开始导入时总出错,提示"Invalid project description",无法导入;后来鬼使神差的把解压后的工程名称"jasperreports-1.3.0"改为"jasperreports"就顺利导入了! 再后来,想把工程改为别的名称,但是import时指定工程根目录后,压根就无反应,"finish"按钮始终是灰色的,无法导入; 最后问了一下wwm,才是知道如果要import a project,则project名称要与.project文件的<name></name>中的名称一致,否则无法导入! 例如,工程名称(根目录)为jasperreports,那么.project中应为:<name>jasperreports</name>; 前面是凑巧改对了。 3.但是导入到eclipse后,它是做为一个java project的,也就方便看源代码而已,到底要怎么才能运行生成报表呢?这就需要ant来执行build.xml。 4.如果没有接触过ant,没关系,很简单的,放心吧。推荐看《java 学习笔记》良葛格 附录A Ant简介(网上搜电子版的即可),15分钟即可搞定ant,不要被它挡路了哦:) 5.并且,eclipse中就自带ant,如果要运行"demo\samples\barbecue"示例,进入"jasperreports\demo\samples\barbecue",右键"build.xml", 选"run as->ant build..",把"javac","compile","fill","view"都打上勾,点"run",ant开始运行该build.xml,不一会,哇,看到报表了!好激动!不过这个报表只有表,没有图,即:看不到自己想要的折线图,柱状图,饼图等。 6.看了一些"demo\samples"下的所有示例,觉得折线图,柱状图,饼图等应该都是在"charts"示例中,意识运行"charts"示例的build.xml文件,但是不能编译通过,提示错误: javac: [javac] Compiling 2 source files to E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts [javac] 注意: E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java 使用了未经检查或不安全的操作。 [javac] 注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译。 compile:通过,略. fill: [java] java.sql.SQLException: Connection is broken: Connection refused: connect [java] at org.hsqldb.Trace.getError(Unknown Source) …… view: [java] net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: MultipleAxisChartReport.jrprint 7.怎么办呢?上网查jasper的资料,折腾了大半天,还是没有任何进展,网上的资料都只简单的提到“需要ant”执行,唉,真是没办法。只好转向运行"webapp"示例,运行成功了!(详细看运行jasperreport的webapp示例一文) 8.实在不知道为什么最重要的charts示例无法运行,还是先踏踏实实看一下jasperreports的原理吧,于是认真看了"jasperreports 教程",了解到jasperreports的基本原理: 调用jasperreports的相应的库函数,把.jrxml编译为.jasper;->由.jasper生成.jrprint;->由.jrprint得到各种输出方式的报表。 理解到这一点后,自己就没再往下看,因为能够确定charts示例无法运行绝对与jasperreports的原理无关了。 9.于是,认真分析了一下编译提示的错误,发现主要就是因为编译无法通过造成的,以至于后面缺少对应的.jrprint文件。而编译不通过的原因是“[javac]要了解详细信息,请使用-xlint:unchecked重新编译”,在build.xml中相应位置加上编译参数: <javac srcdir="src" destdir="${classdir}"> <compilerarg value="-Xlint:unchecked"/> 终于编译通过了!!(详细参见“Eclipse中报错"要了解详细信息,请使用-xlint unchecked重新编译"的解决方案”一文) 10.这时javac通过了,即ChartsApp.java编译通过了,但是fill和view这两步还是提示原来的错误,如下所示: javac: [javac] Compiling 2 source files to E:\jiangcm\workspace-forict-myeclipse\jasperreports-1.3.0-project\demo\samples\charts [javac] E:\jiangcm\workspace-forict-myeclipse\jasperreports-1.3.0-project\demo\samples\charts\ChartsApp.java:115: 警告: [unchecked] 对作为普通类型 java.util.Map 的成员的 put(K,V) 的调用未经检查 [javac] parameters.put("MaxOrderID", new Integer(12500)); [javac] ^ [javac] 1 警告 compile: fill: [java] java.sql.SQLException: Connection is broken: Connection refused: connect [java] at org.hsqldb.Trace.getError(Unknown Source) view: [java] net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: MultipleAxisChartReport.jrprint [java] at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75) 其中fill这一步提示的是SQLException的错误,难道是要配置数据源或者是要运行什么东西? 再看fill的出错提示:"[java] at org.hsqldb.Trace.getError(Unknown Source)",对了,好像"demo"文件夹里有"hsqldb"文件夹,是不是要先运行"hsqldb"文件夹的内容??试试。 10.于是ant编译"demo\hsqldb"的build.xml;提示:server is running... 应该是数据库启动了; 11.接着ant编译"demo\samples\charts"的build.xml;顺利fill,耶!看到曲线图、柱状图等报表了! 12.备注:关掉报表再直接运行一次charts的build.xml,还能正确看到报表;关掉eclipse再运行,也也还能正确看到报表;看来hsqldb只要运行过一次,以后就都有效了!至于原理就不太明白了,难道是hsqldb运行过之后就永久的把数据导入到工程的报表中了?有待以后学习验证了。 13.小结: 运行jasperreports示例,关键是要注意和解决三个问题: 1)import project时,工程名称要与.project文件中"<name></name>"中的名称一致,否则无法导入; 2)jdk版本兼容的问题: 加入编译参数:<compilerarg value="-Xlint:unchecked"/> 3)要先运行一下"demo\hsqldb"下的build.xml,启动数据库导入数据,才能fill报表,运行显示报表; ok! 以上步骤重复验证过两三次均无问题,按上述步骤保证就能运行jasperreports提供的charts关键示例了! ok! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-25
如何换页,或者控制每页行数
英雄是否知晓? |
|
返回顶楼 | |
发表时间:2007-01-25
抱歉哦,我这两天刚刚开始接触jasperreports,刚能把它跑起来,还不会分页。
|
|
返回顶楼 | |