锁定老帖子 主题:准备发布Jert的第一个版本
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-01-17
我准备发布JavaEye Reporting Tool (Jert)的第一个版本,由于开发环境限制的缘故,没有办法进行各种servlet container和各种数据库上的功能测试,所以希望在发布第一个版本之前,能够得到大家的帮忙,从CVS上check out代码进行测试。 CVS Server: cvs.iteye.com Repository: /cvsroot/quake CVS username: anonymous CVS password: anonymous module name: jert 感谢Robbin提供论坛供我们交流,提供CVS服务器的支持,以及对于Jert项目的宣传。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-01-17
JavaEye Reporting Tool (JERT)
JERT is an open-source, web-based database reporting tool. It allows you to create flexible reports without any programming (though you'll need SQL knowledge). It's a lightweight reporting environment, the report can be created to quickly share information via web. JERT是一个开放源代码的,基于web的,数据库报表工具,它能够让你不需要编程而能创建各种灵活的报表。(当然你需要了解一定的SQL知识) Why Yet Another Reporting Tool? 我们需要一个轻量级的报表工具,能够快速地创建报表,并且将这些报表通过web进行信息共享,在开始JERT项目之前,试用了几个开源的工具: JasperReports, JFreeReport, Datavision, ART, openreports。前3个reporting tool能够完全满足我们的用户需求,但是他们太过于重量级,需要用户了解xml, report designer等知识。而ART过于简陋,不支持动态参数的sql生成,而且代码是基于servlet直接output write,比较难扩展。openreports是最接近需求的一个工具,但是它的报表来源是基于JFreeReport,还是需要用户了解其他的相关知识。所以最终决定是重新开发一个轻量级别的,容易扩展,容易集成的报表工具:Jert。 Jert全部采用open source的工具编写: WebWork, Spring, Hibernate, Sitemesh, XStream, etc , it's powered by open source. |
|
返回顶楼 | |
发表时间:2005-01-17
安装说明
1. 安装 执行ant war以后,在dist目录下面会多出jert.war,将其发布到任意的servlet container下面(对于常见的servlet container如Tomcat, Resin, Jetty等等,只需要将它拷贝到webapps目录下即可)。 2. 设置管理员帐号 访问 http://localhost:8080/jert/setup/index.action (请根据发布的机器名和端口不同,做相应的修改) ,可以创建一个管理员帐户,然后可以用这个帐户登陆进行操作。 3. 导入Sample数据 首先我们需要创建一个数据库连接到JERT自带的hsql northwind数据库: A. 访问 Administration -> Databases -> Create New Database B. 选择 HSQL Standalone Mode C. URL 填写 jdbc:hsqldb:D:\jert\sample\northwind\northwind (请根据你的jert路径不同,做相应的修改) D. Username填写 sa,密码为空 然后我们导入一些Report的例子 A. 访问 Administration -> Reports B. 选择前面建立的数据库 -> Import From XML C. 把sample\northwind\reports.xml的内容,复制到文本框 导入完毕以后,我们就可以访问Reports模块下面的这些Sample Reports了。 |
|
返回顶楼 | |
发表时间:2005-01-17
基本的操作说明
1. 如何连接报表数据库 用管理员帐号登陆,选择Administration -> Databases -> Create New Database,填写相关的连接信息即可。 JERT release package里面只带有hsql的jdbc driver,如果你需要连接其他类型的数据库,请将相应的jdbc driver lib添加到classpath。 2. 如何创建报表 在创建好数据库以后,我们就可以开始添加需要的报表。 选择Administration -> Reports -> Create New 目前共有3种报表类型可以选择: A. STATIC_QUERY 静态的sql query报表,用户不需要对该报表做输入参数的动作,我们可以直接输入任意的sql,比如:select * from user。 B. SIMPLE_PARAMETER_QUERY 简单固定参数报表,用户需要对该报表做输入参数的动作以后,才能得到查询结果,比如:select * from user where age > #age#。在这里参数名需要用“#”包围起来。 C. DYNAMIC_PARAMETER_QUERY 动态的非固定参数报表,根据用户输入参数的不同,产生不同的查询语句,比如: <plain>select * from user where 1 = 1 </plain> <dynamic type="isNotNull" append-before="and age > " parameter-name="age"/> <dynamic type="isNotNull" append-before="and sex = " parameter-name="sex"/> 当用户只输入age这个参数的时候,会产生这样的查询: select * from user where 1 = 1 and age > 18 当用户输入了age和sex这2个参数的时候,则会产生这样的查询: select * from user where 1 =1 and age > 18 and sex = 'male' 关于这种类型的报表详细说明,请参考dynamic_report.txt [TODO] 3. 参数的说明 如果是有参数的报表,需要设置参数类型 Type:请根据数据库里对应的参数类型进行相应的设置 Optional: 用户可以不输入该参数 DefaultValue: 显示在输入参数页面的默认值 4. 导入/导出报表定义 在Administration -> Reports -> Export All To XML,能够把该数据库下所有的定义文件导出。 点击每个报表的定义,还能够选择导出单个报表定义。 Administration -> Reports -> Import From XML,可以将导出的xml文件内容重新导入到该数据库下。 可以用这个功能来做报表定义的备份、恢复或者做类似数据库之间的报表迁移。 |
|
返回顶楼 | |
发表时间:2005-01-17
Screenshot
|
|
返回顶楼 | |
发表时间:2005-01-17
可是我看不到目前支持哪种输出格式啊?难道只是现在看到的这个html和excel表格??
打算支持pdf、word么? 大致试了一下。 运行环境: websphere5.1+补丁、mysql没有问题。在websphere不打补丁的情况下是白板。呵呵,不要担心,是websphere的问题。在sitemesh的jira上有描述。 tomcat+hsql也没有问题。 只是粗粗的跑了一遍。不代表测试结论。呵呵。 |
|
返回顶楼 | |
发表时间:2005-01-18
谢谢denis的帮忙,我手边只有测试过tomcat, jetty, resin,报表数据库也只有hsql, mysql 和 ms 的sql server。
pdf和word的输出支持准备放在第2个release版本以后再做。 |
|
返回顶楼 | |
发表时间:2005-01-18
嗯,非常有兴趣帮你测试,我们上次帮美国一家公司做一个小项目,其中涉及到生成报表,用得是jfreechart,iText组件,可以生成pdf,excel,html,csv,txt,rtf六种格式的报表,数据量非常大,有时会达到千万条。刚好可以利用他们数据庫中的内容帮你测试。
|
|
返回顶楼 | |
发表时间:2005-01-18
Quake Wang 写道 谢谢denis的帮忙,我手边只有测试过tomcat, jetty, resin,报表数据库也只有hsql, mysql 和 ms 的sql server。
pdf和word的输出支持准备放在第2个release版本以后再做。 说几点建议啊,仅代表个人观点。 1、中文处理方面似乎应该加强。 理由:今天中午有空,把整个东西放在linux上又跑了一下。 环境是linxu+websphere5.1plus+mysql 一切正常。中文输出也正常。但是如果是 windows环境下似乎出来的就是乱码了。还没仔细考虑过问题出在哪里。估计最有可能是因为windows下mysql的字符集编码和linxu下不一样导致。不过作为一个项目就应该多考虑一下。 2、数据库支持应该更好。 理由:既然使用hibernate,那么支持多种数据库应该根本不是问题。何不多支持几种? 3、输出格式应该更多,效率也需要考虑。 理由:数据量大时比较慢。(其实也不太大,大概13000 records) |
|
返回顶楼 | |
发表时间:2005-01-18
中文问题我猜想有可能修改一下你的mysql driver url,加上encoding的设置,就能够显示出正常的中文报表了。
关于数据库的支持,是我没有讲清楚,让你误会了: Jert本身采用hibernate来存放数据库定义,报表定义之类的信息,所以这一块是不需要考虑多种数据库的兼容。 我担心的是生成报表的这一部分,是通过jdbc api去链接报表数据库,因为测试mysql和hsql上发现了一些兼容性问题(分页游标定位和输出值格式的问题),所以担心其他数据库可能还有一些未发现的问题。 其他输出格式的支持会在以后的版本里面加上,效率问题我想可能是因为分页是通过ResultSet的定位去实现的,不同的jdbc driver实现,在这个方法上性能差很多。 谢谢 |
|
返回顶楼 | |