简表的使用
一.引入
简表(JOR),是一款开源的报表工具,完全java实现,核心代码来自于国内一线报表工具品牌杰表.2008 。
提起开源的报表工具,不能不说说jaspereport,jasperreport作为著名的开源报表工具,在java程序员中一直享有盛名。但
由于其设计主要是针对西式的简单报表,设计起复杂的中式报表来,有点力不从心,所以,在国内的项目中能成功应用的例
子并不多。JOR,作为能做复杂报表的开源报表工具,可以弥补jasperreport的不足。
提起开源的报表工具,不能不说说jaspereport,jasperreport作为著名的开源报表工具,在java程序员中一直享有盛名。但
由于其设计主要是针对西式的简单报表,设计起复杂的中式报表来,有点力不从心,所以,在国内的项目中能成功应用的例
子并不多。JOR,作为能做复杂报表的开源报表工具,可以弥补jasperreport的不足。
简单来说,以前我们写一个查询结果的页面,需要写controller,service,dao几个层,并且一当结果页面需要改变,那么我们需要改动几个层的代码,于是在查询页面列头经常更换的情况下,使用代码写死的弊端就显得非常繁琐,针对这种情况,报表是最合适的。
简表(JOR) 的特点:
√ 完全开源
√ 支持可视化地设计报表
√ 支持复杂的交叉表,如多级行上、列上分组;分组不平衡的交叉表等
√ 支持复杂的跨组运算,如同比、占比、环比、排名 等
√ 支持图片,图片源可以来自数据库、本地文件、网络、classpath、内嵌
√ 支持脚本,脚本可以扩展
√ 支持简单列表、主从报表、标签报表、分栏报表、套打报表
√ 支持jsp tag、ajax、web form 集成
√ 支持 HTML,PDF,EXCEL导出
√ 支持所有主流数据库,如 Oracle、DB2、Sql Server 、Mysql等
√ 支持任何的j2ee应用服务器,如Tomcat、Apusic、 WebSphere、WebLogic等
√ 支持Windows、Linux、Unix、Mac os等操作系统
√ JDK1.4 以上版本适用
简表(JOR) 的特点:
√ 完全开源
√ 支持可视化地设计报表
√ 支持复杂的交叉表,如多级行上、列上分组;分组不平衡的交叉表等
√ 支持复杂的跨组运算,如同比、占比、环比、排名 等
√ 支持图片,图片源可以来自数据库、本地文件、网络、classpath、内嵌
√ 支持脚本,脚本可以扩展
√ 支持简单列表、主从报表、标签报表、分栏报表、套打报表
√ 支持jsp tag、ajax、web form 集成
√ 支持 HTML,PDF,EXCEL导出
√ 支持所有主流数据库,如 Oracle、DB2、Sql Server 、Mysql等
√ 支持任何的j2ee应用服务器,如Tomcat、Apusic、 WebSphere、WebLogic等
√ 支持Windows、Linux、Unix、Mac os等操作系统
√ JDK1.4 以上版本适用
官网:http://www.jatools.com/jor/
二.简单的使用
通过官网下载到 jor.bin.zip ,解压后 会得到
(1). designer - 制作工具
(2). tomcat.with.jor - tomcat,在线生成查询结果页面
(3). JOR简表使用手册.chm
报表使用共需要以下几个步骤:
(1). 制作报表的xml模板文件
(2). 将模板导入系统中,生成结果页面
1.
制作一个报表的.xml文件
首先,打开 designer/bin/jdbcproviders.xml文件,准备配置一下 所用的数据库
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jatools Class="[Ljatools.designer.JdbcProvider;" ItemClass="jatools.designer.JdbcProvider"
Len="13" Name="jatools report template">
<Item0>
<Name>demo</Name>
<Driver>org.hsqldb.jdbcDriver</Driver>
<User>sa</User>
<Url>jdbc:hsqldb:./demosdb/mydb</Url>
</Item0>
<Item1>
<Name>IBM DB2</Name>
<Driver>COM.ibm.db2.jdbc.app.DB2Driver</Driver>
<Url>jdbc:db2://localhost:5000/sample</Url>
</Item1>
<Item2>
<Name>Oracle</Name>
<Driver>oracle.jdbc.driver.OracleDriver</Driver>
<Url>jdbc:oracle:thin:@localhost:1521:test</Url>
</Item2>
<Item3>
<Name>Sybase</Name>
<Driver>com.sybase.jdbc2.jdbc.SybDriver</Driver>
<Url>jdbc:sybase:Tds:localhost:5007/myDB</Url>
</Item3>
<Item4>
<Name>MS SQL</Name>
<Driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</Driver>
<Url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb</Url>
</Item4>
<Item5>
<Name>JDBC-ODBC Bridge</Name>
<Driver>sun.jdbc.odbc.JdbcOdbcDriver</Driver>
<Url>jdbc:odbc:driver={Microsoft Access Driver
(*.mdb)};DBQ=dbdemos.mdb</Url>
</Item5>
<Item6>
<Name>JndiDatasource(应用服务器连接池)</Name>
<Driver>com.jatools.db.JndiDriver</Driver>
<Url>FACTORY=weblogic.jndi.WLInitialContextFactory;URL=t3://localhost:7001;DATASOURCE=examples-dataSource-demoPool
</Url>
</Item6>
<Item7>
<Name>Informix</Name>
<Driver>com.informix.jdbc.IfxDriver</Driver>
<Url>jdbc:informix-sqli://localhost:1533/testDB:INFORMIXSERVER=myserver
</Url>
</Item7>
<Item8>
<Name>phdb</Name>
<Driver>oracle.jdbc.driver.OracleDriver</Driver>
<User>reporter</User>
<Url>jdbc:oracle:thin:@10.117.8.189:1521:openview</Url>
</Item8>
<Item9>
<Name>ph2</Name>
<Driver>oracle.jdbc.driver.OracleDriver</Driver>
<User>reporter</User>
<Url>jdbc:oracle:thin:@10.199.4.14:1521:openview</Url>
</Item9>
<Item10>
<Name>lh.db</Name>
<Driver>oracle.jdbc.driver.OracleDriver</Driver>
<User>reporter</User>
<Url>jdbc:oracle:thin:@10.70.241.230:1521:openview</Url>
</Item10>
<Item11>
<Name>ph.ds </Name>
<Driver>com.jatools.db.JndiDriver</Driver>
<User>reporter</User>
<Url>DATASOURCE=java:comp/env/jdbc/oracleDS</Url>
</Item11>
<Item12>
<Name>jhcj_prope(默认)</Name>
<Driver>${property("driverClassName")}</Driver>
<User>${property("username")}</User>
<Password>${property("password")}</Password>
<Url>${property("url")}</Url>
</Item12>
</jatools>
可以看到已经有13个<Item>
</Item>了,
于是再加一组
<Item13>
<Name>Nuohy_Mysql</Name>
<Driver>com.mysql.jdbc.Driver</Driver>
<User>root</User>
<Password>root</Password>
<Url>jdbc:mysql://192.168.1.42/jortest</Url>
<Driver>com.mysql.jdbc.Driver</Driver>
<User>root</User>
<Password>root</Password>
<Url>jdbc:mysql://192.168.1.42/jortest</Url>
</Item13>
并且将
中的Len="13" 改为14,因为从0开始的,又添加了一组。
<jatools Class="[Ljatools.designer.JdbcProvider;" ItemClass="jatools.designer.JdbcProvider"
Len="13" Name="jatools report template">
然后双击 designer/bin/start.bat 打开报表设计器
点击文件->新建->表格报表,会出现表格报表向导页面如下所示:
点击-> 新建数据集 -> JDBC数据集,出现如下图所示:
数据库选择刚刚 添加的一组配置文件中的Nuohy_Mysql,点击测试连接,看看是否正常,确认正常后
开始在 SQL属性上写上查询语句:select * from student;
注:我的数据库中含有一张student表,如下:
CREATE TABLE `student` (
`sid` INT(10) NOT NULL AUTO_INCREMENT,
`stuname` VARCHAR(225) DEFAULT NULL,
`sex` VARCHAR(225) DEFAULT NULL,
`conn` VARCHAR(225) DEFAULT NULL,
`qq` VARCHAR(225) DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
并且添加了一些数据
确认预览能查到所有数据后
填写 名称 我命名为 studentReport,点击确定
选用刚刚的添加的数据集
studentReport 至右侧:
点击下一步,选中显示项中 所有字段,添加至 右侧,并加上显示标签
点击下一步后,进入分组,暂时不用分组,直接下一步,进入统计项,也不用,点击完成。
ctrl+s 保存一下,为studentReport.xml 文件。
文件保存路径为:C:/Users/admin/Desktop/mulhead.xml
可以点击预览看看,生成的效果,
2. 将模板导入系统中,生成结果页面
首先打开服务器:tomcat.with.jor/bin/startup.bat,
启动成功过后,打开链接
http://localhost:8080/jor/reportviewer?file=文件路径
如:http://localhost:8080/jor/reportviewer?file=C:/Users/admin/Desktop/mulhead.xml
视图会显示出来,如下图所示:
至此,报表简单的使用就结束了!