智能表格软件-FineReport JS实现自定义按钮快速给参数赋指定范围值

news2024/11/19 19:44:54

 1. 概述

 1.1 预期效果

周报、月报、季报、年报中有参数查询时,每次都需要手动选择,比较繁琐,所以就需要一种快速筛选的方法,只需点击某个按钮,就能准确定位到合适的时间范围,如下图所示:

1.2 实现思路

通过在参数栏添加按钮,在按钮上添加 JavaScript「点击」 事件给指定参数赋值的方法来实现。

2. 示例

 2.1 示例一

2.1.1 设计报表样式

1)新建一个工作簿,添加「模板参数 」start_time和end_time ,如下图所示:

2)在 B1、B2 单元格分别插入公式:$start_time、$end_time,报表样式如下图所示:

2.1.2 添加日期控件

1)切换至参数面板,添加两个「标签控件」,控件值分别为:开始时间:、结束时间:,如下图所示:

2)添加两个「日期控件」,控件名称分别为:start_time、end_time,如下图所示:

2.1.3 添加按钮控件

1)添加一个「按钮控件」,按钮名称为本周,如下图所示:

2)为本周「按钮控件」添加「点击」事件,如下图所示:

JavaScript 代码如下:

//获取当前日期所在周的第一天

var K1='${=dateInWeek(TODAY(),1)}'; 

//获取当前日期所在周的最后一天  

var K2='${=dateInWeek(TODAY(),-1)}'; 

//获取控件(开始时间)

var state1= this.options.form.getWidgetByName("start_time");

//获取控件(结束时间)

var state2= this.options.form.getWidgetByName("end_time");

//给控件(开始时间)赋值

state1.setValue(K1);

//给控件(结束时间)赋值

state2.setValue(K2);

3)同上述方法添加本月「按钮控件」、本季「按钮控件」、本年「按钮控件」,并分别为其添加「点击」事件。

本月「按钮控件」JavaScript 代码如下:

//获取当前日期所在月份的第一天

var K1='${=DATEINMONTH(TODAY(),1)}';   

//获取当前日期所在月份的最后一天  

var K2='${=DATEINMONTH(TODAY(),-1)}'; 

//获取控件(开始时间)

var state1= this.options.form.getWidgetByName("start_time");

//获取控件(结束时间)

var state2= this.options.form.getWidgetByName("end_time");

//给控件(开始时间)赋值

state1.setValue(K1);

//给控件(结束时间)赋值

state2.setValue(K2);

本季「按钮控件」JavaScript 代码如下:

//获取当前日期所在季度的第一天 

var K1='${=dateINQUARTER(TODAY(),1)}'; 

//获取当前日期所在季度的最后一天 

var K2='${=dateINQUARTER(TODAY(),-1)}'; 

//获取控件(开始时间) 

var state1= this.options.form.getWidgetByName("start_time"); 

//获取控件(结束时间) 

var state2= this.options.form.getWidgetByName("end_time"); 

//给控件(开始时间)赋值 

state1.setValue(K1); 

//给控件(结束时间)赋值 

state2.setValue(K2);

本年「按钮控件」avaScript 代码如下:

//获取当前日期所在年份的第一天

var K1='${=DATEINYEAR(TODAY(),1)}';   

//获取当前日期所在年份的最后一天  

var K2='${=DATEINYEAR(TODAY(),-1)}'; 

//获取控件(开始时间)

var state1= this.options.form.getWidgetByName("start_time");

//获取控件(结束时间)

var state2= this.options.form.getWidgetByName("end_time");

//给控件(开始时间)赋值

state1.setValue(K1);

//给控件(结束时间)赋值

state2.setValue(K2);

4)最后添加一个「查询」按钮,最终参数面板样式如下图所示:

2.1.4 预览效果

1)PC 端

保存模板,点击「分页预览」,根据系统时间获取周报、月报、季报、年报范围值,如下图所示:

2)移动端

App 及 HTML5 效果如下图所示:

2.2 示例二

2.2.1 添加日期控件

1)新建模板,在参数面板增加三个「日期控件」,控件名分别为:RQ、B_TIME、E_TIME,如下图所示:

2)将日期控件 RQ 的返回类型设置成:字符串,格式设为:yyyy-MM-dd。如下图所示:

2.2.2 添加按钮控件

1)添加 4 个「按钮控件」,并分别为其添加「点击」事件,如下图所示:

周报「按钮控件」JavaScript 代码如下:

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

//获取到 RQ 控件值,并赋值给参数 RQ

var RQ=this.options.form.getWidgetByName("RQ").getValue();

//获取参数 RQ 所在周的第一天,并赋值给参数s

var s=FR.remoteEvaluate('FORMAT(DATEINWEEK("'+RQ+'",1),"yyyy-MM-dd")');

