Wonderware-InTouch歷史報警、操作記錄導出爲Excel

Intouch自身的歷史記錄控件爲AlmDbViewCtrl,可以查詢歷史報警和操作記錄。我們需要在控件嚮導中拉出時間控件DTPicker,選擇時間,關鍵字等,即可查詢想要的結果,這些需要編寫程序去實現。

顯示時:
#DTPicker9.value = $DateString;
#DTPicker10.value = "00:00:00";
#DTPicker11.value = $DateString;
#DTPicker12.value = "23:59:59";
#AlmDbViewCtrl2.SpecificTime = 1;
#AlmDbViewCtrl2.StartTime = StringMid(#DTPicker9.value,6,2) + "/" + StringMid(#DTPicker9.value,9,2) + "/" + StringMid(#DTPicker9.value,1,4) + " " + #DTPicker10.value;
#AlmDbViewCtrl2.EndTime = StringMid(#DTPicker11.value,6,2) + "/" + StringMid(#DTPicker11.value,9,2) + "/" + StringMid(#DTPicker11.value,1,4) + " " + #DTPicker12.value;
#AlmDbViewCtrl2.Refresh();
查詢:
#AlmDbViewCtrl2.SpecificTime = 1;
#AlmDbViewCtrl2.StartTime = StringMid(#DTPicker9.value,6,2) + "/" + StringMid(#DTPicker9.value,9,2) + "/" + StringMid(#DTPicker9.value,1,4) + " " + #DTPicker10.value;
#AlmDbViewCtrl2.EndTime = StringMid(#DTPicker11.value,6,2) + "/" + StringMid(#DTPicker11.value,9,2) + "/" + StringMid(#DTPicker11.value,1,4) + " " + #DTPicker12.value;
#AlmDbViewCtrl2.GroupName = "$SYSTEM";
IF CONDITION <> "" THEN
CALL ALMFILTERSEARCH(CONDITION);
#AlmDbViewCtrl2.ShowFilter();
ELSE
#AlmDbViewCtrl2.Refresh();
ENDIF;
QuickFunction:ALMFILTERSEARCH
FileDelete("D:\Intouch Files\FlexUI_LX2\ALARM.xml");
FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml",0,HIST_XMLCODE + "<FILTER_FAVORITES><RECORD><FILTERNAME>MYFILTER</FILTERNAME><ELEMENT>", 0 );
IF HIST_SEARCHINDEX == 1 THEN
    FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml",-1, "<NAME>名稱</NAME><ORIGNAME>Name</ORIGNAME><OPERATOR>LIKE</OPERATOR><VALUE>%"+STR+"%</VALUE><PARENT>0</PARENT>", 0);
ELSE 
    FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml",-1, "<NAME>報警註釋</NAME><ORIGNAME>Alarm Comment</ORIGNAME><OPERATOR>LIKE</OPERATOR><VALUE>%"+STR+"%</VALUE><PARENT>0</PARENT>", 0);  
ENDIF;
FileWriteMessage( "D:\Intouch Files\FlexUI_LX2\ALARM.xml", -1, "</ELEMENT></RECORD></FILTER_FAVORITES>", 0 );
#AlmDbViewCtrl2.FilterFavoritesFile = "D:\Intouch Files\FlexUI_LX2\ALARM.xml";

以上就是實現查詢歷史記錄的代碼,實現時間篩選、關鍵字查詢,如下圖操作所示:需要過濾器選擇過濾內容。

若是想導出歷史記錄爲EXCEL,導成自己想要的格式則非常麻煩,首先需要把歷史記錄讀出,寫腳本通過這個報警控件去讀取會很慢,使用也較麻煩。

爲了這個導出EXCEL的功能可以按照如下方法實施,實現了歷史報警和操作記錄的查詢、篩選、排序,刪除、導出。

 

 

通過控件嵌入INtouch畫面的形式,與工程文件融爲一體,只需要註冊一下控件即可使用。

數據庫配置如下:

服務器名:.

數據庫名爲:WWALMDB

登陸用戶:sa

密碼:123456

以下爲歷史報警/操作記錄界面:可根據TgaName、報警組、值、HH/HI/LO/LL、類型、報警等級、操作員、節點名、報警註釋等進行篩選查詢,可查範圍與AlmDbViewCtrl一樣。

導出EXCEL,命名;可點擊按鈕實現每日定時導出歷史報表。

根據自己喜好的格式版面保存爲EXCEL:AlarmReport\EventReport,導出結果即爲查詢的結果。

與AlmDbViewCtrl比較起來操作更簡單,不需要各種設置,任何項目實施只需要幾分鐘的時間,省去了編寫簡本程序的麻煩和困難。控件移植性強,極大提高調試進度。

若需要此控件可進入下面鏈接學習掌握。

Wonderware-InTouch歷史報警、操作記錄導出爲Excel

Intouch-歷史報警/操作記錄導出爲EXCEL

Intouch-報表的實際應用案例

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章