FineReport开源报表系统-JS实现切换Tab块时进行数据联动

news2024/11/24 5:52:08

1. 概述

 1.1 预期效果

在决策报表中,希望 Tab 块轮播切换时,可实现与报表块的数据联动。如下图所示:

1.2 实现思路

通过 JS 获取每个 Tab 块的轮播标题,转换为参数值,再通过控件进行界面传参,实现联动效果。

2. 示例

 2.1 准备数据

点击设计器左上角「文件>新建决策报表」,新建数据库查询 ds1,输出 SQL 查询语句:SELECT * FROM 地图 。

2.2 设计模板

2.2.1 设置绝对布局

点击设计器顶部菜单栏「模板>PC端自适应属性」,设置报表布局方式为「绝对布局」,报表缩放设置为「双向自适应」。如下图所示:

2.2.2 设计 Tab 块

1)向决策报表 body 中拖入一个,并调整其大小和位置。如下图所示:

2)双击 Tab 块,点击 Tab 块右上角添加按钮,再添加两个 Tab 页。接着向每个 Tab 页中拖入一个地图图表。如下图所示:

3)分别设置地图:单击选中地图图表,在属性面板中取消勾选「标题可见」。

再双击图表进入编辑状态,将三个地图的边界分别设置为「江苏省、山东省、浙江省」,GIS图层均设置为「标准>幻影黑」。

如下图所示:

注:本文主要演示 Tab 切换时的联动,所以这里地图无需绑定数据。

4)选中 Tab 块整体,开启 Tab 块轮播,轮播间隔时间为 2 秒。再选中 Tab 块标题,将标题组件大小修改为 0 ,即可实现隐藏 Tab 块标题。如下图所示:

2.2.3 添加模板参数

为了实现联动,需添加一个模板参数。

点击「模板>模板参数」,新增一个参数并重命名为 area ,设置默认值为「江苏省」,对应第一个 Tab 页中的地图边界。

2.2.4 设计报表块

1)向 body 中拖入一个,并调整其大小和位置。如下图所示:

2)双击报表块进入编辑界面,将 pid 、销售额字段分别拖入 A1、A2 单元格,并设置其字体、大小、颜色等。

再选中 A2 单元格,设置销售额的「数据设置」为「汇总>求和」,左父格设置为「自定义> A1 」。

如下图所示:

3)双击 A1 单元格,设置过滤条件为 pid 等于参数 $area ,则会根据参数过滤显示数据。如下图所示:

4)点击表格左下角「表单」返回 body 界面,将报表块背景设置为与地图背景同样的颜色。如下图所示:

2.2.5 添加控件

为了配合 JS 和数据集传参实现联动,需添加一个控件。

1)向 body 中拖入一个,将控件名称设置为 area ,即可与参数 $area 绑定 。取消勾选「可见」,则预览时不会显示该控件。

如下图所示:

2)选中控件,设置其数据字典为 ds1 数据集的 pid 字段。如下图所示:

2.3 效果预览

2.3.1 PC 端

保存模板,点击「PC端预览」,效果如 1.1 节预期效果所示。

2.3.2 移动端

App 端及 HTML5 端效果如下图所示:

注:移动端不支持 Tab 轮播,需手动切换 Tab 。

 总结

帆软FineReport选中 Tab 块的标题面板 tabpane0 ,添加一个「Tab块切换」事件进行帆软报表分析与制作可视化图表制作输入 JavaScript 代码如下:

setTimeout(function() { 

//TAB切换后,获取到当前TAB块的标题索引

FR.IndexNum = _g().getWidgetByName("tabpane0").getShowIndex();

var a = 0;

a = FR.IndexNum;

if(a==0){

       x='江苏省';

       }

else if(a==1){

       x='山东省';

    }

else if(a==2){

       x='浙江省';

    }        

var cc = _g().getWidgetByName("area") //获取控件

cc.setValue(x);    //给控件赋值

}, 50);

显示代码

如下图所示:

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

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

相关文章

程序员工作五年后一般会怎样?

最近看到一些吐血言论“一个程序员工作5年后还没成为大牛,是不是该考虑别的路子了?”还有“程序员入行五年,有可能攒够80吗?”不是,程序员工作五年,是戳中了谁的痛点吗??大家对五年经…

128页4万字某智慧能源集团数字化管理平台项目建议书

【版权声明】本资料来源网络,仅用于行业知识分享,供个人学习参考,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间进行删除!完整资料领取见文末,部分资料内容: 方案设计 在当…

公司新来的软件测试工程师接私活被抓了,难怪他天天加班到凌晨

昨天和我一起进公司的测试部门同事上班接私活被老板抓了,这人才来不到两个月,每天加班到凌晨。刚开始还以为他是个卷王,没想到此人上班时间接单,用加班时间来完成公司需求,造成努力的假象。被老板在办公室骂了俩小时&a…

v$asm_disk中free_mb低于300m导致加盘报ora-15041

背景: 某项目扩容加盘到磁盘组中报磁盘组空间耗尽的错误,如下 明明是加盘,却报空间不足的错误,令人费解 报错的磁盘组为normal冗余,且Usable_file_MB为负,且Free_MB剩余很少或为0 问题排查: …

MS 训练笔记【2】:nnFormer

文章目录前言1. 安装2. 训练与测试2.1. 数据处理2.1.1. 整理数据路径2.1.2. 设置 nnFormer 读取文件的路径2.1.3. 数据集预处理2.2. 训练2.2.1. 训练代码2.2.2. 可能出现的问题及解决办法2.3. 预测总结前言 本文主要记载 nnFormer 从安装到训练再到推理的过程。nnFormer 的环境…