//获取参数 RQ 所在周的最后一天,并赋值给参数e

var e=FR.remoteEvaluate('FORMAT(DATEINWEEK("'+RQ+'",-1),"yyyy-MM-dd")');

//给控件 B_TIME 赋值

this.options.form.getWidgetByName("B_TIME").setValue(s);

//给控件 E_TIME 赋值

this.options.form.getWidgetByName("E_TIME").setValue(e);

月报「按钮控件」JavaScript 代码如下:

var RQ=this.options.form.getWidgetByName("RQ").getValue();

var s=FR.remoteEvaluate('FORMAT(DATEINMONTH("'+RQ+'",1),"yyyy-MM-dd")');

var e=FR.remoteEvaluate('FORMAT(DATEINMONTH("'+RQ+'",-1),"yyyy-MM-dd")');

this.options.form.getWidgetByName("B_TIME").setValue(s);

this.options.form.getWidgetByName("E_TIME").setValue(e);

季报「按钮控件」JavaScript代码如下:

var RQ=this.options.form.getWidgetByName("RQ").getValue();  

var s=FR.remoteEvaluate('FORMAT(DATEINQUARTER("'+RQ+'",1),"yyyy-MM-dd")');  

var e=FR.remoteEvaluate('FORMAT(DATEINQUARTER("'+RQ+'",-1),"yyyy-MM-dd")');  

this.options.form.getWidgetByName("B_TIME").setValue(s);  

this.options.form.getWidgetByName("E_TIME").setValue(e);

年报「按钮控件」JavaScript 代码如下:

var RQ=this.options.form.getWidgetByName("RQ").getValue();

var s=FR.remoteEvaluate('FORMAT(DATEINYEAR("'+RQ+'",1),"yyyy-MM-dd")');

var e=FR.remoteEvaluate('FORMAT(DATEINYEAR("'+RQ+'",-1),"yyyy-MM-dd")');

this.options.form.getWidgetByName("B_TIME").setValue(s);

this.options.form.getWidgetByName("E_TIME").setValue(e);

2)添加一个「查询按钮」,最终参数面板样式如下图所示:

2.2.3 预览效果

1)PC 端

保存模板,点击「分页预览」,根据系统时间获取周报、月报、季报、年报范围值,如下图所示:

2)移动端

App 及 HTML5 效果如下图所示:

总结

帆软FineReport周报、月报、季报、年报中有帆软报表软件参数查询时,报表设计与制作每次都需要手动选择,比较繁琐,所以就需要一种快速筛选的方法,只需点击某个按钮,就能准确定位到合适的时间范围。

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

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

相关文章

JMeter+Ant+Jenkins接口自动化测试框架

一:简介 大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件;Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具。将这三者结合起来可以搭…

Hive+Spark离线数仓工业项目实战--环境构建(3)

项目环境配置 根据需求实现项目环境配置 实施 - 注意:所有软件Docker、Hadoop、Hive、Spark、Sqoop都已经装好,不需要额外安装配置,启动即可 配置网络:如果你的VM Nat网络不是88网段,请按照以下修改 - 修改Linux虚拟…

数据改版 | CnOpenData中国工业企业基本信息扩展数据

CnOpenData中国工业企业基本信息扩展数据 一、数据简介 拉动中国经济的三个产业中,工业企业占有特殊的地位,是推动国内经济发展的重要产业。工业是最主要的物质生产部门,为居民生活、各行业的经济活动提供物质产品,这一重要作用是…

vm虚拟机安装VMware Tools弹出‘安装程序无法自动安装

问题出现原因 这个问题是由于微软从2019年12月3日已将Windows驱动程序签名更改为使用SHA-2算法, 不支持SHA-2代码签名的旧版Windows系统将无法通过驱动程序签名验证。 也就是说你的win7或者Windows Server 2008 系统中缺少使用新算法的签名,原来的SHA-…

数据库如何加密连接

