IFIX與EXCEL的連接_第1頁
IFIX與EXCEL的連接_第2頁
IFIX與EXCEL的連接_第3頁
IFIX與EXCEL的連接_第4頁
IFIX與EXCEL的連接_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、IFIX與EXCEL的連接第一步,創(chuàng)建ODBC數(shù)據(jù)源,具體方法:啟動控制面板中的數(shù)據(jù)源ODBC,單擊“系統(tǒng)DNS”對話框,選擇所需數(shù)據(jù)源的驅(qū)動,如:“Microsoft excel driver (*.exl)”,單擊“完成”按鈕,彈出“ODBC Microsoft excel 安裝”對話框;在數(shù)據(jù)源名中定義一個數(shù)據(jù)源名稱,數(shù)據(jù)庫中“選擇”中選擇區(qū)縣數(shù)據(jù)所在的數(shù)據(jù)庫,此數(shù)據(jù)庫的表至少有三個字段:時間字段、數(shù)據(jù)字段、毫秒字段。單擊確定按鈕,新創(chuàng)建數(shù)據(jù)源就添加到“系統(tǒng)DNS”列表中。第二步,在IFIX中創(chuàng)建代碼ADO在安裝了MCROWIN

2、 BASIC 6.0 等軟件就有了;Private Sub CommandButton1_Click()    '注釋:  1。該程序需要安裝ADO 2.0目標庫并在本機注冊    '       2。Microsoft ActiveX Data Objects 2.1 Library 必須被

3、引用 (Office 2000)    '       3。Microsoft Excel 9.0 object libraries 必須被引用 (Office 2000)    '       4。劃=處可根據(jù)具體報表修改    &

4、#160;   Dim strQueryAvg As String    Dim c As Integer    Dim r As Integer    Dim Intyexcel As Excel.Application        Dim

5、60;MyDate, MyMonth, MyDay, MyHour, MyMinute, MySecond    Dim StartTime, EndTime, Duration, DisplayDay, DisplayMonth As String    '+=    '報表中的 TAG   

6、0;Dim Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 As String    Dim Items As Integer        Tag1 = "TEST"    Tag2 = "T

7、EST1"    Tag3 = " "    Tag4 = " "    Tag5 = " "    Tag6 = " "    Tag7 = " &

8、quot;    Tag8 = " "        '從歷史庫中取得域項, 2 - DATATIME, VALUE, TAG 共三項    Items = 2    '-=      

9、0; MyDate = Now()    MyMonth = Month(MyDate)    MyDay = Day(MyDate)    MyHour = Hour(MyDate)    MyMinute = Minute(MyDate)    MySecond = 

10、;Second(MyDate)        StartTime = "2000" & "-" & MyMonth & "-" & MyDay - 1 & " " & "00:00:00" &

11、#160;  EndTime = "2000" & "-" & MyMonth & "-" & MyDay - 1 & " " & "23:00:00"    '+=    

12、'查詢,根據(jù)報表修改    strQueryAvg = "Select DATETIME, VALUE, TAG FROM FIX " & _        "WHERE MODE = 'AVERAGE' and (TAG='" &

13、 Tag1 & "' or TAG='" & Tag2 & "'" & _        " or TAG='" & Tag3 & "' or TAG='"

14、; & Tag4 & "' or TAG='" & Tag5 & "'" & _        " or TAG='" & Tag6 & "' or TA

15、G='" & Tag7 & "' or TAG='" & Tag8 & "')" & _        "and INTERVAL = '01:00:00' and " &&

16、#160;_        "(DATETIME >= and " & _        "DATETIME <= )"    '-=          

17、0; Dim cnADO As New ADODB.Connection    Dim rsADO As Recordset        Set cnADO = New ADODB.Connection    cnADO.ConnectionString = "DSN =

18、60;FIX Dynamics Historical Data; UID = sa; PWD = "    cnADO.Open "FIX Dynamics Historical Data", "sa", ""    Set rsADO = New ADODB

