在熟悉Intouch项目有一段时间了,也做有相关的三个项目,关于Intouch的一些报表数据的采集,也有了自己一定的看法(主要还是因为自己是野路子)今天就把我常用的一种制作思路,提供给大家。(仅供参考哈)

由于个人原因,转入中控行业也有点时间了,为了解决项目的实际需求,也看了一些intouch相关报表的制作思路。特此结合自身实际项目需求总结如下:

基本思路:

SQL Server+时间脚本+绑定列表。

1.具体来讲,首先需要有SQL Server数据库(后者其他的关系型数据库)。然后,建立数据库,以及相应的数据表。当然一般的表的结构都是如下结构:

数据库中的结构---->绑定列表中的对应结构

date----->$datestring

time(0)----->$timestring

其他的数据就看实际需求啦。

2.建好表之后,就是利用windows 下ODBC建立数据库与自己开发的报表(或第三方报表)连接,Intouch编写应用程序脚本

启动时:

ResultCode=SQLConnect(ConnectionID,"Provider=SQLOLEDB;Data  Source=HP-PC;InitialCatalog=HQ;User ID=sa;Password=; ");

至此,intouch<---->SQL SERVER<----->报表的通路已经打通。

3.建立通道后,进入本博客的正题,采集数据。

a.以系统变量$Hour为变化点:

ResultCode=SQLInsert(ConnectionID,"设备运行日报表","RiYunXing");

注:RiYunXing代表intouch中绑定列表的名字,设备运行日报表代表这数据库中表对应的名字。

b.在需求变化中,并不是每次都是以每小时整点记录一次数据,比如采集雨量是以五分钟记录一次,考验智商的时候到了:

$MINUTE
IF ($Minute MOD 5==0) THEN
ResultCode=SQLInsert(ConnectionID,"液位雨量日报表","YeWeiYuLiang");

Bingo,利用$Minute为变化因子,加上取余操作,做到了每五分钟采集一次。

c.然后需求又升级了,怎么做到每两个半小时一次采集(如:8:30,10:30等等),要来大招了:

$TimeString
IF ($Hour MOD 2==0 and $Minute MOD 30==0 and $Second==0) then
ResultCode=SQLInsert(ConnectionID,"运行日报表","RiYunXing");
ENDIF;

最后这个,基本上能随心所欲,想几点记录就几点记录,想记录几次,你只管说。

然后一个,野路子版本的数据采集功能报表记录功能就完成了。

当然。。。。。技术赶不上变化,需求在变,技术也在变,人也要更加努力适应变化,所以,恒不变者,变化也。(吐槽)

下一步重点:

关于数据展示,大屏,曲线,备注这块(前端,json,后台)未完待续。。。

最新文章

  1. css知多少之绝对定位小记
  2. python多线程网络编程
  3. HTML5锚点请用id代替name
  4. HOWTO: InstallScript MSI工程取Log
  5. css的引入方法
  6. AssemblyInfo.cs的作用
  7. 浏览器内置Console函数使用详解
  8. 开始写自己的iOS技术博客了
  9. C++学习笔记(四):枚举
  10. 【翻译自mos文章】DBA_JOBS 和 DBA_JOBS_RUNNING 不同的结果的解释
  11. Windows 8 Hyper-V虚拟机功能(转载)
  12. Fedora 21 安装桌面环境
  13. SSR服务端一键安装脚本
  14. Object 保存到文件中
  15. UVA 11992 - Fast Matrix Operations(段树)
  16. java类型转换详解(自动转换和强制转换)
  17. Java学习第一周
  18. AsyncTask源码笔记
  19. phpinfo
  20. ORM(二)

热门文章

  1. Quill基本使用和配置 - DevUI
  2. Netty 框架学习 —— 基于 Netty 的 HTTP/HTTPS 应用程序
  3. 20201123 实验二《Python程序设计》实验报告
  4. Linux中su和sudo的用法
  5. 4.5 RNN循环神经网络(recurrent neural network)
  6. Integer Inquiry 大数加法
  7. MyBatis:条件构造器QueryWrapper方法详解
  8. linux cut的用法
  9. Mybatis代码自动生成(含测试)
  10. Spring Cloud中的注解