技术论坛

wincc全局脚本生成Excel日报表的问题

作者 主题
侠圣

经验值: 3633
发帖数: 156
精华帖: 0
主题:wincc全局脚本生成Excel日报表的问题


只看楼主 楼主 2012-05-09 09:31:51
利用wincc全局脚本生成Excel日报表,以每天的日期为名生成Excel文件,脚本如下:

Set myfile=fso.GetFile("E:\日报表\模版.xls")''''''''''''''''''''''''''''''''''''''''''''''''''报表模板路径

fname="E:\日报表\"& FormatDateTime(Date,2) & ".xls"''''''''''''''''''''''''''''''''''''''''''''''定义报表名为当日日期
MyFile.Copy(fname)'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''将模板以当日日期为名另存


Set objExcelApp=CreateObject("Excel.Application")
objExcelApp.workbooks.open fname'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''打开表格准备写入数据




StrBtime=CStr(Year(Date))+"-"+CStr(Month(Date))+"-"+CStr(Day(Date)-1)+" "+"16:00:00"
StrEtime=CStr(Year(Date))+"-"+CStr(Month(Date))+"-"+CStr(Day(Date))+" "+"15:59:59"'''''''''''''''''''''''''定义查询初始及终止时间(格林尼治时间)

现在发现一个问题,每月1号生成的日报表没有数据记录,在脚本中,查询数据是以每日日期减1来查询,Data-1,似乎1号减1无法查询,有什么办法可以解决?
 
以下网友喜欢您的帖子:

  
重要声明:

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

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=5&a_id=985974

新手

经验值: 19
发帖数: 6
精华帖: 0
回复:wincc全局脚本生成Excel日报表的问题


只看楼主 1楼 2012-07-06 20:10:10
请求一个问题,我要用Wincc flexible runtime 做excel数据记录,怎么做呢?我这边的资料太少了,又是新手,不知道怎么做才好。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 13060
发帖数: 4961
精华帖: 81
回复:wincc全局脚本生成Excel日报表的问题


只看楼主 2楼 2012-07-07 08:23:25
楼主应该使用DateAdd函数来进行日期加减
楼上WinCCflexible Runtime通过OLE对象访问Excel和WinCC类似,可以参考一下
 
以下网友喜欢您的帖子:

  
版主

经验值: 43600
发帖数: 15781
精华帖: 61
回复:wincc全局脚本生成Excel日报表的问题


只看楼主 3楼 2012-07-07 09:51:08
你的日期处理错误,如果data减1为0时那就是上一个月的最后一天了所以你需要在脚本中判断当前日期减去1如果为0则判断上月的有几天,然后取上月的最后一天就可以了,取当前日期的月份值,如果月份值等于1,则上月月份值为12,否则上月月份值为当前日期的月份值-1,然后判断上月有多少天,(1,3,5,7,8,10,12有31天,4,6,9,11有30天,2平年28天,闰年29天)
活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
版主

经验值: 17336
发帖数: 8475
精华帖: 18
回复:wincc全局脚本生成Excel日报表的问题


只看楼主 4楼 2012-07-08 09:27:39
二楼说得对。需要应用DateAdd函数,二次。
第一次,计算昨天:
Yesterday = DateAdd("d", -1, Date)
sYesterday = CStr(Year(Yesterday)) _
& "-" & Right("00" & CStr(Month(Yesterday)),2) _
& "-" & Right("00" & CStr(Day(Yesterday)),2)

' Local Time
dBeginTime = CDate(sYesterday & " 00:00:00")
dEndTime = CDate(sYesterday & " 23:59:59")

第二次,计算时差:
' Convert to UTC
dBeginTime = DateAdd("h", -8, dBeginTime)
dEndTime = DateAdd("h", -8, dEndTime)

sBeginTime = CStr(Year(dBeginTime)) _
& "-" & Right("00" & CStr(Month(dBeginTime)),2) _
& "-" & Right("00" & CStr(Day(dBeginTime)),2) _
& " " & Right("00" & CStr(Hour(dBeginTime)),2) _
& ":" & Right("00" & CStr(Minute(dBeginTime)),2) _
& ":" & Right("00" & CStr(Second(dBeginTime)),2)
sEndTime = CStr(Year(dEndTime)) _
& "-" & Right("00" & CStr(Month(dEndTime)),2) _
& "-" & Right("00" & CStr(Day(dEndTime)),2) _
& " " & Right("00" & CStr(Hour(dEndTime)),2) _
& ":" & Right("00" & CStr(Minute(dEndTime)),2) _
& ":" & Right("00" & CStr(Second(dEndTime)),2)
无论成与败,无论甜与苦,我还是我。
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
wincc全局脚本生成Excel日报表的问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。