FineReport中如何用JavaScript解决控件值刷新不及时

news/2025/2/12 17:54:44

我们经常利用按钮进行一些页面值的处理工作,但是默认的逻辑造成,每次新填报的值,需要点击下空白区域或是执行某个其他操作才可以被正确读取,那么我们如何处理呢?

例:当我们用常规取值的时候,虽然B3单元格录入了值,但是在光标不离开B3的前提下,用JS只获取到了控制而不是实际的值“2”。

想获得B3的值,需要在空白处点击下鼠标,让文本框的左上角的红三角出现才可以。

优化过后则可以将光标强制跳转到A2单元格,使其获得光标,进而强制B3单元格刷新值。

图片描述

既然任意点击空白处就可以,那么我们就用JS来强制跳转光标实现同样的功能。

模板制作

模板样式设计如下,A3和B3单元格添加文本控件,C3单元格为A3和B3相加值,D3和E3单元格添加按钮控件:

图片描述

“直接相加”按钮的JS

D3控件名称为直接相加,添加一个点击事件

图片描述

var B3 = contentPane.curLGP.getCellValue("B3");
var A3 = contentPane.curLGP.getCellValue("A3");
alert("a3的值:"+A3);
alert("b3的值:"+B3);

“优化后”按钮的JS

E3控件名称为优化后,添加一个点击事件

图片描述

contentPane.curLGP.selectTDCell("A2");var B3 = contentPane.curLGP.getCellValue("B3");
var A3 = contentPane.curLGP.getCellValue("A3");
alert("a3的值:"+A3);
alert("b3的值:"+B3);

contentPane.curLGP.selectTDCell(“A2”):表示的是,将光标强制跳转到A2单元格,也就相当于用鼠标点击了一下A2单元格,使其获得光标,进而强制B3单元格刷新值。

常见场景

用户通过文本框填报了值,而需要对这个值进行取出判断的时候,经常会取空值,只有用户点击了空白区域,才可以正常取值。

比如:用户填写了手机号码,就可以跳转到领取奖品的页面,若手机号码是最后一个填报栏,填写后,用户直接提交,系统则会认为,手机号码一栏为空。


https://dhexx.cn/news/show-996256.html

相关文章

c#sql连接mysql_c#连接MySql数据库的两种方法

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModelusingSystem.Drawing;usingSystem.Linq;//vs2005好像没有这个命名空间,在c#2008下测试自动生成的usingSystem.Text;usingSystem.Windows.Forms;usingMicrosoft.Data.Odbc;namespacemysql{pu…

深入解析:从源码窥探MySQL优化器

关注我们,下载更多资源作者 | 汤爱中,云和恩墨SQM开发者,Oracle/MySQL/DB2的SQL解析引擎、SQL审核与智能优化引擎的重要贡献者,产品广泛应用于金融、电信等行业客户中。摘要优化器是逻辑SQL到物理存储的解释器,是一个复…

Git相关信息查看命令

查看git版本git --version命令输出查看git的配置信息git config -l 或 git config --list命令输出查看git具体某个配置信息git config user.name命令输出查看git远程库地址git remote -v命令输出修改git的配置信息git config --global user.name "dengyunshuo" git c…

java连接mysql的步骤_JDBC连接MySQL操作步骤

description JDBC 查询数据库示例*/public class JDBCdemo1 {public static void main(String[] args){Connection conn null;Statement statement null;ResultSet resultSet null;//1.注册数据库驱动try {Class.forName("com.mysql.jdbc.Driver");//加载一个类到…

携程一次Redis迁移容器后Slowlog“异常”分析

容器化对于Redis自动化运维效率、资源利用率方面都有巨大提升,携程在对Redis在容器上性能和稳定性进行充分验证后,启动了生产Redis迁移容器化的项目。其中第一批次两台宿主机,第二批次五台宿主机。本次“异常”是第二批次迁移过程中发现的&am…

打破牢笼,展望更高层次的世界

http://www.cnblogs.com/xdesigner/p/6552745.html ************************************************* 打破牢笼,展望更高层次的世界--------------------------------------------------------------笔者袁永福是一个十多年的老程序猿出来创业多年,期…

order by在mysql中位置_获取MySQL'IN'子句中按(ORDER BY)位置排序的返回记录集

要返回记录集顺序,您需要使用FIND_IN_SET()。让我们首先创建一个表-mysql> create table recordSetOrderDemo-> (-> EmployeeId int,-> EmployeeName varchar(30)-> );以下是使用insert命令在表中插入一些记录的查询-mysql> insert into recordSe…

MaxCompute访问TableStore(OTS) 数据

原文链接:http://click.aliyun.com/m/13884/ 免费开通大数据服务:https://www.aliyun.com/product/odps0. 前言MaxCompute作为阿里云大数据平台的核心计算组件,承担了集团内外大部分的分布式计算需求。而MaxCompute SQL作为分布式数据处理的主…

一文弄懂“分布式锁”

关注我们,下载更多资源来源:向南lwww.cnblogs.com/xiangnanl/p/9833965.html多线程情况下对共享资源的操作需要加锁,避免数据被写乱,在分布式系统中,这个问题也是存在的,此时就需要一个分布式锁服务。常见的…

access怎么连接mysql数据库_如何在Java中连接上Access数据库呢?

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了Microsoft Jet Database Engine和图形用户界面两项特点,是Microsoft Office的系统程序之一。java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。那么我们是如何将这两者联系起来的呢&a…