日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Wonderware-InTouch 历史报警过滤器无弹窗关键字筛查

發(fā)布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Wonderware-InTouch 历史报警过滤器无弹窗关键字筛查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們做歷史報警/事件的查詢功能時會用到“AlmDbViewCtrl”這個歷史控件,經(jīng)常需要對歷史記錄的某些關(guān)鍵字進行篩查,以更加精確的得到查詢結(jié)果。就目前的查詢功能而言完全可以實現(xiàn),但我們點擊篩查按鈕時,總會先彈出一個條件過濾器,再次選擇查詢條件方可得出結(jié)果。這個重復(fù)的操作真的不友好,對于完美主義者而言。

?

為了解決這個痛點,講一下如何實現(xiàn)關(guān)鍵字篩查無過濾器彈窗,現(xiàn)以這兩種方式做個對比。

一. 有過濾器彈窗篩查

1. 在“AlmDbViewCtrl”控件的屬性界面找到“查詢過濾器”,可新建編輯一個過濾器收藏文件夾名為:MYFILTER.xml,放在本工程的文件目錄下。

?

2. 在控件向?qū)А澳Х薄闭业健皢芜x按鈕組”控件

3. 設(shè)置“單選按鈕組”控件,新建index內(nèi)存整型標(biāo)記名,做4個單選項,分別為:TgaName,AlarmGroup,Operator,Description,作為篩查關(guān)鍵字。選擇后的index的值分別為:1,2,3,4

4. 窗口顯示時腳本,即切換到歷史報警界面時初始化時間以及默認查詢當(dāng)天報警歷史記錄:

#AlmDbViewCtrl1.StartTime = Text(#DTPicker2.month,"00") + "/" + Text(#DTPicker2.day,"00") + "/" + Text(#DTPicker2.year,"0000") + " " + Text(#DTPicker2.hour,"00") + ":" + Text(#DTPicker2.minute,"00") + ":" + Text(#DTPicker2.second,"00") ; #AlmDbViewCtrl1.EndTime = Text(#DTPicker3.month,"00") + "/" + Text(#DTPicker3.day,"00") + "/" + Text(#DTPicker3.year,"0000") + " " + Text(#DTPicker3.hour,"00") + ":" + Text(#DTPicker3.minute,"00") + ":" + Text(#DTPicker3.second,"00") ; #AlmDbViewCtrl1.SpecificTime = 1; #AlmDbViewCtrl1.Refresh();

5.查詢按鈕腳本:

strPath = InfoInTouchAppDir() + "\MYFILTER1.xml"; CALL ALMSEARCHFILTER(strTagName,strAlarmGroup,strOperator,strDescription); #AlmDbViewCtrl1.StartTime = Text(#DTPicker2.month,"00") + "/" + Text(#DTPicker2.day,"00") + "/" + Text(#DTPicker2.year,"0000") + " " + Text(#DTPicker2.hour,"00") + ":" + Text(#DTPicker2.minute,"00") + ":" + Text(#DTPicker2.second,"00") ; #AlmDbViewCtrl1.EndTime = Text(#DTPicker3.month,"00") + "/" + Text(#DTPicker3.day,"00") + "/" + Text(#DTPicker3.year,"0000") + " " + Text(#DTPicker3.hour,"00") + ":" + Text(#DTPicker3.minute,"00") + ":" + Text(#DTPicker3.second,"00") ; #AlmDbViewCtrl1.SpecificTime = 1; #AlmDbViewCtrl1.ShowFilter();

6. CALL ALMSEARCHFILTER(str1,str2,str3,str4)函數(shù)腳本為:4個參數(shù)均為消息

FileDelete(strPath); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",0,HIST_XMLCODE + "<Filter_Favorites><Record><FilterName>TAGNAME</FilterName><Element>", 0 ); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",-1, "<Name>名稱</Name><OrigName>Name</OrigName><Operator>LIKE</Operator><Value>%"+str1+"%</Value><Parent>0</Parent>", 0); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml", -1, "</Element></Record>", 0 ); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",-1, "<Record><FilterName>ALARMGROUP</FilterName><Element>", 0 ); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",-1, "<Name>組</Name><OrigName>Group</OrigName><Operator>LIKE</Operator><Value>%"+str2+"%</Value><Parent>0</Parent>", 0); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml", -1, "</Element></Record>", 0 ); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",-1,"<Record><FilterName>OPERATOR</FilterName><Element>", 0 ); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",-1, "<Name>操作</Name><OrigName>Operator</OrigName><Operator>LIKE</Operator><Value>%"+str3+"%</Value><Parent>0</Parent>", 0); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml", -1, "</Element></Record>", 0 ); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",-1,"<Record><FilterName>DESCRIPTION</FilterName><Element>", 0 ); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml",-1, "<Name>報警注釋</Name><OrigName>Alarm Comment</OrigName><Operator>LIKE</Operator><Value>%"+str4+"%</Value><Parent>0</Parent>", 0); FileWriteMessage( InfoInTouchAppDir() + "\MYFILTER1.xml", -1, "</Element></Record></Filter_Favorites>", 0 ); #AlmDbViewCtrl1.FilterFavoritesFile = strPath;

7. 生成的過濾文件內(nèi)容為:內(nèi)容可以根據(jù)需要篩查的關(guān)鍵字進行增減

8. 點擊查詢按鈕后需再次選擇條件確定得出結(jié)果:

到此,有過濾器彈窗關(guān)鍵字篩查結(jié)束。

二. 無過濾器彈窗篩查

從上面第5步開始寫查詢按鈕的腳本就有所不同了,在這里敲黑板,抬頭挺胸劃重點,用到了“AlmDbViewCtrl”控件“SelectQuery”方法實現(xiàn)查詢,腳本格式如下:

#AlmDbViewCTRL1.SelectQuery("filtername");

查詢按鈕腳本為:

#AlmDbViewCtrl1.StartTime = Text(#DTPicker2.month,"00") + "/" + Text(#DTPicker2.day,"00") + "/" + Text(#DTPicker2.year,"0000") + " " + Text(#DTPicker2.hour,"00") + ":" + Text(#DTPicker2.minute,"00") + ":" + Text(#DTPicker2.second,"00") ; #AlmDbViewCtrl1.EndTime = Text(#DTPicker3.month,"00") + "/" + Text(#DTPicker3.day,"00") + "/" + Text(#DTPicker3.year,"0000") + " " + Text(#DTPicker3.hour,"00") + ":" + Text(#DTPicker3.minute,"00") + ":" + Text(#DTPicker3.second,"00") ; #AlmDbViewCtrl1.SpecificTime = 1;IF index == 1 THEN #AlmDbViewCTRL1.SelectQuery("TAGNAME"); ELSE IF index == 2 THEN #AlmDbViewCTRL1.SelectQuery("ALARMGROUP"); ELSE IF index == 3 THEN #AlmDbViewCTRL1.SelectQuery("OPERATOR"); ELSE IF index == 4 THEN #AlmDbViewCTRL1.SelectQuery("DESCRIPTION"); ENDIF;ENDIF;ENDIF;ENDIF;

到此,無過濾器彈窗關(guān)鍵字篩查結(jié)束。

InTouch歷史報警無過濾器彈窗關(guān)鍵字篩查視頻演示

Wonderware-InTouch歷史報警無過濾器彈窗篩查學(xué)習(xí)

?

總結(jié)

以上是生活随笔為你收集整理的Wonderware-InTouch 历史报警过滤器无弹窗关键字筛查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。