将当前页数据入库

编辑
  • 文档创建者:文档助手1
  • 浏览次数:2868次
  • 编辑次数:10次
  • 最近更新:Leo.Tsai 于 2019-07-18
  • 1. 描述

    模板有多个页面,如一系列的帐簿模板。如果每次只打印部分页面(可能是一张,可能是多张,不一定从第一页开始),每次打印后希望触发事件,在数据库中对应位置记录本页面帐簿已经打印过了。每个页面在固定位置有本帐簿的编号,对应到数据库中有一个是否已经打印的记录字段。例如只打印第三页时,希望将数据库中编号 3457 的帐簿所对应的 toprint 字段值改为 true。如下图所示效果:


    2. 思路

    可通过报表>报表 Web 属性>分页预览设置>添加打印后事件,添加 JavaScript 调用一个 JSP 的打印后执行事件。若点击打印,就会获取当前页编号,进而通过 update 语句修改 toprint 字段的值。

    3. 示例

    以 Tomcat 服务器下 webroot 工程为例,其具体操作如下:

    3.1 模板添加打印后事件

    打开设计器,切换 Tomcat 报表工作目录,在菜单栏中点击报表>报表 Web 属性>分页预览设置,于右边栏点击添加 Flash 打印后事件的 JavaScript 代码,其作用在于调用webroot 工程下的 JSP 文件,进而执行数据入库操作。

    3.2 获取所在页单元格的值

    如编号 ID 在 J3 单元格,即第三行、第十列,则 JS 方法如下:

    var a = $("#r-2-0","div.reportPane").children().eq(9)[0].innerHTML;

    注1:$("#r-2-0","div.reportPane") 这个是获取模板当前页第三行,第一行为:"#r-0-0",行号从 0 开始; 

    注2:eq(9)[0] 是获取第 10 列,第一列为 eq(0)[0],列号从 0 开始。 

    注3:如果是扩展单元格,则要根据扩展以后所在的行和列来获取。

    3.3 通过 Ajax 传值到 JSP 页面

    完整代码如下:

    var a = $("#r-2-0","div.reportPane").children().eq(9)[0].innerHTML;
    $.ajax({
    url : 'http://localhost:8080/webroot/print1.jsp?ID='+a
    })

    3.4 定义 JSP 获取编号修改数据库表

    定义页面 print1.jsp,首先获取编号 ID 的值,连接数据库通过 update 语句把表中 toprint 字段进行修改,代码如下:

    <%@ page language="java" import="java.sql.*" pageEncoding="gb2312" %>
    <html>
    <head>
    </head>
    <body>
    <%
        Connection conn = null;
        PreparedStatement ps = null;
        try {
             //连接数据库
             Class.forName("com.mysql.jdbc.Driver");
             System.out.println("创建数据库驱动成功!");
             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/frtest", "root", "******");
             System.out.println("数据库连接成功!");
             String sql = "insert into printtest(toprint) values(?)";
             
             ps = conn.prepareStatement(sql);
             String id = request.getParameter("ID");
             ps.setString(1, id);
             ps.executeUpdate();
        } catch (Exception e) {
        }
    %>
    </body>
    </html>

    将 print1.jsp 文件放到 Tomcat 服务器的 webroot工程下。

    3.5 效果预览

    启动 Web 服务器,预览报表,点击 Flash 打印,打印完之后查看数据库的记录信息表 print1,可看到当前页的编号对应的 toprint 字段值变成 true 了。

    附件列表


    主题: 报表应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]