FineReport使用总结

本文详细介绍如何将FineReport报表工具集成到项目中,包括破解版的安装、配置数据库连接、创建报表、集成到项目的过程及所需JAR包配置。

1.我这里用的是破解版FineReport,首先拿到资源解压目录:

资源下载地址:链接:https://pan.baidu.com/s/110wCTBdlP4mY_t_8lPSywA 密码:lxpx


2.点击exe文件傻瓜式安装,此处安装略



3.配置我们的数据库链接:


配置数据库链接,跟eclipse中配置一样:



点击测试链接,链接成功!


4.创建我们需要做报表的工作数据工作表



5.开始编写我们报表数据的SQL


点击确定,会生成一个模板数据集


6.点开这个模板集,实现过程就跟excel一样了,包括样式


7.点击预览,完成


8.这时候我们就需要把报表集成到我们的项目中了,首先找到我们安装的路径,我这里安装到D盘根目录


需要集成项目位置


打开安装目录下resources文件夹


由于我们用的是破解版,所以还需要加入一个文件,在刚刚我们拿到的资源文件夹下有一个lic文件


放进来的整体效果:


9.放入相关JAR,一共9个,架包资源链接https://pan.baidu.com/s/1mjqeaxi  密码:ryjt


10.在web.xml配置报表的相关服务,找到刚刚安装路径下面web.xml文件,把配置服务配置到我们项目中的web.xml中:



在spring配置文件中进行路径服务的修改:


11.搞定,eclipse集成完成,写一个页面进行测试:


把我们刚刚生成的模板放到这个文件里面,写一个简单的html页面,进行一个跳转就行



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<% response.addHeader("P3P","CP=\"CAO PSA OUR\""); %>
<html style="height: 100%">
     <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content="width=device-width" />
        <title>员工请假统计报表</title>
    <script type="text/javascript" src="../static/js/ttdms/jquery.min.js"></script>
    <link href="../static/css/ttdms/bootstrap-table.min.css" rel="stylesheet" type="text/css" />
    <link href="../static/css/ttdms/bootstrap.min.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../static/js/ttdms/bootstrap.min.js"></script>
    <link href="../static/css/ttdms/sweetalert.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../static/js/ttdms/sweetalert.min.js"></script>
    <script type="text/javascript" src="../static/js/ttdms/bootstrap-table.min.js"></script>
    <script type="text/javascript" src="../static/js/ttdms/bootstrap-table-zh-CN.min.js"></script>
    <script type="text/javascript" src="../static/js/ttdms/bootstrap-treeview.js"></script>
    <script type="text/javascript" src="../static/js/ttdms/bootstrapValidator.min.js"></script>
    <link href="../static/css/ttdms/bootstrapValidator.min.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../static/js/ttdms/jquery-form.js"></script>
    <script type="text/javascript" src="../static/js/ttdms/area.js"></script>
    <script type="text/javascript" src="../static/My97DatePicker/WdatePicker.js"></script>
    <script type="text/javascript">    
    function search(){    
        //var eDt = $("#db").datebox('getValue');//报表月份
//reportDt = reportDt.replace("-","");
        debugger
        var url = "<%= basePath%>ReportServer?reportlet=EmployeeLeaveWork.cpt";
        $('#jkll').attr('src',url);
    }     
</script> 
    </head>
<body  >
<div align="center" style = "height:50px;padding-top:20px">
    <input type="button" value=" 查 询 " onclick="search()">
</div>
<iframe id="jkll" name="if_report_name" width="100%" height="98%"  frameborder="0" scrolling="no" src=""></iframe>
</body>

</html>

控制层:


12.完成测试:


