JEECG整合finereport快速搭建与开发
JEECG整合finereport快速搭建与开发
FineReport介绍
FineReport报表软件具有完备的报表填报功能,支持多级汇总填报。利用这一报表工具,用户即可把企业的业务模型,数据分析变成实际可操作的信息系统。利用报表展现、填报、汇总、统计分析、打印输出等功能搭建出轻量级企业报表平台。特别是采用主流的数据双向扩展,多源分片,纯拖拽等方式来进行报表设计,让报表设计人员无需掌握复杂的代码编写技能,从而业务人员也可以随时根据需要设计符合业务逻辑的报表,满足报表使用者的最终需求。无形中也降低了企业的运营成本.
更多介绍详见:
FineReport官网:http://www.finereport.com/
百度百科: http://baike.baidu.com/link?url=wyMAqDlInujEePMP7JP1DfApZQSE-X5lMMB47ZXdaYa0VR5qtuYyDwigJBjseKLGkRoccyr8hY2Nq9AnHYecEq
JEECG整合FineReport考虑:
JEECG目前仅支持JavaScript组件生成报表,缺少对第三方报表工具的支持,不利于报表的快速开发以及对报表的复杂需求的的满足。
JEECG整个FineReport步骤:
1、 从fineReport官方获取安装程序以及license文件。
2、 安装fineReport程序以及导入license文件。
3、 搭建JEECG开发环境,参照《JEECG开发指南v3.4.2.pdf》
4、 搭建完成之后,我们着手准备将FineReport整合到JEECG项目中。
5、 复制所需目录(备注:以下拷贝最好是在报表开发调试完成后,完成以下步骤)
5.1、全部复制
为了简便,可以直接将%FineReport_HOME%\WebReport\WEB-INF目录下面的classes,lib,reportlets,resources四个目录复制到%Tomcat_HOME% \webapps\jsp-examples\WEB-INF下。
注意:%FineReport_HOME%\WebReport\WEB-INF\classes文件夹下面可能会放置一些网络报表的class文件,在和您的工程集成时并无冲突。有关网络报表的介绍,可以在二次开发文档中找到。
5.2部分复制
也可以选择性的只复制必要性文件至已有工程中。
- 必须复制的文件
fr-server-*.jar:包含了报表服务的所有功能,必须拷贝至WEB-INF\lib下;
fr-third-*.jar:包含了报表服务引用的第三方插件,必须拷贝至WEB-INF\lib下;
reportlets:该文件夹为FineReport服务器规定的,不能修改,且必须为小写,其下可以建立子目录,所有报表模板cpt文件必须保存在reportlets文件夹下,且reportlets文件必须放在WEB-INF\下;
resources:该文件夹也是FineReport服务器规定的,不能修改,且必须为小写,下面包含了报表服务器的配置信息,拷贝至WEB-INF下面。
以上文件或文件夹是必须拷贝到已有应用目录下的。
- 选择性复制的文件
classes:该文件夹是应用服务器规定的,主要作用是存放.class文件。若对FineReport进行了二次开发,如自定义函数、程序数据源、程序网络报表等,也需要将编译后的class类文件拷贝到该文件夹下;
数据库驱动包:若报表中使用了JDBC连接了数据库,需要将对应的数据库驱动包如Oracle数据库的驱动ojdbc14.jar拷贝到WEB-INF\lib下,其他数据库驱动同样;
5.3. 修改web.xml文件
在已有工程的web.xml中添加相应的servlet与servlet-mapping子元素。
将%FineReport_HOME%/WebReport/WEB-INF下的web.xml中如下的部分复制到%Web_home%/webapps/Web工程名/WEB-INF下的web.xml中,在最后一个servlet之后插入:
<servlet>
<servlet-name>ReportServer</servlet-name>
<servlet-class>com.fr.web.ReportServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ReportServer</servlet-name>
<url-pattern>/ReportServer</url-pattern>
</servlet-mapping>
6、 修改FineReport的 datasource.xml 的数据库连接
<ConnectionMap>
<Connection name="jeecg-dk"class="com.fr.data.impl.JDBCDatabaseConnection">
<DatabaseAttr/>
<JDBCDatabaseAttr url="jdbc:mysql://localhost/jeecg-dk"
driver="com.mysql.jdbc.Driver"
user="root"
password="___006100210065007b"
encryptPassword="true">
<DBCPAttr/>
</JDBCDatabaseAttr>
</Connection>
</ConnectionMap>
Connection name 为报表工程中的数据源连接路名称。示例中给出的是jeecg-dk.
配置完成之后,我们就将FineReport的报表工程整合到我们的项目当中了。
剩下的就是需要解决JEECG工程如何调用这些报表。
7、 在JEECG中配置浏览FineReport报表的菜单。在/jeecg/system/service/impl/RepairServiceImpl.java中添加如下代码:
TSFunction reportdemo = new TSFunction();
reportdemo.setFunctionName("报表操作名称");
reportdemo.setFunctionUrl("ReportServer?reportlet=报表名称.cpt&isIframe");
reportdemo.setFunctionLevel((short)1);
reportdemo.setFunctionOrder("17");
reportdemo.setTSFunction(state);
reportdemo.setTSIcon(pic);
commonDao.saveOrUpdate(reportdemo);
8、 发布应用,启动tomcat.
9、 进入系统
10、 根据第7步设定的菜单按钮,如下图:
11、 点击按钮查询出报表。如图:
JEECG整合finereport快速搭建与开发相关推荐
- php开发架构设计,基于php的快速搭建SPA开发架构的框架设计与开发
程序 员之 家 基于 P h p 的快速搭建 S PA 开发架构的框架设计与 开发 ?叶松鑫 马 灏辉 何子 安 彭吉琪 黄钰冰 (佛 山科学技 术学 院 电子 信息工程 学 院 广东 佛 山 528 ...
- SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)
文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...
- mybatis注解开发_快速搭建MyBatis开发环境(配置版+注解版)
下面我们搭建一下MyBaits的开发环境,也就是一个用MyBaits框架访问数据库的例子. 1.项目结构如下 这里搭建的是一个maven项目. 2.引入依赖pom.xml 4.0.0com.suibi ...
- 修正《用Docker快速搭建Go开发环境》文章中的一处错误
上周写的文章<五分钟用Docker快速搭建Go开发环境>,文章发出去后有不少阅读量,而且从后台看的数据 60%的人都读完了.今天我自己用下面命令往 容器里的 Go 项目里下载包时发现了一处 ...
- EclipseLink+H2 快速搭建JPA开发环境
JPA是Java Persistence API, 是Java提供的持久层开发的统一API.但是JPA只是定义的规范接口,并没有提供具体实现, JPA的具体实现有Hibernate .EclipseL ...
- linux开发 stc_在Linux上快速搭建8051开发环境
在Linux上快速搭建8051开发环境(2018-7-2) 0. 写在开始之前 实验操作系统环境: Ubuntu 16.04 编译器: sdcc SDCC - Small Device C Compi ...
- Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤
之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时 ...
- 利用vagrant快速搭建rails开发环境
为什么80%的码农都做不了架构师?>>> Deprecated 前言 当我们学习一门新的语言或技术的时候,最麻烦或比较浪费时间的事情就是搭建开发环境.而搭建开发环境与我们将要学 ...
- docker容器没有apt_使用Docker快速搭建Rails开发环境
引言 Docker with rails 学习 Ruby On Rails 开发的同学经常会遇到因为电脑系统环境不同,同样的程序在自己这边跑起来没问题,给了其他人之后就是各种依赖或者环境问题,尤其是在 ...
最新文章
- 微信小程序 通过云函数请求http网站接口
- echarts实时更新数据_虎牙为S10拼了8.0年度更新!随时回放实时数据,还能养柴犬...
- 斯坦福CS231n 2017最新课程:李飞飞详解深度学习的框架实现与对比
- JavaScript中的原型,对split方法的重写
- 最短Hamilton路径与旅行商问题联系与解决
- 聊一聊,用户画像的前世今生
- Developer Express 中Gridcontrol获取选中行单元格的值
- 前端教程丨手把手教你用 Next.js 搭建个人博客,从入门到吃鸡
- linux python2.7 scipy_scipy.sparse.linalg.sp为Linux系统上的大型稀疏矩阵解决了令人惊讶的行为...
- Flash 与 JavaScript的交互总结
- 【UML】用例图Use Case diagram(转)
- Qt_QPushButton 原生按钮长按
- native2ascii命令详解
- 【冈萨雷斯的数字图像处理1~6章复习考试知识整理】
- Github上如何找开源代码
- Sue 的小球 ball
- ./node_modules/.bin/webpack指令出错,该如何解决???
- 使用Vite搭建基础项目
- 人月神话札记:编程的苦恼和乐趣
- 网站源码、模板分享(前端)
热门文章
- andriod 自写的view 获得屏幕大小和 获得自写view大小的不同写法
- CSRF:跨站请求伪造
- (计算机组成原理)第一章计算机系统概述-第二节:计算机硬件组成(存储器、运算器和控制器概述及计算机工作过程详解)
- C++使用localtime函数需要注意的地方
- 面试题24. 反转链表
- Java中类变量(静态变量)和实例变量区别
- C/C++语言函数参数里的“...”作用,va_list的使用(stdarg.h)
- VC++中实现INI文件读写的方法和示例
- centos7操作SSH/SSHD服务(查看/启动/重启/自启)
- Latex可能遇到的一些问题