wincc 写 EXCELL 表格做报表。23:00--00:00 数据失踪写不进表格。请大侠指点。

已锁定

susandeweixiao

  • 帖子

    66
  • 精华

    1
  • 被关注

    4

论坛等级:游士

注册时间:2006-05-29

普通 普通 如何晋级?

wincc 写 EXCELL 表格做报表。23:00--00:00 数据失踪写不进表格。请大侠指点。

500

2

2017-05-21 13:56:28

 

Option Explicit
Function action

'此为查询按钮中的代码
'变量定义和初始化                                                                                                                                                                                                                                                                 
Dim sPro,sDsn,sSer,sCon,conn,sSql,oRs,oCom
Dim tagDSNName
Dim m
Dim LocalBeginTime, LocalEndTime,UTCBeginTime, UTCEndTime
Dim objExcelApp,objExcelBook,objExcelSheet,sheetname
sheetname="Sheet1"

'打开Excel模板
 Set objExcelApp = CreateObject("Excel.Application")
  objExcelApp.Visible = False
  objExcelApp.Workbooks.Open "G:\生产日报表DEMO.xlsx"
  objExcelApp.Worksheets(sheetname).Activate
  

Dim strBeginTime,strEndTime
objExcelApp.Worksheets(sheetname).cells(2,1).value="日期:"&  CStr(Year(Now))&"-"&CStr(Month(Now))&"-"&CStr(Day(Now))
strBeginTime = CStr(Year(Now)) & "-"&CStr(Month(Now)) & "-"&CStr(Day(Now))& " 00:00:00"   'Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 9:00:00"
strEndTime = CStr(Year(Now)) & "-"&CStr(Month(Now)) & "-"&CStr(Day(Now))& " 23:59:59"   'Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 10:00:00"
'准备查询条件 Catalog、UTC开始时间、UTC结束时间、时间间隔
 Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
  tagDSNName.Read
  UTCBeginTime = DateAdd("h" ,-8,strBeginTime)
  UTCEndTime= DateAdd("h" ,-8,strEndTime)
  UTCBeginTime = Year(UTCBeginTime) & "-" & Month(UTCBeginTime) & "-" & Day(UTCBeginTime) & " " & Hour(UTCBeginTime) & ":" & Minute(UTCBeginTime) & ":" & Second(UTCBeginTime)
  UTCEndTime = Year(UTCEndTime) & "-" & Month(UTCEndTime) & "-" & Day(UTCEndTime) & " " & Hour(UTCEndTime) & ":" & Minute(UTCEndTime) & ":" & Second(UTCEndTime)
'创建数据库联接
 sPro = "Provider=WinCCOLEDBProvider.1;"
 sDsn = "Catalog=" &tagDSNName.Value& ";"
 sSer = "Data Source=.\WinCC"
 sCon = sPro + sDsn + sSer
 Set conn = CreateObject("ADODB.Connection")
  conn.ConnectionString = sCon
  conn.CursorLocation = 3
  conn.Open
'定义查询的命令文本 SQL
Set oRs = CreateObject("ADODB.Recordset")
 Set oCom = CreateObject("ADODB.Command")
  oCom.CommandType = 1
 Set oCom.ActiveConnection = conn
 
Dim j,tag_number
j = 1
Do While Not (j > 5)

Select Case j
 Case 1
 tag_number = 1
 Case 2
 tag_number = 2
 Case 3
 tag_number = 3
 Case 4
 tag_number = 4
 Case 5
 tag_number = 5
 Case 6
 tag_number = 6
 Case 7
 tag_number = 45
 Case 8
 tag_number = 92
 Case 9
 tag_number = 86
 Case 10
 tag_number = 87
 Case 11
 tag_number = 85
 Case 12
 tag_number = 84
 Case 13
 tag_number = 89
 Case 14
 tag_number = 88
End Select
 sSql = "Tag:R,"& tag_number & ",'" & UTCBeginTime & "','" & UTCEndTime & "' order by datetime"
    oCom.CommandText = sSql
 Set oRs = oCom.Execute
If (oRs.EOF) Then
oRs.Close
Else
oRs.MoveFirst   
Do While Not oRs.EOF                           '是否到记录末尾,循环填写表格  
Dim TIAOJIAN1,TIAOJIAN2         
    TIAOJIAN1 = GetLocalDate(oRs.Fields(1).Value)
    TIAOJIAN2 = Hour(TIAOJIAN1)
 objExcelApp.Worksheets(sheetname).cells(TIAOJIAN2+6,j+1).value= oRs.Fields(2).Value
 oRs.MoveNext
Loop
oRs.Close 
End If
j=j+1
Loop


Set oRs = Nothing
 conn.Close
Set conn = Nothing

Dim patch,filename
 filename=CStr(Year(Now))&"-"&CStr(Month(Now))&"-"&CStr(Day(Now))
 patch= "G:\DAY\生产日报表"&filename&".xlsx"  
 objExcelApp.ActiveWorkbook.SaveAs patch
 objExcelApp.Workbooks.Close
 objExcelApp.Quit
 Set objExcelApp= Nothing
End Function

wincc 写 EXCELL 表格做报表。23:00--00:00 数据失踪写不进表格。请大侠指点。 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有31066条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。