FineReport报表工具制作图表-JS实现下拉框选择后复选框默认全选

news2024/11/19 12:37:25

1. 概述

 1.1 预期效果

参数联动查询时,希望下拉框选择后,复选框可以跟着选中全部所有参数值,效果如下图所示:

1.2 实现思路

参数联动查询时,希望下拉框选择后,复选框可以跟着选中全部所有参数值给下拉框添加编辑后事件,使用 JS 调用 SQL 内置公式,然后将值转义成复选框所需格式。

2. 示例

 2.1 准备数据

1)新建数据查询数据集 ds1,SQL 语句为:SELECT * FROM 地图 where pid='${A}' and 省份 in ('${B}')

注:该数据集用于绑定单元格数据,其中 pid 字段是省份名称,省份字段是城市名称。

2)新建数据查询数据集 ds2,SQL 语句为:SELECT 省份 FROM 地图 where pid='${A}'

注:该数据集用于绑定下拉复选框控件数据字典。

2.2 设计表格

将数据集 ds1 中的对应字段拖入到单元格中,表格样式如下图所示:

2.3 设置控件

1)进入参数面板编辑界面,将 2 个数据集参数 A 和 B 添加到参数面板,A 参数控件选择下拉框控件,B 参数选择下拉复选框控件,如下图所示:

2)选中下拉框控件,绑定控件数据字典,如下图所示:

3)选中下拉复选框控件,绑定控件数据字典,将控件返回值类型设置为字符串,分隔符为',',如下图所示:

2.4 添加事件

选中下拉框控件,给控件添加一个编辑后事件,如下图所示:

JavaScript 代码如下:

注:使用 FR.remoteEvaluate 接口存在一定安全风险,用户可根据实际情况使用。

var a=this.getValue();//获取当前下拉框选中值

var b=_g().getParameterContainer().getWidgetByName("B");//获取复选框控件

var c=FR.remoteEvaluate('=sql("FRDemo","SELECT distinct 省份 from 地图 where pid=\''+a+'\'",1)');

//JS调用SQL函数,查询获取过滤后的省份信息 

var e=c.toString().replace(/,/g,'\',\'')//将值转为字符串,同时转换成复选框所用格式

setTimeout( function(){

       b.setValue(e);

}, 300 ); //延时300毫秒将值赋给复选框

2.5 效果预览

1) PC 端

保存报表,点击分页预览,效果如下图所示:

2)移动端

同时支持 App 端和 H5 端预览,效果如下图所示:

3. 模板下载

已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\MultiValue\下拉框选择后复选框默认全选.cpt

4. 注意事项

下拉框选择参数值后,可能会报错:此调用存在安全风险,如需使用请在安全管理中修改脚本调用公式限制,如下图所示:

此时只需要登录决策系统,关闭管理系统>安全管理>安全防护下的脚本调用公式限制即可。

 总结

帆软FineReport参数联动查询时,希望 帆软报表软件 下拉框选择后,数据查询与过滤复选框可以跟着选中全部所有参数值给下拉框添加编辑后事件,使用 JS 调用 SQL 内置公式,然后将值转义成复选框所需格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

六、http模块

HTTP —— 超文本传输协议,用于规范客户端浏览器和服务端以何种格式进行通信和数据交互;HTTP由请求和响应构成的,是一个标准的客服端服务器模型。 HTTP请求响应过程 先简单的来了解以下HTTP的请求响应过程:1.地址解析&#xff1a…

深度学习实验(四)——卷积神经网络编程

深度学习实验四:卷积神经网络编程 本次实验练习使用torch.nn中的类设计一个卷积神经网络进行MNIST手写体数字图像分类。 name x#填写你的姓名 sid B02014152#填写你的学号print(姓名:%s, 学号:%s%(name, sid))姓名:x, 学号:B02014152import torch import torch.nn as nn im…

完全背包问题(超级详细地讲解优化过程)

完全背包问题一、问题描述二、思路分析1、状态转移方程2、循环设计三、代码模板1、朴素版2、优化版(1)时间优化(2)空间优化一、问题描述 二、思路分析 完全背包和01背包的区别就在于01背包中,每个物品只能选择一次&am…

Java架构师大厂面试致命十连问,你接得住吗?

1.什么是缓存雪崩?怎么解决? ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 通常,我们会使用缓存用于缓冲对 DB 的冲击,如果缓存宕机,所有请求将直接打在 DB,造…

故事分享|27岁的Leader:要成为别人的灯塔,自己得先会“发光”

学习编程的年龄跨度很大,有还在读小学的10后小朋友,也有子孙满堂的八十岁老太太,但主力军,当属90后。 很多年前,90后还是许多人口中“垮掉的一代”。 许多年过去了,当90后逐渐摘掉不成熟的标签&#xff0…

ssh前置代理

ssh前置代理ssh前置代理Linux和mac配置ssh前置proxyUbuntu和mac的ncCentos的ncWindows的ssh前置proxyssh前置代理 适用于服务器无法直接连接过去,需要用proxy才可以连接的场景. Linux和mac配置ssh前置proxy nc属命令属于nmap-ncat包 Centos的nmap-ncat版本太低了,需要到https:…