文章目录1. 前言2. 如何加密?3. 使用Druid实现加密4. 生成密文5. 添加加密配置6. 隐藏问题7. 开发环境替换公钥8. 生产环境替换公钥9. 运行原理10. 总结1. 前言 现在无论是公司的项目还是个人的项目,都会选择将源码托管在Git服务器(Gitee&am…

熬不过“冬天”,又一跨境电商平台关停

熬不过“冬天”!又一跨境电商平台关停据相关媒体报道,京东旗下跨境电商服务平台Joybuy于2022年11月4日宣布将进行“业务升级”,而后该平台的所有交易活动已经停止。据Egain News报道,“业务升级”的说法很大可能只是关停的一种“委…

【JavaEE】Cookie 和 Session

努力经营当下,直至未来明朗! 文章目录【Cookie和Session】相关方法1. HttpServletRequest类的相关方法2. HttpServletRespon类的相关方法3. HttpSession类中相关的方法:4. Cookie类中相关的方法:写一个模拟登录的案例上传文件Serv…

开源工具系列1:Cloud Custodian

对云安全的检测中,最重要的一个组成部分就是对配置的验证,今天来介绍一个开源的规则检测引擎项目,Cloud Custodian。 一、Cloud Custodian 是什么 Cloud Custodian 是用于管理公有云帐户和资源的规则引擎。规则策略用简单的 YAML 格式&#x…

【TypeScript】class类型讲解

目录 class类型 构造函数 class类的继承 可见修饰符 只读修饰符 class类型 TypeScript支持ES引入的class关键字,并为其添加了类型注解和其他语法(例如:可见性修饰符)。 class person {// 声明初始值,可省略类型注解(TS类型推论为strin…

艾美捷超氧化物歧化酶检测试剂盒,活性检测说明

细胞和细胞外环境中大量的超氧化物歧化酶(SOD)对于预防与氧化应激相关的疾病至关重要。SOD突变约占家族性肌萎缩侧索硬化症(ALS)病例的20%。SOD在预防其他神经退行性疾病(如阿尔茨海默氏症、帕金森氏症和亨廷顿舞蹈症&…

美丽田园ipo上市,它的底气从何而来?

美丽田园医疗健康产业有限公司(简称美丽田园),中国最大的传统美容服务提供商,成立近三十年来,一直致力于美与健康的发展,坚持系统化标准化管理和美与健康一站式服务,为顾客提供舒适的美与健康新体验。近日,…

Matter理论介绍-通用-1-04:桥接器-其他功能

【源码、文档、软件、硬件、技术交流、技术支持,入口见文末】 【所有相关IDE、SDK和例程源码均可从群文件免费获取,免安装,解压即用】 持续更新中,欢迎关注! 一、桥接器的配置流程 我们已经知道,桥接器和…

【QT】PySide6安装与运用

一、什么是PyQt 简单来说,PyQt就是用Python重构的Qt,一个强大的,创建跨平台GUI(Graphical User Interface)的工具包。开发者为Phil Thompson。 二、PySide与PyQt PyQt和PySide都是基于Python语言对Qt的实现,PyQt的推出时间要比…

paddle nlp taskflow 全家桶 包括代码生成与AIGC图片生成 一起探索paddle nlp 开包即用的能力吧

paddle nlp作为自然语言处理领域的全家桶,具有很多的不错的开箱即用的nlp能力。今天我们来一起看看基于paddle nlp中taskflow开箱即用的能力有哪些。 第一步先升级aistudio中的paddlenlp 保持最新版本。 pip install -U paddlenlpLooking in indexes: https://pypi…

ERP外网访问,快解析助力企业远程办公

ERP系统是现代信息技术和先进管理经验的有效结合,实现对企业经营活动的自动、完整的记录,替代重复劳动,对企业人力资源、物流、资金流、票据流和信息流等的科学管理,实现业务管理数据和财务数据高度统一,实现对企业业务…

论文导读 | 正则路径查询

前言 正则路径查询(Regular Path Query, RPQ)为带标签的图数据上重要的查询类型之一,旨在找出由至少一条满足条件的路径相连接的结点对,其中需满足的条件以正则表达式表达。当前对 RPQ 的研究以提升查询效率为目的,主…

php项目管理系统 。集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体,是一款专业的研发项目管理软件

介绍 一款国产的项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整地覆盖了项目管理的核心流程。 管理思想注重实效,功能完备丰富,操作简洁高效&#x…

【Python】基础知识(列表,元组)

目录列表和元组列表创建列表访问下标切片操作遍历列表元素新增元素查找元素删除元素连接列表元组写在前面🍎:码字不易,如果对你有帮助的话,给个三连或者关注一下吧🍰,感谢支持!📣列表…

操作手册(GB8567——88)基于协同的在线表格forture-sheet

操作手册(GB8567——88) 1引言 1.1编写目的 为了帮助用户更好的上手本系统,加快用户对forture-sheet在线表格的快速入门,本操作手册详细介绍使用forture-sheet的部分基础操作以及注意细节。 1.2前景 待开发系统的名称&#x…

Docker+Jenkins+Gitee+Maven构建后台jar包后通过命令备份、替换、重启docker-compose编排的java服务

场景 docker-compose入门以及部署SpringBootVueRedisMysql(前后端分离项目)以若依前后端分离版为例: docker-compose入门以及部署SpringBootVueRedisMysql(前后端分离项目)以若依前后端分离版为例_霸道流氓气质的博客-CSDN博客 在上面使用docker-compose编排的ja…