我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何通过脚本实现数据动态更新

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何通过脚本实现数据动态更新

在数据填报的场景中,常常会遇到根据条件动态更新数据的需求,例如:在条件 A 下将页面所有数据插入到数据库表中,而在条件 B 下则将页面中做了修改的数据更新到数据库表中。

遇到这种需求,脑海中的第一个想法就是:存储过程更新、或者 java 代码更新。不过,这两种实现方式的工作量和后期维护却实在让人头疼不已。那么,还有其他什么实现方式吗?而且最好是能和报表完美整合到一起的那种….

这样的美事儿,还真有!润乾报表提供了脚本模式的填报表制作方式,通过脚本,可以实现你各种天马行空想法。具体怎么操作呢?且听我慢慢道来。

下面我们以动态更新 demo 库中雇员表数据为例,当 type 参数的值为 1 时,将页面中 employee 表的所有数据更新入库;否则只将做了修改的 employee 记录更新入库。操作步骤如下:

第一步  制作行式填报

我们先使用行式填报制作向导制作一个简单的行式填报表,如下图所示:

如何通过脚本实现数据动态更新

【小技巧】

如果对采集规则不熟悉,那么可以对第二行每个单元格设置字段名称:对象. 字段

第二步  定义参数

在填报–参数配置页面中新增需要的参数,本文需要定义 type 参数作为数据更新处理方式判断依据,如下图所示:

如何通过脚本实现数据动态更新

第三步  修改脚本,实现动态更新数据处理

来源脚本为默认生成的脚本:

如何通过脚本实现数据动态更新

其中,

B2 的语句:>EMPLOYEE=A1.query(“SELECT EID,NAME,SURNAME,BIRTHDAY,HIREDATE from EMPLOYEE”)   从 demo 库中查询 employee 表的数据,并将结果写到 employee 对象中

去向脚本修改为如下图所示的内容:

如何通过脚本实现数据动态更新

动态更新数据时,需要用到 if 函数来动态判断,这里着重讲解下 if 的相关配置:

A2:if type==1  // 判断是否满足 type 参数值是 1 的条件

B3:>A1.update@ik(EMPLOYEE, 雇员, 雇员 ID:EID, 姓氏:NAME, 名字:SURNAME, 出生日期:BIRTHDAY, 雇用日期:HIREDATE ; 雇员 ID)  // 当满足 if 条件时,将 EMPLOYEE 对象中的数据全部插入到雇员表中,update@i 表示只执行插入更新操作

A4:else  // 不满足条件,type 参数值不是 1

B5:>A1.update@k(EMPLOYEE:EMPLOYEE_old, 雇员, 雇员 ID:EID, 姓氏:NAME, 名字:SURNAME, 出生日期:BIRTHDAY, 雇用日期:HIREDATE; 雇员 ID) // 当不满足 if 条件时,将页面中 EMPLOYEE 对象修改了的数据更新到数据库中,当 update 后无其他选项时,表示执行智能更新

【小技巧】

在不确定如何处理数据或者检查计算结果时,我们可以使用 debug()或者 output() 函数输出需要检查的信息,通过观察控制台结果来调试和判断。

【延伸】

类似场景:

1)type 参数是否为 1 只是我们假设的一个条件,实际的条件可能更加灵活和复杂。例如动态更新数据的判断依据可能是某个结果集是否为空,我们就可以使用 T.len() 获取结果集的长度,当长度为 0 时,表示结果集为空。

2)假设示例中的需求修改为:当 type 的值不是 1 时,将雇员表和 EMPLOYEE 对象的数据作比较,然后将差异数据更新入库。而雇员表数据在 guyuan 对象中,那么此时可以将 update 的写法改为:

A1.update@k(EMPLOYEE:guyuan, 雇员, 雇员 ID:EID, 姓氏:NAME, 名字:SURNAME, 出生日期:BIRTHDAY, 雇用日期:HIREDATE; 雇员 ID)

至此,我们就实现了在脚本模式下制作填报表,进而动态更新数据的效果。这里需要重点理解的是 if 和 update 函数的使用,不过显然也是比较简单的哦 ~ 当我们遇到需要用脚本进行数据处理的情况,不要害怕,盘它就对了,盘的多了,你会发现原来脚本真的是很有意思的一种处理方式。

更多填报表制作技巧在这里:http://c.raqsoft.com.cn/tag/Report?t= 填报技巧

详情链接:http://c.raqsoft.com.cn/article/1550469839038?r=gxy

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何通过脚本实现数据动态更新

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何通过脚本实现数据动态更新

在数据填报的场景中,常常会遇到根据条件动态更新数据的需求,例如:在条件 A 下将页面所有数据插入到数据库表中,而在条件 B 下则将页面中做了修改的数据更新到数据库表中。遇到这种需求,脑海中的第一个想法就是:存储过程更新、或者 java 代码
2023-06-02

Vue中怎么通过AJAX动态更新数据

本文小编为大家详细介绍“Vue中怎么通过AJAX动态更新数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue中怎么通过AJAX动态更新数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。代码如下:var nd
2023-07-04