学习笔记 - MapStruct 映射工具

学习笔记 - MapStruct 映射工具简介Maven 依赖实体类 Entity数据传输对象 DTO映射接口测试类IDEA 插件与 Lombok 一起使用参考资料简介 MapStruct是一个代码生成器,它基于约定优于配置的方法,极大地简化了Java bean类型之间映射的实现。 生成的映射代码使…

第8章 关系数据库设计

第8章 关系数据库设计 考试范围: 8.1-8.5,8.8,8.9 考试题型: 模式分解 考试内容: INF概念 非规范化设计的问题:数据冗余,插入/删除/更新异常 函数依赖的概念 平凡函数依赖 函数依赖集 最小(正则)覆…

数据结构和算法学习笔记之 03.单向双向链表和环形链表构建

5.单向链表 把一个节点Node当做是一个对象,改对象里面包含了数据和指向下一个节点的引用指针 5.1 链表的添加和遍历 5.1.1 思路分析 添加 创建一个head头节点表示链表的头节点,里面的存放数据的data null每添加一个元素就直接添加到链表的最后(尾插法…

Practise test day9

另类加法_牛客网 解题思路:位运算符 1 0001 2 0010 按位与&:如果两个二进制位都为1,则返回1,否则返回0 按位异或:两个二进制位相同返回0,不同返回1。 1.二进制位异或的结果,是两个数对应相加…

https-OPenSSL证书生成及自签名证书

目录 SSL/TLS 1、搭建OPenssl服务器 1.1、下载 1.2、安装下载好的exe程序 2、服务器端证书-生成key、CSR、CRT 2.1、进入如下目录,执行cmd 2.2、生成一个私钥key 2.3、由生成的私钥key生成一个待签名的CSR证书文件(公钥) 2.4、查看证书内容 3、自建CA证书 3.1…

跨境电商卖家如何创建客户参与的 Facebook 广告?

关键词:跨境电商卖家、客户参与、Facebook广告 想要从您的 Facebook 广告中获得更多潜在客户或转化?正在寻找为您自己的广告建模的成功秘诀? 在本文中,您将了解创建消费者响应的 Facebook 广告的八个技巧。 将您现有的 Facebook 受…

零基础能否转行做程序员,那些半路出家的程序员大神给你做了榜样

这些年,随着中国互联网产业的高速发展,对程序员这个职业的需求越来越大。而相对较高的薪水、简单的人际关系、入行不需要靠拼爹这些优点,也让越来越多的年轻人选择了这个职业。甚至很多本来已经从事了其他行业的年轻人,也都想转行…

Promise(三) promise自定义封装25-35

1.初始结构搭建 2.resolve和reject结构搭建 3.throw抛出异常改变状态 4.promise对象状态只能修改一次 5.then方法执行回调 6.指定多个回调的实现 7.同步修改状态then方法结果返回 8.异步修改状态then方法结果返回 9.then方法完善与优化 10.catch方法——异常穿透与值管…

网络技术基础复习——计算机网络基本概念七层模型

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 本章将会复习网络技术的一些知识,了解网络基础概念&#x…

如何学习python?python该怎么学?如何高效率学习python?分享python的学习资料和网站

如何学习python? 1、学好python的第一步,就是马上到网站上下载一个python版本。我建议初学者,不要下载具有IDE功能的集成开发环境,比如Eclipse插件等。 2、下载完毕后,就可以开始学习了。学习过程中,我建议…

商业报表工具-FineReport JS 实现动态隐藏参数以及控制参数面板高度

1. 概述 1.1 版本 报表服务器版本 功能变更 11.0 -- 1.2 预期效果 开发报表的时,经常会遇到使用的参数控件较多的情况,这时候可以对一些不常用、不需要展现出来的的控件进行隐藏,当需要展示的时候再使其展示出来,如下图所示&…

数字化信道

数字化信道 数字化信道主要包括多相滤波和DFT两个模块。 多相滤波 多相滤波,就是将滤波器系数按照相数进行重排。在D倍抽取后,整个频带的频谱将混叠在0频附近[−Fs2D,Fs2D)[-\frac{F_s}{2D} ,\frac{F_s}{2D})[−2DFs​​,2DFs​​)。因此,…

超标量处理器设计——第四章_分支预测

超标量处理器设计——第四章_分支预测 参考《超标量处理器》姚永斌著 4.1 简述 分支预测主要与预测两个内容, 一个是分支方向, 还有一个是跳转的目标地址首先需要识别出取出的指令是否是分支指令, 如果是需要送入方向和地址预测模块: 分支预测最好的时机就是当前周期取到指令地…

【C++】拷贝构造函数

目录 默认拷贝构造函数 拷贝构造函数的原型: 为什么不用值传递? 为什么不用指针传递? 调用拷贝构造函数的3种情况 (旧对象去构造新对象) 我们熟悉的类型有以下操作: 1.声明:int a; 2.声明并初始化:in…