1. 填报全选

1) 需要在全选复选框设置中设置状态改变事件:

状态改变事件js代码:

var flag=this.getValue();               //获取当前复选框控件的状态,true /false
for(var i=0;i<window.lineboxes.length;i++){            //循环遍历每个复选控件
var cr=FR.cellStr2ColumnRow(window.lineboxes[i].options.location);//由每个控件位置获取行号列号
_g().setCellValue(cr.col, cr.row, flag);
if(flag){
_g().setCellValue(cr.col+1, cr.row, 1)
}
if(!flag){
_g().setCellValue(cr.col+1, cr.row, 0)
}
//逐一赋值当前状态
}

2) 为保证报表及字体风格一致性,需要设置复选框的文本颜色为白色,此处需要设置初始化后事件:

初始化事件js代码:

$('.fr-checkbox-checkoff').css('color','white');

3) 需要设置明细复选框的初始化事件及状态改变事件:

初始化事件js代码:

if (!window.lineboxes) {  window.lineboxes = [];        //控件加入到一个全局数组里
}
lineboxes[lineboxes.length] = this;

状态改变事件js代码1:

//当前复选框未选择时,设置全选不选中
if(this.getValue()==false){
_g().setCellValue('A2',null,false);
} else {
var allChecked=true;
//循环判断所有复选框都选中时,将全选复选框选中
for(var i=1;i<lineboxes.length;i++){
if(lineboxes[i].getValue()==false){
allChecked=false;
}
}
//如果全选中时,自动让A1全选复选框选中
_g().setCellValue('A2',null,allChecked);
}

状态改变事件js代码2:

var location = this.options.location;  //获取当前控件的位置
var cr = FR.cellStr2ColumnRow(location);
var col = cr.col;  //列号
var ro = cr.row;  //行号
var zybck = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col, row: ro}));
//根据单元格获取控件
//alert(zybck.getValue());  //获取对应的值
if(zybck.getValue()){
contentPane.setCellValue(FR.columnRow2CellStr({col: col+1, row: ro}),null,1)}
if(!zybck.getValue())
{
contentPane.setCellValue(FR.columnRow2CellStr({col: col+1, row: ro}),null,0)}

2. 批量打印

1) 概述

为实现批量打印,需要使用js调用FR打印的接口:

JAR 包时间在 2018-04-09 之前的设计器,有两种办法实现 Flash、PDF 两种客户端打印:doURLFlashPrint、doURLPDFPrint;

JAR 包时间在 2018-04-09 及之后的设计器,有一种办法实现新客户端打印:doURLPrint;

2) 接口说明

JS 打印接口:FR.doURLPrint(config),使用 get 传参,具体 config 参数如下表所示:

参数 含义
printurl 需要打印的模板的应用地址和服务,如"http://localhost:8075/webroot/decision/view/report"

允许为空。如果为空的话,就使用当前的 servlet 地址。如果需要跨域,则此参数不能为空。

isPopUp

是否弹出设置窗口

true:弹出

false:不弹出

data 为需要打印的模板列表及其参数,如"[{reportlet: '1.cpt', p1: 'a'}, {reportlet: '1.cpt', p1: 'b'}]"
printType

打印类型

0:零客户端打印

1:本地打印

3) 批量打印点击事件js代码:

var printurl="http://192.168.0.5:8090/webroot/decision/view/report";
var run_ids = [];
var paths = [];
var singlepaths = [];
var $span = $('.fr-checkbox-checkon');
var $tds = $("td").has($span);
var $trs = $("tr").has($tds);
var p=[];
if($trs.length==0){alert('勾选项不可全为空!');//未选中时不可打印
}
else
{
for(var i=0; i<$trs.length;i++){   var run_id = $("td:eq(2)",$($trs[i])).html();var flow_id = $("td:eq(3)",$($trs[i])).html();if(flow_id=='152'){var cptpath ="oa/oa_print.cpt";}if(flow_id=='157'){var cptpath ="oa/oa_print2.cpt";  }if(flow_id=='159'){var cptpath ="oa/oa_print3.cpt"; }var urlstring = "{reportlet:" + "'" + FR.cjkEncode(cptpath) + "'" + ",runID:" + "'" + run_id +"'}"; debugger;paths.push(urlstring);debugger;
}
if(paths.length>0){var rpaths=paths.join(","); var reportlets="["+rpaths+"]";  var config = {printUrl : printurl,printType : 0, isPopUp : false,data : {reportlets:reportlets}};
}
debugger;
FR.doURLPrint(config);
}

