技术论坛

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

作者 主题
游士

经验值: 291
发帖数: 66
精华帖: 1
主题:wincc 写 EXCELL 表格做报表。23:00--00:00 数据失踪写不进表格。请大侠指点。


只看楼主 楼主 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


123
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1396290&b_id=5&s_id=0&num=2

侠圣

经验值: 2210
发帖数: 263
精华帖: 6
回复:wincc 写 EXCELL 表格做报表。23:00--00:00 数据失踪写不进表格。请大侠指点。


只看楼主 1楼 2017-05-22 08:42:04
时间怎么搞这么乱啊,最后一个数据失踪可能跟时间有关,比如说,你会不会把0点当做最后时间了,通常读取变量记录,23点的是最后一个数,还有本地时间和格林时间的转换有专用代码的,如果你单纯的加减8个小时,在某个季节的时候可能会出错,我遇到过。2606352062,有问题欢迎交流。
wincc报表全套教材书+视频教程+实例:2606352062
以下网友喜欢您的帖子:

  
版主

经验值: 43587
发帖数: 15780
精华帖: 61
回复:wincc 写 EXCELL 表格做报表。23:00--00:00 数据失踪写不进表格。请大侠指点。


只看楼主 2楼 2017-05-27 09:15:20

中间插入msgbox显示你的关键查询信息是否正确。


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
wincc 写 EXCELL 表格做报表。23:00--00:00 数据失踪写不进表格。请大侠指点。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。