報表疑問解答
劉玉蓉
發(fā)布于2014-10-11 17:13
18
0
標(biāo)簽:
兩個問題
1、WINCC生成的報表是按照時間保存的,我想在畫面上做個查詢,輸入時間(日期),能自動打開對應(yīng)名稱的EXCEL文件
2、每半個小時將畫面上所顯示的幾個輸入輸出域的顯示值寫入EXCEL對應(yīng)的格內(nèi),也就是沒半個小時歸檔一次變量,然后寫入。
求這兩個問題的VB程序.
問題補充:
還有一個就是我在計算機中勾選了全局腳本,當(dāng)激活項目后全局腳本中的程序會自動運行嗎?如果不會,怎么讓全局腳本在激活項目時自動運行編好的程序
佳答案
1、WINCC生成的報表是按照時間保存的,我想在畫面上做個查詢,輸入時間(日期),能自動打開對應(yīng)名稱的EXCEL文件
轉(zhuǎn)帖:
我工程中的一個例子,按輸入的日期查詢Excel表中的相應(yīng)的行,然后從該行開始(共20行)讀入到WinCC中的顯示表中。
""inquiry the Row No. according to the required date
Dim objExcelApp,oWorkBook
Dim oFindRowNo,vDate,oVar,i,j
On Error Resume Next
Set objExcelApp=CreateObject("Excel.Application")
objExcelApp.Visible=False
Set oWorkBook=objExcelApp.Workbooks.Open("d:GuangXi_001OwnWorkDATA_Table_V1201.xls")
vDate=ScreenItems("Acquisition_Date").OutputValue
oFindRowNo=oWorkBook.ActiveSheet.Columns(13).Find("*"&vDate).Row
""according to excel date format, prefix"*" needed
If CStr(oFindRowNo)="" Then
MsgBox("Not find? please try another date again!!!")
Else
""MsgBox("Continue ?Row No.="&oFindRowNo)
ScreenItems("Excel_TableBeginRowNo").OutputValue=oFindRowNo
""read data from Excel and write to WinCC Screen I/O fields
For i=1 To 20
For j=1 To 14
oVar="Production_Data_Table_Row"&CStr(i)&".Column_"&CStr(j)
HMIRuntime.SmartTags(oVar).value=objExcelApp.Cells(oFindRowNo+i-1,j).Value
Next
Next
ScreenItems("Excel_TableCurrentRowNo").OutputValue=oFindRowNo+19
End If
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp=Nothing
Set oWorkBook=Nothing