FineReport 集成笔录(一)
之 初体验
目的:将finereport报表集成到现有web系统
使用版本 :finereport8.0
环境:Tomcat7.0/jdk1.7
本次考虑因素:1. 查询条件使用web系统本身的查询页面
2. 如何控制不登陆系统不能访问报表(Web系统本身实现) 3. 如何控制查询,打印权限
1. 下载finereport8.0并安装
2. 用finereport8设计器设计一个新报表 a. 打开设计器,输入激活码(点击获取信息码在官网输入相应信息获取激活码)
b. 新建一个自己系统相关的数据源
c. 文件-- 新建工作簿,新建数据集
d. 添加展示内容,并保存(WorkBook1.cpt)
3. 将finereport集成至web系统
a. 在web.xml里添加添加代码:- <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>
复制代码
b. 复制lib文件(最开始只添加基础的文件,后面遇到缺少什么则加什么):
将fr-core-8.0.jarfr-report-8.0.jar fr-third-8.0.jar三个包加入到Web系统里,如果使用数据决策系统则加入fr-platform-8.0.jar[size=13.3333330154419px],在web系统web-inf文件夹下建 resources文件夹,新建datasource.xml,添加相应数据源,如果不知道如何添加,则可以找到finereport设计器的resources目录(D:\FineReport_8.0\WebReport\ WEB-INF \resources),将里面的datasource.xml复制到Web的resources里,然后删除多余的数据源,只保留自己系统的数据源: - <?xml version="1.0"encoding="UTF-8"?>
- <DatasourceManager xmlVersion="20141222"releaseVersion="8.0.0">
- <ConnectionMap>
- <Connection name="en"class="com.fr.data.impl.JDBCDatabaseConnection">
- <DatabaseAttr/>
- <JDBCDatabaseAttr url="jdbc:sqlserver://localhost:1433;databaseName=en"driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"user="sa" password="___0060003f0066003d005400e50013"encryptPassword="true">
- <DBCPAttr/>
- </JDBCDatabaseAttr>
- </Connection>
- </ConnectionMap>
- </DatasourceManager>
复制代码
c. 在web系统web-inf文件夹下建reportlets文件夹,将刚才做的一个测试cpt复制到里面
4. Web系统里添加相应功能实现 a. 建立查询条件页面
b. 查询页面提交后跳转到showReport.jsp页面 showReport.jsp - <%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%>
- <%
- String path =request.getContextPath();
- String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML>
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'showReport.jsp' starting page</title>
- <meta http-equiv="pragma"content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <linkrel="stylesheet" type="text/css" href="styles.css">
- -->
- </head>
- <body>
- <iframe id="iframe1" name="ifm_result"width="900" height="400" src="<%=path%>/ReportServer?reportlet=WorkBook1.cpt"></iframe>
- </body>
- </html>
复制代码
5. 至此初步的集成已完成,下面是查询结果:
{:5_138:},留给自己备忘及有需要的朋友,记录执续进行
|