百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

组态王|组态王通过选择日期实现历史数据的查询

xsobi 2024-12-17 17:06 2 浏览

哈喽,你好啊,我是雷工!

前两天有个哥们儿让帮忙在组态王软件 中实现历史报表的查询。

现将实现过程记录下来,防止忘记。

以下为实 现笔记。

01 效果演示

实现内容,通过两个日历控件选择开始日期和结束日期,然后点击【历史数据查询】按钮,在报表中显示对应时间段的数据集。

02 实现步骤

2.1、组态界面

在界面上添加标签,标示【开始日期】和【结束日期】;

添加两个日历控件,用于选择开始日期和结束日期;

添加一个文本按钮,用于实现查询的动作;

添加一个报表控件,用于展示查询结果;

2.2、Calendar控件

①单击工具箱中的【插入通用控件】按钮

②在弹出的【插入通用控件】对话框选择【Calender Control】控件,然后点击【确定】按钮,关闭对话框,然后在画面上适当的位置按住鼠标左键并拖动,绘制出一个矩形框,放开鼠标,就完成了控件的绘制。

2.3、报表控件

①添加报表

同样的方式,先在工具箱中找到报表窗口控件,然后在合适的位置绘制报表。

②配置报表

组态 王软件中每个报表都要定义一个唯一的标识名,

用鼠标双击报表窗口的灰色部分,弹出【报表设计】对话框;


该对话框主要用于设置报表的名称、报表格式的行数、列数以及选择套用表格的样式。

接着就可以使用报表工具箱中的工具对表表进行设置。

2.4、查询按钮

①添加按钮

这里使用文本作为按钮,文本的字符串显示设置为:历史数据查询;

②弹起时

这里动作由弹起时触发,因此勾选【弹起时】,并点击在其中编写弹起时要执行的脚本。

③HTConvertTime函数

此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒为单位的长整型数,转换的时间基准是UTC(格林尼治)1970年1月1日00:00:00。

HTConvertTime(Year,Month,Day,Hour,Minute,Second);

参数:

Year: 年,整型,此值必须介于1970和2038之间

Month: 月,整型,此值必须介于1和12之间

Day: 日,整型,此值必须介于1和31之间

Hour: 小时,整型,此值必须介于0和23之间

Minute: 分钟,整型,此值必须介于0和59之间

Second: 秒,整型,此值必须介于0和59之间

返回值:整型

注意:

调用此函数将用年、月、日、时、分、秒表示的时间转换成自1970年1月1日00:00:00即UCT起到该时刻所经过的秒数。在定义返回值变量时,应注意将其最大值置为整型数的最大范围,如2×109,否则可能会因为返回数据超出范围导致转换的时间不正确。

④ReportSetHistData4函数

此函数用于从历史库中,查询某变量(TagName)一段时间范围内(StartTime-- EndTime)的所有值,在报表(ReportName)中显示出来;如果bTimeVisible=1,从(StartRow,StartCol)开始显示2列, 左列显示时间,右列显示值;如果bTimeVisible=0,从(StartRow,StartCol)开始显示1列,只显示数值。语法格式使用如下:

ReportSetHistData4("ReportName","TagName",StartTime,EndTime,StartRow,StartCol,bTimeVisible);

参数:

ReportName --string 报表名称

TagName --string 变量名称

StartTime --long 数据查询的开始时间

EndTime --long 数据查询的结束时间

该时间是通过组态王HTConvertTime函数转换的以1970年1月1日8:00:00(东八区)为基准的长整型数,所以用户在使用本函数查询历史数据之前,应先将查询起始时间转换为长整型数值

StartRow --long 查询的数据在报表中填充的起始行,小于20000。

StartCol --long查询的数据在报表中填充的起始列,小于128。

bTimeVisible --bool查询的数据在报表中是否显示时间列。0,不显示时间列;1,显示时间列。

返回值:

0,查询失败;

1,查询成功;

2,参数超限;

3,报表名错误;

4,变量名错误;

⑤弹起时脚本

long StartTime;

long EndTime;

long StartYear;

long StartMonth;

 long StartDay;

 long endYear;

long endMonth;

long endDay;

 StartYear=Ctrl0.GetYear();

StartMonth=Ctrl0.GetMonth();

StartDay=Ctrl0.GetDay();

endYear=Ctrl0002.GetYear();

endMonth=Ctrl0002.GetMonth();

endDay=Ctrl0002.GetDay();

 StartTime=HTConvertTime(StartYear, StartMonth, StartDay, 0, 0, 0);

EndTime =HTConvertTime(endYear,endMonth, endDay, 23, 59, 59);

 ReportSetHistData4("Roadcod1", "1#机组出口压力", StartTime, EndTime, 3,1,1);