说明:因为在本次打印需要根据流程不同调用不同的打印模板,所以for循环中添加if判断;

3. 模板下载

https://download.csdn.net/download/tao_yf1989/13070720

[FineReport帆软]填报全选及批量打印相关推荐

  1. 帆软填报--行式填报报表

    帆软填报 准备 下载帆软设计器,自己注册账号,获取激活码 定义数据连接,分为测试库和生产库两个 配置帆软填报MySQL库测试环境 测试 帆软库建表 登录测试开发工作目录 为模板指定数据集 为模板添加数 ...

  2. android 批量查找view,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能

    效果图如下: recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...

  3. android 全选功能,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能

    效果图如下: Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...

  4. FineReport帆软报错:很抱歉,数据集行数过多触发保护机制,请减少查询数据量。若您是管理员,可于智能运维-内存管理-模板限制中更改此项限制。

    使用帆软时候,数据集记录数过多时候,FineReport帆软报错,如下: 很抱歉,数据集行数过多触发保护机制,请减少查询数据量.若您是管理员,可于智能运维-内存管理-模板限制中更改此项限制. 如下图所 ...

  5. android 获取通讯录全选反选_Android Recyclerview实现多选,单选,全选,反选,批量删除的功能...

    效果图如下: Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...

  6. 业务场景9(帆软填报公式比较日期大小)DATEDIF

    帆软填报计算在岗年资,比较日期格式大小,计算日期间隔,获取当前月份最后一天 MAX(DATEDIF(DATE1,DATE3,"D")/30,DATEDIF(DATE2,DATE3, ...

  7. 帆软填报报表实现日期自动生成总结

    帆软填报报表实现日期自动生成总结 文章目录 帆软填报报表实现日期自动生成总结 业务需求 思考过程 使用sysdate 使用触发器 V1 版本 创建时间设置 更新时间设置 填报报表设置 小bug修复 V ...

  8. FineReport帆软测试题1

    理论题 1.预览方式是指查看模板时以哪种方式查看,在表单设计后有哪些预览方式?以及他们的主要功能是?(查阅帮助文档) FineReport 中总共有6中不同的预览模式:分页预览.填报预览.新填报预览. ...

  9. finereport 帆软学习笔记--已解决的问题

    finereport 版本:8.0 系统环境:win 10 一.权限控制 需求:不同用户显示不同内容的报表. 解决方案: 在嵌套iframe的页面里,给src路径属性后面加上用户信息参数,例如:?us ...

最新文章

  1. 使用 SqlHelperParameterCache 类管理参数
  2. C:\WINDOWS\WinSxS目录介绍,来自百度词条
  3. 【Python基础】Github标星4.7k,每天推送一个python小实例的Python库
  4. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑
  5. 短信验证码“最佳实践”
  6. IDEA mybatis-generator-maven-plugin 插件的使用
  7. 利用matlab点云工具处理点云
  8. [转载]ArcGIS SERVER 9.3如何清除REST缓存
  9. 电影《你好,李焕英》进入全球票房榜前100
  10. Python+Pandas 读取Oracle数据库
  11. JSP中—request.getRequestDispatcher(“login_success.jsp“).forward(request,response)
  12. [转]GDI+ 中发生一般性错误解决方案
  13. 如何运行网上下载的matlab代码?怎样找到matlab主程序?
  14. 信道检测手机软件 ios_【对讲机的那点事】宝峰UV5R对讲机上中继台的信道存储设置方法...
  15. 我的开源GIS解决方案之路
  16. 携职教育:中级职称《系统集成项目管理师》巨大作用!
  17. SPSS实现数据归一化
  18. 磁共振线圈分类_磁共振线圈的发展历程
  19. LOJ#6198. 谢特 SAM+启发式合并+01trie
  20. GC问题排查实战三-Parallel Scavenge和Parallel Old日志分析

热门文章

  1. 港股Level2实时行情api接口包括哪些类型?
  2. 拼图-宫格的隐私政策
  3. 【日志系统】Loki日志监控 - 入门初体验
  4. Java自动定时关机程序
  5. 为网络加速 LOTWARE广域网加速解决方案
  6. java多域名共享session_同一服务器不同域名session共享
  7. jlink ob最新固件提取
  8. FusionCharts Suite XT 3.17.0 Crack
  9. currenthashmap扩容原理_ConcurrentHashMap之扩容实现(基于JDK1.8)
  10. android 主屏幕,从Android上的主屏幕快速切换设置 | MOS86