19、.Recordset    rsADO.Open strQueryAvg, cnADO, adOpenForwardOnly, adLockBatchOptimistic    '''如果執(zhí)行上面的語句出錯的話,則最大的可能性就是SQL語句有錯誤!    r = 1    Set Intyexcel = New E

20、xcel.Application    Intyexcel.Visible = False                '+=    '打開的報表文件名    Dim OutReportFile As String   &

21、#160;Dim InReportFile As String        InReportFile = "C:DynamicsAppHIST1"        Intyexcel.Workbooks.Open InReportFile & ".XLS"    

22、0;     Intyexcel.Sheets("Sheet2").Select    Intyexcel.Columns("A:Z").Select    Intyexcel.Selection.ClearContents    Intyexcel.Range("A1").Select    While rsADO.

23、EOF <> True        With Intyexcel.Worksheets(2)            For c = 0 To Items             

24、;   If rsADO(c) <> "" Then .Cells(r, c + 1).Value = rsADO(c)            Next c            r

25、60;= r + 1            rsADO.MoveNext        End With    Wend        Intyexcel.Sheets("Sheet1").Select'

26、0;   Intyexcel.ActiveSheet.PageSetup.Orientation = xlPortrait       'xlLandscape'    Intyexcel.ActiveSheet.PageSetup.PaperSize = xlPaperA4    Intyexcel.ActiveSheet.PrintOut 

27、0;  Intyexcel.DisplayAlerts = False    Intyexcel.ActiveWorkbook.Save    OutReportFile = InReportFile & "_00" & MyMonth & MyDay    Intyexcel.ActiveWorkbook.Sav

28、eAs OutReportFile        Intyexcel.Quit    Intyexcel.DisplayAlerts = True    Set Intyexcel = Nothing    Set cnADO = NothingEnd Sub4.2 iFIX中電廠日報表的

29、生成3總則:運用iFIX的調(diào)度器運行基于時間的VBA腳本來生成每天的EXCEL格式日報表。1) iFIX中調(diào)度設置在iFIX中新建時間調(diào)度,設置成間隔1小時的調(diào)度項,然后點擊VB編輯器自定義腳本,如下圖: 圖 6 iFIX中調(diào)度設置界面2) 初始變量定義Dim ReportArray As Variant Rem 存放日報中所有要顯示的參數(shù)的數(shù)組Dim FirstPoint1 As Variant Rem 第一個變量Dim tempva

30、r As Variant Rem 中間變量Dim strStartTime, strEndTime Rem 報表查詢的時間范圍Dim Interval As Variant Rem 報表查詢的間隔時間Dim OutReportfile As Variant Rem 輸出EXCEL表格的文件名Dim TemplateName As String Rem 這個是日報表模板

31、的文件名3) 建立對EXCEL的引用,并打開報表的模板文件:Set msExcel = CreateObject("Excel.Application") With msExcel.WindowState = xlMinimized.Visible = False.Workbooks.Open ReportTemplateName, , False Rem 打開報表的模板文件.ActiveWorkbook.ActiveShee

32、t.Select.DisplayAlerts = False.DisplayAlerts = False.Wait (Now() + 0.00002)End With4) 創(chuàng)建SQL查詢語句:Dim rsADO As New ADODB.RecordsetDim cnADO As New ADODB.ConnectionDim SQL0,SQL1 AS StringSQLO = 

33、;"select FIX.value from FIX where FIX.interval=|" + Interval + "| and FIX.datetime>=ts|" + strStartTime + "| and FIX.datetime<ts|" + strEndTime + "|"

34、 Rem FIX為本地節(jié)點名SQL1 = SQLO & " and (FIX.tag=|" & FirstPoint1 & "|"iTotalCols = 1For Each tempvar In FirstReportPointsiTotalCols = iTotalCols + 1SQL1 =

35、0;SQL1 & " or FIX.tag=|" & tempvar & "|"Next tempvarSQL1 = SQL1 + ")"5) 執(zhí)行對數(shù)據(jù)庫的查詢:Set cnADO = New ADODB.ConnectionWith cnADORem .CursorLocation = adUseClient.Open "PROVIDER = Microsoft OLE DB Provider 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論