浅尝ART报表

ART:开源SQL报表,WEB,EXCEL、PDF...导出,最新版5.1

官网:https://sourceforge.net/projects/art/

环境:Java application server or servlet container e.g. Apache Tomcat 9(官例使用tomcat7);Java 8 and above

入坑:

本人使用SQL SERVER 2008 R2数据库,先尝试过使用ART5.1+Tomcat 9+JRE1.8+WIN2008R2,出现ART数据库配置界面无默认连接字符串(应该是JAVA环境问题),因看到其说明已改用HikariCP连接池,以为是这方面原因,搜集连接字符串填入,各种试验都连接不成功。ART数据库配置界面下方英文有说明,说集成Microsoft JDBC Driver 7.4,支持SQL2012及以上。后改用SQL2012环境试可以使用。但又不死心,回到SQL2008,并参考microsoft.com 之JDBC驱动说明,得知7.2以下支持SQL 2008 R2,改用mssql-jdbc-7.2.2.jre8.jar再试仍不通。后改装4.18,说明要求跟5.1一样,但直接就可以使用了(选择数据库类型后,会自动填写连接字符串)。至于5.1配置具体是java还是jdbc还是环境变量问题,不甚了了。后来还是改用ART4.18+JAE1.8(microsoft jdbc支持JAVA8的版本最多)+tomcat9+SQL2008R2

安装:

1,程序布署:解压ART4.18,复制art.war到tomcatwebapps下,tomcat启动后会自解压到art文件夹(如果作为默认程序,可放到webappsROOT下)。

2,数据库安装:ART4.18ART4.18下,打开art-tables.sql,注意先按英文说明,针对自己所用数据库型,替换数据类型,再建立ART数据库,执行SQL建表;quartz文件夹中,选择对应数据库脚本,本人选择tables_sqlServer.sql,在ART数据库中,执行SQL建表。

3,添加系统变量:JAVA_HOME,值为java环境文件夹,如:D:jre8;(microsoft-jdbc:CLASSPATH=【.;D:jre8libextmssql-jdbc-7.2.2.jre8.jar】,好像没用,源于微软文档。后来自作主张在catalina.bat中也加入了set "CLASSPATH=.;D:jre8libextmssql-jdbc-7.2.2.jre8.jar"。SQL2012+art5.1环境这两个都没配直接能用,仅供参考)

配置:

使用数据库用户登录,【配置】-【ART数据库】数据源;再可建立报表用户(管理员、普通用户),后面可使用这些用户登录,管理员可授予所有权限,普通用户可只授权查看报表权限;建立业务库数据源。

开发报表:

打开报表页面如:localhost:8080/art,以管理员登录,【配置】-【报表】-【添加】,可根据需要填写【名称】、【报表组】等,【数据源】选业务库数据源,最下方SQL中填写查询语句。

1,参数:保存报表后,在更多中选择【参数】,【添加】或【添加存在的】参数,参数也有单独管理模块;为方便,【参数名】可用英文(调用时使用英文名),【标签】就是报表中显示的标签名称,可使用中文;指定【数据类型】,如为Date,可设置日期格式yyyy-MM-dd(java格式),日期格式自动关联日期控件。【引用参数】:#para#,直接在SQL中使用。

2,下钻报表:可译为【挖掘】报表,即在查询结果中扩展子报表,可直接利用主查询参数,也可通过子报表参数指定【下钻列索引】,引用主查询结果列值,索引起始值1,即引用第几列就填数字几。包含了下钻报表的主报表结果后面会增加列,标题显示为下钻报表名,点击即可查询子报表。

3,LOV报表:就是键值列表。报表类型中指定为【LOV:Dynamic】或【LOV:STATIC】,即动态或静态列表。动态即使用SQL获取,静态手动填写。如果需要键=>值对应,则取两列,前一列为实际键值,后一列为表现值。LOV报表实际是给参数使用,参数中【使用LOV】选是,然后指定LOV报表即可。LOV报表参数可直接调用主报表中其它参数值,但该参数值改变并不能触发LOV报表参数更新,说明LOV报表参数只能在打开页面时加载。

4,SQL可嵌入HTML代码改变颜色等表现,还有调度任务、自动发送邮件等功能,暂未使用。

5,数据源可直接选择DEMO,即使用ART本地样本数据库,可看报表示例;【VIEW】-【文档】中可查看英文文档。

6,其它:ARTWEB-INFi18n文件夹中,可编辑语言本地化文件,修改界面中文翻译;languages.properties中可注释掉不用的语言列表;一个简洁的做法:做好备份,以ArtMessages_zh_CN.properties代替ArtMessages.properties。

优点:报表开源,可免费使用;报表格式众多,有浏览器、EXCEL、PDF、图表等多种形式;通过配置多个数据源,可集中生成报表;简洁美观...

不足(个人浅见):

1,如上所述,LOV报表实际是给参数使用,定义应直接设计在参数中,不然一个列表参数就需要套一个LOV报表,会导致报表繁多,却不是真正要使用的报表;

2,下钻报表要引用结果列,必须先定义参数,在参数中又需要指定下钻列索引,才能进行引用。因不同主报表可能列索引不一样,这样就导致指定下钻列索引的参数可能只能是该报表专用,结果同上,必然造成定义同名参数(下钻列索引不同)繁多;后面想引用已存在的参数时眼晕,该用哪个傻傻分不清楚。

总结:可作为不太复杂的报表系统使用,如果应用较多,或子报表多,可能LOV报表、同名参数满天飞。DEMO中已有此问题。

原文地址:https://www.cnblogs.com/hhlotus/p/14210166.html