zoukankan      html  css  js  c++  java
  • intouch制作历史报警查询(时间查询,筛选关键字)

    在项目中,intouch制作历史报警查询已属于标配功能,如何做出按时间以及关键字来进行综合查询,提高历史报警查询效率仍然是一个值得研究的问题,接下来参考网上文章自己总结下如何制作。

    1.DTPicker格式制作

    首先,时间选择器的安装不再一一演示,(安装32位office系统,从向导中安装date and time picker即可)。然后,选择自定义格式,这里格式十分重要,直接关系到时间查询的准确性(12小时制,24小时制的区别)。

    格式如下:yyyy-M-d H:mm:ss

    控件时间,设置为上午/下午以区分24小时,时间选择为本地时间。

    2020/5/4:备注

    %H参数可以直接修改为24小时制

    总体效果如下:

    2.过滤器编写

    过滤器的原理其实很简单,就是利用AlmDbViewCtrl控件本身自带的过滤器属性进行XML文档配置,然后再后台拼凑去过滤器的格式,填充好相应的查询关键字内容即可。

    1.首先,编辑好过滤器路径和文件

    C:Program Files (x86)WonderwareInTouch est.xml

    2.查看文件格式和内容,试着手动新建一个看看格式。

    3.可以利用自定义函数去拼凑相应格式,填写相应内容。

    编写quickfunction函数:ALMFILTERSEARCH

    FileDelete("C:Program Files (x86)WonderwareInTouch	est.xml");
    FileWriteMessage( "C:Program Files (x86)WonderwareInTouch	est.xml",0, HIST_XMLCODE +"<FILTER_FAVORITES><RECORD><FILTERNAME>MYFILTER</FILTERNAME><ELEMENT>", 0 );
    IF HIST_SEARCHINDEX == 1 THEN
        FileWriteMessage( "C:Program Files (x86)WonderwareInTouch	est.xml",-1, "<NAME>名称</NAME><ORIGNAME>Name</ORIGNAME><OPERATOR>LIKE</OPERATOR><VALUE>%"+CONDITION+"%</VALUE><PARENT>0</PARENT>", 0);
    ELSE 
        FileWriteMessage( "C:Program Files (x86)WonderwareInTouch	est.xml",-1, "<NAME>报警注释</NAME><ORIGNAME>Alarm Comment</ORIGNAME><OPERATOR>LIKE</OPERATOR><VALUE>%"+CONDITION+"%</VALUE><PARENT>0</PARENT>", 0);  
    ENDIF;
    FileWriteMessage( "C:Program Files (x86)WonderwareInTouch	est.xml", -1, "</ELEMENT></RECORD></FILTER_FAVORITES>", 0 );
    #AlmDbViewCtrl1.FilterFavoritesFile = "C:Program Files (x86)WonderwareInTouch	est.xml";

    其中:HIST_XMLCODE为内存消息,存放xml头部消息(<?xml version="1.0" encoding="GB2312"?>)

    HIST_SEARCHINDEX为内存整型,单选按钮选择状态(选择标记名为1)

    CONDITION为内存消息,此处为查询的关键字内容。

    3.脚本编写

    脚本的话,主要分为窗口脚本,以及查询按钮脚本。窗口脚本主要用于填写显示时,初始化脚本。查询则为点击查询时,所约束的时间和过滤器内容。

    窗口脚本:规定默认时间选择当天一天时间,历史报警也显示为该天中所有报警信息。

    #DTPicker1.value = $DateString+" "+ "00:00:00";
    #DTPicker2.value = $DateString+"  "+"23:59:59";
    #AlmDbViewCtrl1.SpecificTime = 1;
    #AlmDbViewCtrl1.StartTime = StringMid(#DTPicker1.value,6,2) + "/" + StringMid(#DTPicker1.value,9,2) + "/" + StringMid(#DTPicker1.value,1,4) + " "+ StringMid(#DTPicker1.value,13,2) + StringMid(#DTPicker1.value,16,2) +StringMid(#DTPicker1.value,19,2) ;
    #AlmDbViewCtrl1.EndTime = StringMid(#DTPicker2.value,6,2) + "/" + StringMid(#DTPicker2.value,9,2) + "/" + StringMid(#DTPicker2.value,1,4) + " " + StringMid(#DTPicker2.value,13,2) + StringMid(#DTPicker2.value,16,2) +StringMid(#DTPicker2.value,19,2) ;
    #AlmDbViewCtrl1.Refresh();

    2020/5/4:备注

    上述脚本在实际过程中存在小bug,会跳出月/日或年不对的问题,怀疑是03此类月份,和3月有写法上的不同,特此修改。

    #DTPicker1.value = $DateString+" "+ "00:00:00";
    #DTPicker2.value = $DateString+"  "+"23:59:59";
    #AlmDbViewCtrl1.SpecificTime = 1;
    #AlmDbViewCtrl1.StartTime=#DTPicker1.Month+ "/"+ #DTPicker1.Day+"/"+#DTPicker1.Year +" " + #DTPicker1.Hour+ ":"+ #DTPicker1.Minute+":"+#DTPicker1.Second;
    #AlmDbViewCtrl1.EndTime=#DTPicker2.Month + "/"+ #DTPicker2.Day+"/"+#DTPicker2.Year +" " + #DTPicker2.Hour+ ":"+ #DTPicker2.Minute+":"+ #DTPicker2.Second;
    #AlmDbViewCtrl1.Refresh();

    查询脚本:条件判断,和调用quickfunctions函数建立过滤器判断。

    #AlmDbViewCtrl1.StartTime=#DTPicker1.Month+ "/"+ #DTPicker1.Day+"/"+#DTPicker1.Year +" " + #DTPicker1.Hour+ ":"+ #DTPicker1.Minute+":"+#DTPicker1.Second;
    #AlmDbViewCtrl1.EndTime=#DTPicker2.Month + "/"+ #DTPicker2.Day+"/"+#DTPicker2.Year +" " + #DTPicker2.Hour+ ":"+ #DTPicker2.Minute+":"+ #DTPicker2.Second;
    #AlmDbViewCtrl1.GroupName = "$SYSTEM";
    
    IF CONDITION <> "" THEN
    CALL ALMFILTERSEARCH(CONDITION);
    #AlmDbViewCtrl1.ShowFilter();
    
    ELSE
    
    #AlmDbViewCtrl1.Refresh();
    
    ENDIF;
    

    4.演示效果

    5.总结

    基本功能已经实现,在实际使用过程中若是还存在问题,再后续补充。

  • 相关阅读:
    Java 缩放图片工具类,创建缩略图、伸缩图片比例
    93、App Links (应用程序链接)实例
    92、App Permissions(权限管理)实例
    MAC系统教程网站
    Android MVP 详解
    Android开发中,那些让你相见恨晚的方法、类或接口
    用Ultra ISO制作启动U盘装系统
    DB2 Magazine 中文版: 访问 iSeries 数据
    Eclipse快捷键大全
    同步灵无线锂电鼠G11-580HX独特“五灵键”
  • 原文地址:https://www.cnblogs.com/cache-yuan/p/12870788.html
Copyright © 2011-2022 走看看