<think>嗯,用户问的是如何在FineReport使用参数绑定,需要教程、示例和用法。首先,我需要回忆一下FineReport的参数绑定相关知识。根据提供的引用内容,参数在FineReport中是通过数据集或者控件来设置的,可能涉及到参数的种类和如何添加到SQL查询中。 首先,引用[1]提到参数有不同的种类,需要根据实际情况添加。这可能包括模板参数、数据集参数等。用户可能需要知道如何定义这些参数,并在哪里设置。然后,引用[3]和[5]提到在数据集中使用SQL查询时,可以通过${}或者?来绑定参数。例如,在SQL语句中用${p1}来引用参数p1,或者在数据集中设置参数名称,然后关联到控件值。 接下来,用户可能需要步骤说明,比如如何创建参数,如何将参数绑定到控件,以及如何在SQL中使用。引用[5]还提到参数联动,可能需要涉及下拉参数之间的联动,比如选择省份后,城市下拉框根据省份参数的值动态加载数据。这时候需要设置参数的依赖关系。 另外,引用[4]提到填报暂存功能,可能和参数绑定在填报场景中的应用有关,但用户的问题主要是参数绑定,所以可能暂时不需要深入填报部分,但可以作为应用场景提及。 然后,示例部分可能需要一个具体的例子,比如通过参数查询销售数据。需要分步骤说明创建数据集参数,绑定到控件,然后预览效果。同时,要注意参数绑定的两种方式:${}和?,以及它们的区别,比如${}直接替换可能存在SQL注入风险,而?作为预编译更安全。 可能还需要提到参数联动,比如两个下拉框的联动,这需要第二个下拉框的数据集依赖第一个参数的值。这部分在引用[5]中有涉及,可能需要详细说明如何设置参数的过滤条件。 最后,注意事项部分需要强调参数命名规范,避免冲突,以及不同参数类型的使用场景。比如模板参数在整个模板有效,而数据集参数仅在该数据集有效。此外,安全方面,使用预编译参数来防止注入攻击。 用户可能遇到的常见问题包括参数不生效,这时候需要检查参数名是否正确,控件是否正确绑定,或者数据集是否重新加载。此外,参数联动失败可能是因为依赖关系未正确设置或者数据集未正确过滤。 总结下来,回答的结构应该是:参数定义、控件绑定、SQL绑定、示例演示、参数联动和注意事项。同时,相关问题的生成需要覆盖参数类型、动态参数、安全性和常见错误处理。</think>### FineReport参数绑定使用教程 #### 一、参数定义与类型 1. **参数种类** - **模板参数**:作用于整个模板,通过`参数面板`控件绑定[^1] - **数据集参数**:仅在特定SQL查询中生效,需与SQL语句配合使用[^3] - **全局参数**:跨模板使用(需结合服务器配置) 2. **创建参数** 在FineReport设计器中: - 右键模板 -> `模板参数` -> 新建参数`p1`,设置默认值[^5] - 数据集编辑界面 -> 点击`参数`按钮 -> 添加数据集参数 #### 二、参数绑定控件 1. **控件绑定参数** ```python # 示例:下拉框控件绑定参数p1 1. 拖拽"下拉框控件"到参数面板 2. 控件属性 -> 数据字典 -> 选择数据集ds1的"地区"字段 3. 控件名称设置为p1 ``` 2. **提交参数值** 使用`_g().writeReport()`接口提交参数值到后台[^2] #### 三、SQL参数绑定方法 1. **${}直接替换**(动态参数) ```sql SELECT * FROM sales WHERE region = '${p1}' ``` *注意:需手动添加单引号,存在SQL注入风险* 2. **?预编译参数**(安全推荐) ```sql SELECT * FROM sales WHERE region = ? ``` 在数据集参数设置界面关联参数`p1` #### 四、完整示例:销售数据查询 1. **创建模板参数** - 新建参数`product_type`(默认值:电子产品) 2. **配置数据集** ```sql SELECT * FROM product WHERE category = '${product_type}' AND sale_date BETWEEN '${start_date}' AND '${end_date}' ``` 3. **参数面板设置** ```python # 控件配置: - 日期控件:名称start_date/end_date - 下拉框:名称product_type,绑定品类数据字典 ``` 4. **预览效果** 参数变更后自动触发数据集刷新,展示过滤后的报表[^5] #### 五、参数联动实现 1. **二级联动示例** ```python 1. 省份参数p1绑定下拉框控件 2. 城市数据集SQL: SELECT city FROM locations WHERE province = '${p1}' 3. 城市参数p2的下拉框自动关联新数据集[^5] ``` #### 六、注意事项 1. 参数命名避免使用`fr_`开头(系统保留) 2. 日期参数需转换为`yyyy-MM-dd`格式 3. 使用`参数组合`功能实现多条件查询 4. 通过`参数默认值`设置初始化查询条件[^1]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值