用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例.doc

上传人:ng****60 文档编号:3165844 上传时间:2019-05-23 格式:DOC 页数:7 大小:45KB
下载 相关 举报
用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例.doc_第1页
第1页 / 共7页
用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例.doc_第2页
第2页 / 共7页
用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例.doc_第3页
第3页 / 共7页
用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例.doc_第4页
第4页 / 共7页
用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、用 VBS实现 WINCC的用户归档输出到 EXCEL表格的方法和例(2009-12-30 16:47:45) 用 VBS实现 WINCC的用户归档输出到 EXCEL表格的方法和例子程序求用 VBS实现 WINCC的用户归档输出到固定格式的 EXCEL表格的方法和例子程序!我主要问题在 SQL数据库的查询语句不会。看见论坛里有关用 VBS实现 EXCEL的数据查询和导出,我现在想要完成如下功能:每分钟将数据归档,用户可以输入任意的时刻时间查询从任意时刻开始的之后每隔 1小时的数据(有点像日报里的 24个小时)。我现在对于 VBS查询数据库的语句不懂,望大大赐教!谢谢 SQL查询语句Dim st

2、rc as stringstrc = “provider=WinCCOLEDBProvider.1;catalog=CC_RebdI_09_06_22_10_38_35R;data source=ComputerNameWinCC“ 这个连接字符串可以在 SQl2000中看到Dim cc1Set cc1=CreateObject(“adodb.connection“)cc1.ConnectionString=strc cc1.CursorLocation=3cc1.openDim rst As ObjectSet rst = CreateObject(“adodb.recordset“)dim

3、 ssql as stringssql = “Tag:R,Archive_3DB1DBD0,2009-7-29 00:00:00.0000,2009-7-29 23:59:59.999,timestep=3600,258“Archive_3I_DB1DBD0归档和变量2009-7-29 00:00:00.0000,2009-7-29 23:59:59.999时间段timestep=3600,258每阁多少秒拿一个数据(3600=1 小时),258表示每个时间段取最后一个数据rst.Open ssql, cc1这样查出来的数据就是一天的每小时的数据对 rst记录集处理就可以得到你要的数据=Fun

4、ction actionDim objExcelAppDim i,TimeM,TimeNow,TimeSSet TimeM=HMIRuntime.Tags(“TimeM“)i=1+TimeM.ReadTimeNow=CStr(Year(Now)#pragma code ()#pragma code(“Shell32.dll“)/调用动态链接库VOID ShellExecuteA(HWND, LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , INT);#pragma code()char FileName30 = “; char DateTime30 = “;SYS

5、TEMTIME sysTime;_object* pExcel = NULL; /建立 pExcel 指针 用来对 EXCEL 进行操作HWND handle=NULL;handle=FindWindow(NULL,“WinCC-运行系统 - “);GetLocalTime(sprintf(FileName,“d:Day_Report_%02d-%02d-%02d.xls“,sysTime.wYear,sysTime.wMonth,sysTime.wDay);pExcel = _object_create(“Excel.Application“);pExcel-Visible = 0;/控制生

6、成的 excel 文件是否可见,当 1 时,生成 excel文件时可见.pExcel-Workbooks -Open (“d:Day_Report.XLS“);pExcel-ActiveWorkbook-SaveAs(FileName);/存盘/pExcel-ActiveWorkbook-PrintPreview();/可以预览/pExcel-ActiveWorkbook-PrintOut();/直接打印pExcel-Workbooks-Close();/关闭文件pExcel-Quit();/退出 Excel_object_delete(pExcel);return 0;3、再写一个全局脚本,

7、整点触发,把你需要记录的变量写到“Day_Report 年月日.xls”相应的单元格里面并存盘;这样就完成了报表的数据存储和打印。也就是说,我们可以在电脑里面存放一份报表,并打印一份报表。同样也实现了数据的存储。相关脚本代码如下:(当时是以分钟来做测试的,仅供参考;注意此段代码缺少对其它 excel进程的判断,在此脚本执行前,不要有其它 excel应用!切记哦!呵呵。)#include “apdefap.h“int gscAction( void )int i;#pragma code (“kernel32.dll“)/调用动态链接库VOID GetLocalTime(LPSYSTEMTIME

8、 lpSystemTime);#pragma code ()#pragma code(“Shell32.dll“)/调用动态链接库VOID ShellExecuteA(HWND, LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , INT);#pragma code()char FileName30 = “;SYSTEMTIME sysTime;_object* pExcel = NULL; /建立 pExcel 指针 用来对 EXCEL 进行操作HWND handle=NULL;handle=FindWindow(NULL,“WinCC-运行系统 - “);Get

9、LocalTime(/*SetTagWord(“Minute“,sysTime.wMinute);i=GetTagWord(“Minute“)+3;if (i26) GetTagWord(“Minute“) ;else if (iVisible = 0;/控制生成的 excel 文件是否可见,当 1 时,生成 excel文件时可见.pExcel-Workbooks -Open (FileName);pExcel-Worksheets(“sheet1“)-Range(“X1“)-Value=GetTagChar(“ServerName“);/Return-Type: char* 读取当前计算机名

10、pExcel-Worksheets(“sheet1“)-Range(“X2“)-Value=GetTagChar(“CurrentUser“);/Return-Type: char* 读取当前操作员pExcel-Worksheets(“sheet1“)-Cells(6,i)-Value=GetTagChar(“TAG1“);pExcel-Worksheets(“sheet1“)-Cells(7,i)-Value=GetTagFloat(“TAG2“);pExcel-Worksheets(“sheet1“)-Cells(8,i)-Value=GetTagFloat(“TAG3“);pExcel-

11、Worksheets(“sheet1“)-Cells(9,i)-Value=GetTagFloat(“TAG4“);pExcel-Worksheets(“sheet1“)-Cells(10, i)-Value=GetTagFloat(“TAG5“);pExcel-Worksheets(“sheet1“)-Cells(11, i)-Value=GetTagFloat(“TAG6“);pExcel-ActiveWorkbook-Save;/As(FileName);/存盘/pExcel-ActiveWorkbook-PrintPreview();/可以预览/if (i=27) pExcel-ActiveWorkbook-PrintOut(); /直接打印pExcel-Workbooks-Close();/关闭文件pExcel-Quit();/退出 Excel_object_delete(pExcel);return 0;转自亿万论坛

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。