77范文网 - 专业文章范例文档资料分享平台

在wincc 中怎么做才能把报表生成按日期的Excel 文件

来源:网络收集 时间:2020-04-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

在wincc 中怎么做才能把报表生成按日期的Excel 文件

VBS脚本实现,就是把文件名称以变量的形式表示。参考 '关闭保存

Dim patch,filename

filename=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))&CStr(Hour(Now))+CStr(Minute(Now))&CStr(Second(Now)) patch= \

objExcelApp.ActiveWorkbook.SaveAs patch objExcelApp.Workbooks.Close objExcelApp.Quit Set objExcelApp= Nothing

对于Excel报表,用VBS最灵活,Excel 定义好格式后wincc来填空,平均累计值就用Excel 的功能。 Dim excelapp Dim aa,bb,cc

Set excelapp = CreateObject(\Set aa = HMIRuntime.tags(\excelapp.visible = False'True

excelapp.workbooks.open \bb = Now 'getcurrent_datetime() aa.Read MsgBox CStr(bb)

excelapp.cells(1,1).value = \excelapp.cells(1,2).value = CStr(bb) excelapp.cells(2,2).value = CStr(aa.value) excelapp.cells(3,2).value = CInt(aa.value) excelapp.cells(4,2).value = CSng(aa.value) excelapp.cells(5,2).value = CDbl(aa.value) excelapp.cells(6,2).value = CLng(aa.value)

excelapp.cells(3,3).value = ScreenItems(\excelapp.cells(4,4).value = ScreenItems(\

cc = \tr(bb), 12, 2)+ Mid(CStr(bb), 15, 2)+ Mid(CStr(bb), 18, 2) + \MsgBox cc

excelapp.DisplayAlerts = False '对打开的文件,直接保存时,避免弹出对话框窗口,而是直接覆 盖

excelapp.activeworkbook.saveas cc '根据当前日期时间,另存为新的文件 'excelapp.activeworkbook.save ’对打开的文件,直接保存

'excelapp.activeworkbook.saveAs \excelcopy.xls\直接另存为新的文件 excelapp.workbooks.close excelapp.quit

Set excelapp = Nothing

这个报表的数据采集没有难度;唯一的难度在于4班3 倒后,每个月班的出勤日是不一样的,这样对 于月报来说,计算出本月每个班的出勤日是需要些算法的。这个报表用WinCC完全可以实现。关键就

是如何存储数据。

方法一 WinCC 支持VBS 脚本,其实通过VBS 和VB本质是没有区别的,都是通过ADO 方式,存储数据 格 式化数据的存储。WinCC的用户归档说白了 就是WinCC提供的一个操作数据库表的工具。我们可以 通过用户归档,创建数据库表。然后存储数据。显示的话通过报表系统的连接外部ODBC数据库,通过 SQL 脚本格式化输出。就ok了。

方法二这个报表的关键就在于如何确定班别和数据之间的关系。四班三运转在连续生产的行业是很常 见的。

首先确定班别和数据的对应关系。

在WinCC 归档的方式中有一种是通过事件触发的。

那么我们可以通过不同的用户登录来确定归档的启动或者停止,

WinCC中对应一个变量可以生成几个归档变量,那么我们就能确定班次和数据的关系。比如:一个变 量A,在归档中我们可以建两个归档变量和它对应,一个是aa,一个是bb。A班用户登录时启动aa的 归档,停止bb 的归档;B班用户登录时启动bb 归档,停止aa 归档,依次类推。

至于得到数据的方法,可以使用WinCC的标准归档查询实现。数据的显示,通过WinCC 报表的变量直 接连接显示。

觉得和VB相比,方法各有千秋。但是这样就省去了多加一个应用程序了。

WinCC里面做复杂报表的方法。WinCC 自带的报表编辑器确实功能有限,还好WinCC 本身功能是强大 的,可以通过脚本来完成复杂报表功能。目前我也是这么做的。报表的思路如下:

1、用excel我们也做一个符合自己实际需要报表(日报)的空白模板,我称它为Day_Report.xls; 相信各位大侠的excel表格都比我做的精美;我不懂关系数据库,但各位大侠肯定比我精通excel 各

单元格之间的加、减、乘、除,甚至更加复杂的运算,并把运算结果放在你需要放置的单元格内,关 系数据之间的运算,要在excel模板里面预先设置好。我们要充分利用excel强大的数据处理能力!!! 2、在WinCC 里面写一个全局脚本,在每天的00:00:01触发,执行复制Day_Report.xls并以此刻 的年月日加载到模板文件名里面,将复制新生产的“Day_Report年月日.xls”存盘到你指定的目录。 这样当天的空白日报文件也就有了。全局脚本代码如下:(本人测试通过,仅供参考) #include \int gscAction( void ) {

#pragma code (\调用动态链接库 VOID GetLocalTime(LPSYSTEMTIME lpSystemTime); #pragma code ()

#pragma code(\调用动态链接库

VOID ShellExecuteA(HWND, LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , INT); #pragma code()

char FileName[30] = \SYSTEMTIME sysTime;

__object* pExcel = NULL; //建立 pExcel 指针 用来对 EXCEL 进行操作 HWND handle=NULL;

handle=FindWindow(NULL,\运行系统 - \GetLocalTime(&sysTime);

sprintf(FileName,\me.wDay);

pExcel = __object_create(\

pExcel->Visible = 0;//控制生成的excel 文件是否可见,当1 时,生成excel文件时可见. pExcel->Workbooks ->Open (\pExcel->ActiveWorkbook->SaveAs(FileName);//存盘 //pExcel->ActiveWorkbook->PrintPreview();//可以预览 //pExcel->ActiveWorkbook->PrintOut();//直接打印 pExcel->Workbooks->Close();//关闭文件 pExcel->Quit();//退出Excel __object_delete(pExcel); return 0; }

3、再写一个全局脚本,整点触发,把你需要记录的变量写到“Day_Report年月日.xls”相应的单 元格里面并存盘;这样就完成了报表的数据存储和打印。也就是说,我们可以在电脑里面存放一份报 表,并打印一份报表。同样也实现了数据的存储。

相关脚本代码如下:(当时是以分钟来做测试的,仅供参考;注意此段代码缺少对其它excel进程的 判断,在此脚本执行前,不要有其它excel应用!切记哦!!!呵呵。) #include \int gscAction( void ) { int i;

#pragma code (\调用动态链接库

VOID GetLocalTime(LPSYSTEMTIME lpSystemTime); #pragma code ()

#pragma code(\调用动态链接库

VOID ShellExecuteA(HWND, LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , INT); #pragma code() char FileName[30] = \SYSTEMTIME sysTime;

__object* pExcel = NULL; //建立 pExcel 指针 用来对 EXCEL 进行操作 HWND handle=NULL;

handle=FindWindow(NULL,\运行系统 - \GetLocalTime(&sysTime); //*********************************** SetTagWord(\i=GetTagWord(\if (i>26) { GetTagWord(\else if (i<=26) {

sprintf(FileName,\me.wDay);

pExcel = __object_create(\

pExcel->Visible = 0;//控制生成的excel 文件是否可见,当1 时,生成excel文件时可见. pExcel->Workbooks ->Open (FileName);

pExcel->Worksheets(\

e: char* 读取当前计算机名

pExcel->Worksheets(\pe: char* 读取当前操作员

pExcel->Worksheets(\pExcel->Worksheets(\pExcel->Worksheets(\pExcel->Worksheets(\pExcel->Worksheets(\pExcel->Worksheets(\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; }

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库在wincc 中怎么做才能把报表生成按日期的Excel 文件在线全文阅读。

在wincc 中怎么做才能把报表生成按日期的Excel 文件.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/975936.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: