已经投票
专题介绍 >> 打印 >> 将当前页数据入库

将当前页数据入库

顶( )
最后更新日期: 人发表评论 (点击查看)
打印事件、打印后事件、打印后在数据库中标记
1. 问题描述
模板多张页面,如一系列的帐簿的模板。每次只打印部分页面(可能是一张,可能是多张,不一定从第一页开始),每次打印后希望触发事件,在数据库中对应位置记录本页面对应的帐簿已经打印过了。每张页面在固定位置有本张帐簿的编号,对应到数据库中有一个记录是否已经打印的记录字段,如只打印第三页时,希望在数据库中编号3457的帐簿所对应的toprint字段值改为true。如下图效果:
2. 实现思路
FineReport6.5中,可通过报表>报表Web属性>分页预览设置>添加打印后事件,使用JavaScript调用一个jsp的执行事件。若点击打印,就会将当前页的编号获取到,进而通过update语句修改toprint字段的值。
3. 示例
以已部署过FineReport的WebReport工程到tomcat服务器为例,其详细过程如下:
3.1 对模板添加打印后事件
打开设计器,打开其tomcat报表工作目录,在菜单中点击报表>报表Web属性>分页预览设置,在右边栏中,如点击添加Flash打印后事件。
在其JavaScript中,输入js代码,目的是调用其WebReport工程下写的一个jsp的执行入库操作。
3.2 获取所在页单元格的值
如编号ID在J3单元格,即第三行、第十列,则js方法如下:
注释:$("#r-2-0","div.reportPane") 这个是获取模板当前页第三行,第一行为:"#r-0-0",行号从0开始;
注释:eq(9)[0] 是获取第9列,第一列为eq(0)[0],列号从0开始。
注:如果是扩展单元格,则要根据扩展以后所在的行与列来获取。
3.3 通过Ajax把值传到jsp页面
完整代码如下:
3.4 定义jsp获取编号修改数据库表
定义页面print1.jsp,首先获取编号ID的值,连接数据库通过update语句把表中toprint字段进行修改,代码如下:
将其print1.jsp文件放到tomcat服务器的WebReport工程下。
3.5 效果预览
启动Web服务器,预览报表,点击Flash打印,打印完之后查看数据库的记录信息表print1,可看到当前页的编号对应的toprint字段值变成true了。
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
返回顶部
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3