layui table如何结合WebSocket实现实时数据更新?(通过WebSocket实现layui table实时数据更新)

layuiTable可与WebSocket结合实现实时数据更新。WebSocket建立全双工通信通道,服务器主动推送数据至客户端。layuiTable绑定WebSocket数据,并根据服务器更新增量或全部更新表格数据。这种方式减少服务器请求,提升性能,为用户带来及时的数据更新体验。
layui table如何结合WebSocket实现实时数据更新?(通过WebSocket实现layui table实时数据更新)
2024-04-02

Shell脚本中如何实现更新PHP5

这篇文章主要介绍了Shell脚本中如何实现更新PHP5,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我很迷恋 Shell,很喜欢看着字符在黑色的 Console 界面中跳跃着
2023-06-09

c# winform动态更新数据怎么实现

在C# WinForms中实现动态更新数据,可以使用数据绑定和事件处理来实现。使用数据绑定创建一个数据源,例如一个List或DataTable对象,用于存储数据。将数据源绑定到控件,例如DataGridView或ListBox。当数据
2023-10-26

如何通过动态参数实现周报制作

需求描述在货品交易系统里,用户不仅要看当天的交易情况,还需要查看一周 / 一个月 / 一年的情况,也叫做周报 / 月报 / 年报。下图所示就是其中订货信息周报的效果。它是如何根据用户输入的一个日期查询出该日期所在周的订货信息表的呢?实现步骤
2023-06-02

如何实现IP动态切换bat脚本

这篇文章将为大家详细讲解有关如何实现IP动态切换bat脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。新建"IP切换脚本.bat"文件,将下列代码复制进去,保存,并加入启动项,这样每次开机的时候选择你的
2023-06-08

Python代码如何通过动态脚本语言进行操作

这篇文章将为大家详细讲解有关Python代码如何通过动态脚本语言进行操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。我们在计算机语言的应用中一般情况下我们都可跳过Build这些Projec
2023-06-17

如何通过PHP脚本在Linux服务器上实现数据加密

引言数据加密是现代计算机系统中非常重要的一项安全措施。通过加密敏感数据,可以保护用户隐私和数据完整性。本文将介绍如何在Linux服务器上使用PHP脚本实现数据加密,并提供具体的代码示例。使用OpenSSL库OpenSSL是一个开源的密码学工
2023-10-21

如何通过PHP脚本在Linux服务器上实现数据导出

在开发 Web 应用程序时,经常会遇到需要将数据库中的数据导出为各种格式(如CSV、Excel等)的需求。而PHP作为一种流行的服务器端脚本语言,能够方便地连接数据库并处理数据,也可以轻松地在Linux服务器上实现数据导出功能。以下是一个示
2023-10-21

CentOS 7如何实现DNS+DHCP动态更新

这篇文章给大家分享的是有关CentOS 7如何实现DNS+DHCP动态更新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。windows域里有一个功能,dhcp把新分发的ip数据发给DNS服务器,这样只要知道一个人
2023-06-10

layui table如何结合Ajax实现数据的实时更新?(通过Ajax实现layui table数据的实时刷新)

使用layuitable结合Ajax可以实现数据的实时更新,提供动态且响应迅速的交互体验。通过定期轮询服务器并处理异常,可以确保数据的持续更新和用户友好性。步骤包括:引入layuitable和Ajax库初始化layuitable使用Ajax更新数据定期轮询服务器处理断网或错误
layui table如何结合Ajax实现数据的实时更新?(通过Ajax实现layui table数据的实时刷新)
2024-04-02

如何通过Python脚本自动备份ElasticSearch的数据?(使用Python如何自动化ElasticSearch的数据备份过程?)

使用Python脚本自动化ElasticSearch数据备份是一种高效的方法,本文提供分步指南,详细介绍了如何:创建Python备份脚本,定义备份参数。配置备份参数(主机、端口、用户名、密码、索引名称、备份文件)。执行脚本创建备份。通过任务调度程序计划自动备份。文章还提供了恢复数据的步骤和额外提示,例如使用不同的备份文件后缀、测试恢复过程、考虑远程存储和使用管道。通过遵循这些步骤,用户可以创建可靠的ElasticSearch数据备份解决方案,确保数据安全性和可恢复性。
如何通过Python脚本自动备份ElasticSearch的数据?(使用Python如何自动化ElasticSearch的数据备份过程?)
2024-04-02

C#如何实现动态执行字符串脚本

这篇文章主要介绍了C#如何实现动态执行字符串脚本的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#如何实现动态执行字符串脚本文章都会有所收获,下面我们一起来看看吧。先来代码using System;using
2023-07-05

在Linux中如何通过expect工具实现脚本的自动交互

这篇文章给大家介绍在Linux中如何通过expect工具实现脚本的自动交互,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。expect是一个自动化交互套件,是建立在tcl基础上的,能过通过脚本设置自动进行交互通信。1 安
2023-06-28

shell脚本如何通过expect实现自动单边无密登录功能

这篇文章主要介绍了shell脚本如何通过expect实现自动单边无密登录功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:EXPECT=/usr/bin/expec
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录