ReportSetHistData4("Roadcod1", "1#机组累计流量", StartTime, EndTime, 3,3,0);

ReportSetHistData4("Roadcod1", "1#机组瞬时流量", StartTime, EndTime, 3,4,0);

ReportSetHistData4("Roadcod1", "2#机组出口压力", StartTime, EndTime, 3,5,0);

ReportSetHistData4("Roadcod1", "2#机组累计流量", StartTime, EndTime, 3,6,0);

ReportSetHistData4("Roadcod1", "2#机组瞬时流量", StartTime, EndTime, 3,7,0);

ReportSetHistData4("Roadcod1", "3#机组出口压力", StartTime, EndTime, 3,8,0);

ReportSetHistData4("Roadcod1", "3#机组累计流量", StartTime, EndTime, 3,9,0);

ReportSetHistData4("Roadcod1", "3#机组瞬时流量", StartTime, EndTime, 3,10,0);

03 后记

以上为在组态王中查询历史数据的过程,有用到的同学可以借鉴。

当然第一次用也可能有让你见笑的地方,也欢迎评论指出。

另外你用过哪些组态软件?觉得哪款最好用?欢迎在交流群畅所欲言,交流经验。

相关推荐

好用的云函数!后端低代码接口开发,零基础编写API接口

前言在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作。不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人,通过...

快速上手:Windows 平台上 cURL 命令的使用方法

在工作流程中,为了快速验证API接口有效性,团队成员经常转向直接执行cURL命令的方法。这种做法不仅节省时间,而且促进了团队效率的提升。对于使用Windows系统的用户来说,这里有一套详细...

使用 Golang net/http 包:基础入门与实战

简介Go的net/http包是构建HTTP服务的核心库,功能强大且易于使用。它提供了基本的HTTP客户端和服务端支持,可以快速构建RESTAPI、Web应用等服务。本文将介绍ne...

#小白接口# 使用云函数,人人都能编写和发布自己的API接口

你只需编写简单的云函数,就可以实现自己的业务逻辑,发布后就可以生成自己的接口给客户端调用。果创云支持对云函数进行在线接口编程,进入开放平台我的接口-在线接口编程,设计一个新接口,设计和配置好接口参...

极度精神分裂:我家没有墙面开关,但我虚拟出来了一系列开关

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:iN在之前和大家说过,在iN的家里是没有墙面开关的。...

window使用curl命令的注意事项 curl命令用法

cmd-使用curl命令的注意点前言最近在cmd中使用curl命令来测试restapi,发现有不少问题,这里记录一下。在cmd中使用curl命令的注意事项json不能由单引号包括起来json...

Linux 系统curl命令使用详解 linuxctrl

curl是一个强大的命令行工具,用于在Linux系统中进行数据传输。它支持多种协议,包括HTTP、HTTPS、FTP等,用于下载或上传数据,执行Web请求等。curl命令的常见用法和解...

Tornado 入门:初学者指南 tornados

Tornado是一个功能强大的PythonWeb框架和异步网络库。它最初是为了处理实时Web服务中的数千个同时连接而开发的。它独特的Web服务器和框架功能组合使其成为开发高性能Web...

PHP Curl的简单使用 php curl formdata

本文写给刚入PHP坑不久的新手们,作为工具文档,方便用时查阅。CURL是一个非常强大的开源库,它支持很多种协议,例如,HTTP、HTTPS、FTP、TELENT等。日常开发中,我们经常会需要用到cur...

Rust 服务器、服务和应用程序:7 Rust 中的服务器端 Web 应用简介

本章涵盖使用Actix提供静态网页...

我给 Apache 顶级项目提了个 Bug apache顶级项目有哪些

这篇文章记录了给Apache顶级项目-分库分表中间件ShardingSphere提交Bug的历程。说实话,这是一次比较曲折的Bug跟踪之旅。10月28日,我们在GitHub上提...

linux文件下载、服务器交互(curl)

基础环境curl命令描述...

curl简单使用 curl sh

1.curl--help#查看关键字2.curl-A“(添加user-agent<name>SendUser-Agent<name>toserver)”...

常用linux命令:curl 常用linux命令大全

//获取网页内容//不加任何选项使用curl时,默认会发送GET请求来获取内容到标准输出$curlhttp://www.baidu.com//输出<!DOCTYPEh...

三十七,Web渗透提高班之hack the box在线靶场注册及入门知识

一.注册hacktheboxHackTheBox是一个在线平台,允许测试您的渗透技能和代码,并与其他类似兴趣的成员交流想法和方法。它包含一些不断更新的挑战,并且模拟真实场景,其风格更倾向于CT...