invokeBeanFactoryPostProcessors的理解

invokeBeanFactoryPostProcessors的理解 Spring中有两个非常重要的扩展点: BeanFactoryPostProcessorBeanPostProcessor 其中第一个是可以对BeanDefinition注册时进行扩展,而第二个是对spring中IOC容器中的对象进行实例化的时候进行扩展。 今天主要谈一…

【安全漏洞】水平权限漏洞和垂直权限漏洞

前言 权限校验非常重要。如果不对水平、垂直权限做校验,就会发生泄漏用户数据的事故,造成P0故障。 一、水平权限漏洞 1、水平权限漏洞基本概念 什么是水平权限漏洞呢? 简单来说,水平权限漏洞是用户CURD了本不属于他的资源。以上图…

复活天若OCR的谷歌翻译接口

文章目录1. 资源2. 效果3. 前言4. 网络相关4.1. 网络判断4.2. 网络设置5. 修改5.1. 代码修改原理5.2. 代码修改1. 资源 这里直接放出来我已经修改编译好的天若OCR,开箱即用:https://www.lanzoui.com/ifT8t0jfv1gd 访问码:24647 不过需要说明…

性能优化系列之如何为不同格式的图片选择合适的应用场景?

文章の目录一、JPEG(Joint Photographic Experts Group)1、介绍2、不适合情形3、非常适合的情形二、PNG(Portable Network Graphics)1、介绍2、不适合的情形3、非常适合的情形三、GIF(Graphics Interchange Format&…

【nowcoder】笔试强训Day9

目录 一、选择题 二、编程题 2.1另类加法 2.2走方格的方案数 一、选择题 1.下面程序的输出是:() String x"fmn"; x.toUpperCase(); String yx.replace(f,F); yy"wxy"; System.out.println(y); A FmNwxy B fmnwxy C wxyfmn D Fmnwxy String x “…

决胜「年货时代」:一场关于零食的品质突围

“都说冰糖葫芦儿酸,酸里面它裹着甜;都说冰糖葫芦儿甜,可甜里面它透着那酸。” 1995年春节,伴随着《冰糖葫芦》唱响大街小巷,小贩骑着自行车,后车座的草靶子上插满冰糖葫芦,或摆在集市上&#…

大数据系列——什么是hive?hive用来干什么的?hive常见问题是啥?

目录 一、什么是hive 二、为什么要使用Hive 三、Hive与Hadoop的关系 四、Hive与HDFS的关系 五、Hive与传统数据库区别 六、Hive中的数据存储是怎样的 七、对hive进行增删改查 八、排序逻辑 九、hive不支持update数据的解决方案 十、Hive中支持的分区类型有两种 十…

Linux部署前端Vue项目

Linux部署前端Vue项目 1 部署到tomcat上 1.1 部署Vue项目 打包项目 在命令行终端,输入命令,打包项目: npm run build将生成的dist文件夹下的所有内容复制到tomcat的webapps下 "推荐":在webapps下新建一个文件夹,例…

【互信息驱动:可逆神经网络】

Mutual Information-driven Pan-sharpening (互信息驱动的全色锐化) 全色锐化的目的是综合纹理丰富的全色图像和多光谱图像的互补信息,生成纹理丰富的多光谱图像。尽管已有的全色锐化方法取得了显著的进步,但它们并没有明确地加…

动态圣诞树-HTML

<!DOCTYPE HTML PUBLIC> <html> <head> <title>圣诞树</title> <meta charset"utf-8" > <style> html, body { width: 100%; height: 100%; margin: 0; padding: 0; border: 0; } div { margin: 0; padding: 0; border: 0…

docker高级篇:实战-自己开发的微服务怎么在docker上面运行?

通过前面的一系列学习,我们已经知道怎么制作dockerfile了。那么,本篇文章,咱们就把自己写的spring boot的demo项目,部署在docker上面。 案例目标: 我们自己开发的微服务怎么在docker上面运行呢? 1:通过IDEA新建一个普通的微服务模块 2:通过dockerfile发布微服务部署…

通过 api 和 keycloak 理解OIDC认证

参考资料 通过Keycloak API理解OAuth2与OpenID Connect 什么是keycloak如何在nodejs中使用它 如何通过 OIDC 协议实现单点登录&#xff1f; https://jwt.io/#encoded-jwt OIDC认证的简单demo 单点登录&#xff08;Single Sign On&#xff09;是目前比较流行的企业业务整合…

cut与分层抽样(Stratified Sampling)

个人觉得&#xff0c; 把分层抽样称为“分类采样”会更贴切一些。通常最基本的采样手段是&#xff1a;随机抽样&#xff0c;但是在很多场景下&#xff0c;随机抽样是有问题的&#xff0c;举一个简单的例子&#xff1a;如果现在要发起一个啤酒品牌知名度的调查问卷&#xff0c;我…

二、let进阶、const、全部变量与顶层对象

二、let进阶、const、全部变量与顶层对象 一、let进阶 let创建了块级作用域&#xff0c;每次循环时内部的块级作用域都会去访问外层块级作用域中的变量i&#xff0c;而外层块级作用域中的变量i都不同&#xff0c;所以打印0-9&#xff1b;类似于闭包&#xff1a;内部函数返回到…

MySQL【Primary key】主键约束

关键字: [ primary key ] 作用&#xff1a;用来唯一标识表中的一行记录 特点&#xff1a;1.唯一性约束非空约束 唯一且为空 唯一性约束&#xff1a;不允许出现重复值 非空约束&#xff1a;不允许出现空值&#xff0c;但不是 NULL 2.一个表最多只能有一个主键约束&#x…