WINCC使用C脚本生成EXCEL报表

使用论坛中提供的代码,在全局脚本中定时执行脚本,但是写入EXCEL的值都是0,不知道为何?
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
int i;
#pragma code ("kernel32.dll")//调用动态链接库
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
#pragma code ()
#pragma code("Shell32.dll")//调用动态链接库
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,"WinCC-运行系统 – ");
GetLocalTime(&sysTime);
//***********************************
SetTagWord("Minute",sysTime.wMinute);
i=GetTagWord("Minute")+3;
if (i>26) { GetTagWord("Minute") ;}
else if (i<=26) 
{
sprintf(FileName,"d:\\Day_Report_%02d-%02d-%02d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);
pExcel = __object_create("Excel.Application"); 
pExcel->Visible = 0;//控制生成的excel文件是否可见,当1时,生成excel文件时可见.
pExcel->Workbooks ->Open (FileName);
pExcel->Worksheets("sheet1")->Range("X1")->Value=GetTagChar("@ServerName");//Return-Type: char* 读取当前计算机名
pExcel->Worksheets("sheet1")->Range("X2")->Value=GetTagChar("@CurrentUser");//Return-Type: char* 读取当前操作员
pExcel->Worksheets("sheet1")->Cells(6,i)->Value=GetTagChar("GI-10001");
pExcel->Worksheets("sheet1")->Cells(7,i)->Value=GetTagFloat("GI-10002"); 
pExcel->Worksheets("sheet1")->Cells(8,i)->Value=GetTagFloat("GI-10003"); 
pExcel->Worksheets("sheet1")->Cells(9,i)->Value=GetTagFloat("GI-10004"); 
pExcel->Worksheets("sheet1")->Cells(10, i)->Value=GetTagFloat("GI-10005"); 
pExcel->Worksheets("sheet1")->Cells(11, i)->Value=GetTagFloat("GI-100016"); 
pExcel->ActiveWorkbook->Save;//As(FileName);//存盘~
//pExcel->ActiveWorkbook->PrintPreview();//可以预览
//if (i>=27) { pExcel->ActiveWorkbook->PrintOut(); }//直接打印
pExcel->Workbooks->Close();//关闭文件
pExcel->Quit();//退出Excel
__object_delete(pExcel); 
}
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
}

另外此段脚本的含义是什么?
SetTagWord("Minute",sysTime.wMinute);
i=GetTagWord("Minute")+3;
if (i>26) { GetTagWord("Minute") ;}
else if (i<=26)

最佳答案

http://www.52plc.net/read.php?tid=4596
参考这个,带注释的

SetTagWord("Minute",sysTime.wMinute);//wincc变量Minute写入当前系统时间的分钟值
i=GetTagWord("Minute")+3;//i=当前时间的分钟值+3
if (i>26) { GetTagWord("Minute") ;}//如果当前时间的分钟值+3大于26则读取保存的分钟值
else if (i<=26)//否则如果分钟值+3小于等于26则。。。。。。

提问者对于答案的评价:
谢谢您的解答,也感谢其他朋友的热心帮助。zhangli0能否将代码发到我的邮箱呢,我以前注册过,但是一直登录不上。394514773@qq.com .      这段程序原作者应该是使用的STEP7软件,而我使用的是PCS7所以对于GI-10001这些变量的地址写错了,改为变量归档中的实际地址后没有问题了。

最佳答案作者回复:
你直接到这个网站上去下载就好了,这是我上传的。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc192658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月15日 上午12:27
下一篇 2017年8月15日 上午12:27

相关推荐

  • WiCC安装出错

    在安装WinCCV6.2ASian时出识下列错误:请高手解决!1.Fatal error during initialization:N0 …

    SIMATIC WinCC 2019年6月10日
  • ODBC或ADO与数据库的关联

    我想通过VB脚本建立与数据库关联,将数据存入。1、西门子技术人员曾经暗示通过ODBC或ADO打开或关闭数据库的执行时间很长。因为我信息存储的时间间隔最短2S,所以想问一下能不能通过…

    SIMATIC WinCC 2019年6月11日
  • wincc初学者的资料

    我是位wincc初学者,公司用的是WINCC5.1的,我想开始学习,不知哪位有初学者的教程,最好是视频教程。先谢谢各位的帮忙了 最佳答案 楼主你要的winCC视频学习资料己发送至你…

    SIMATIC WinCC 2019年6月11日
  • fb41

    如何制作班报表,日报表,月报表,如何嵌入Excel报表,如何把wincc变量链接到Excel中.   fb41的比例,积分时间的系数 最佳答案 1、h…

    SIMATIC WinCC 2021年7月5日
  • WinCC Connectivity Pack

    这个组件是软件+授权还是单个的授权呀?能否提供一个参考的价格? 问题补充:明白了,也就是说装了这个组建之后,就可以用标准的SQL语言对数据库进行读取了吧?能读取历史数据库吗?如果是…

    SIMATIC WinCC 2019年6月11日
  • wincc全局脚本触发

    wincc全局脚本怎么设置,或是触发可以使全局脚本每个月1号0点执行一次,谢谢。 问题补充:是不是要建立两个脚本,一个脚本触发另一个脚本?能具体点吗 最佳答案 在编辑窗口上方的触发…

    SIMATIC WinCC 2017年6月19日
  • 各位专家麻烦帮我看看这WINCC是不是“亚洲版‘

    各位专家麻烦帮我看看这WINCC是不是“亚洲版‘ 最佳答案 WINCC 7.3以上部分亚洲版和欧洲版了,都是一个版本有中文 韩文 日文等语言显示的就是…

    SIMATIC WinCC 2017年5月28日
  • 怎么调整msgbox中两个按钮的位置?

    怎么调整msgbox中两个按钮的位置?我想让他们居中,谢谢! 图片说明:    最佳答案 这是msgbox函数定义好的,改动不了 提问者对于答案的评价:谢谢!

    2021年7月5日
  • WINCC6.0找不到声音编辑器HORN??

    我准备设置报警声音的时候突然发现没有HORN编辑器,之前因为没用所以没注意。这是怎么回事?是安装时的问题?但我装在自己的电脑里的WICC又都有 最佳答案 安装时悬择自定义安装,有个…

    SIMATIC WinCC 2019年6月11日
  • Wincc中的库的图片能不能加载到组态王中?

    我在组态王作画面,但组态王中的库图片太少.我想把Wincc中的图片加载到组态王中,请问能不能做到?如果能做到具体方法怎么实现?    &nb…

    SIMATIC WinCC 2019年6月11日