WINCC报表数据不是从第3行写?

有个往EXCEL里写数据的报表,VBS,是一天产生一个文件夹,但是现在出现这样一个怪事,从运行的第一天数据是从第3行写数据进去,比如写到第6行,当第二天的数据是从第7行开始写,前面6行是空的,也就是说下一天的数据开始写的行数就是上一天数据结束的那行开始,而不是从第3行开始,还一个问题就是下一天的数据的开始,比如是7月6号,那么第一个数据有的时候会是有一个7月5号的数据作为7月6号的开始第一个数据?这两个问题是出在哪里,请麻烦具体说说改哪里?
 int gscAction( void )
 {
 #pragma code ("kernel32.dll")
 VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
 #pragma code ()
 char FileName[25] = "",Date[2] = "";
 static int i=2;
 SYSTEMTIME sysTime;
 __object* pExcel = NULL; 
 __object* fso=NULL;
 GetLocalTime(&sysTime);
 sprintf(FileName,"e:\\%d年%d月%d日.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);
 sprintf(Date,"%d",sysTime.wDay);

 i++;

 pExcel = __object_create("Excel.Application");
 fso=__object_create("Scripting.FileSystemObject");
 pExcel->Visible = 0;
 if(!(fso->FileExists(FileName)))
 {
 pExcel->Workbooks ->Open ("e:\\book1.xls");
 pExcel->ActiveWorkbook->SaveAs(FileName);
 }
 __object_delete(fso);
 pExcel->Workbooks ->Open (FileName);

 
 pExcel->WorkSheets("sheet1")->Cells(i,1)->Value=GetTagChar("riqi");

 pExcel->WorkSheets("sheet1")->Cells(i,2)->Value=GetTagChar("shijian");

 pExcel->WorkSheets("sheet1")->Cells(i,3)->Value=GetTagDWord("补水"); //Return-Type: DWORD 

 pExcel->WorkSheets("sheet1")->Cells(i,4)->Value=GetTagDWord("供水");
  
 pExcel->WorkSheets("sheet1")->Cells(i,4)->Value=GetTagDWord("yali");
 pExcel->ActiveWorkbook->Save();pExcel->Workbooks->Close();
 pExcel->Quit();
 __object_delete(pExcel);/

最佳答案

经过测试发现应该是你的i没有复位造成的第一个问题,我估计你的Wincc一直在激活运行,到了00:00:00的时候日期更换了以后,但是是你的I还是继续I++,所以会在后一行更新,建议你在日期更换的时候复位一下I就应该可以解决这个问题。在这个地方增加一个i=2,
 if(!(fso->FileExists(FileName)))
 {
 i=2;
 pExcel->Workbooks ->Open ("e:\\book1.xls");
 pExcel->ActiveWorkbook->SaveAs(FileName);
 }

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午9:28
下一篇 2019年6月11日 上午9:28

相关推荐

  • MP277触摸屏如何快速恢复到出厂设置

    MP277触摸屏如何快速恢复到出厂设置 最佳答案 MP277OS更新(恢复出厂设置)的步骤如下:  1. HMI 设备上电,做好硬件通讯连接…

    SIMATIC WinCC 2019年6月11日
  • wincc中用c脚本函数获取i/o域的“提示文本”内容?

    wincc中用c脚本函数获取i/o域的“提示文本”内容?我想读取i/o域的提示文本内容然后把字符串传送到一个内部8位文本字符串变量中。读取i/o域的连接变量用GetLinkedVa…

    SIMATIC WinCC 2017年5月31日
  • 流量累加

    客户要求水泵流量,在上位机上体现实时流量,每小时流量累加,每天流量累加,每小时/每天/每月流量曲线图,流量数据可存档,汇总。对瞬时流量进行累加 用PLC做还是用在WINC…

    SIMATIC WinCC 2021年7月5日
  • wincc时间的问题

    在做WINCC历史数据及曲线的控件时,数据的时间都是根据操作系统的时间,而操作系统的时间又可以随便调整,严格的讲,这些数据对应的时间存在很大的风险,比如操作人员随意更改了系统时间,…

    SIMATIC WinCC 2019年6月11日
  • wincc7.0 与PC ACCESS SMART走OPC通信

    我做了个 实验程序,200smart PLC和wincc7.0 通过以太网走OPC通信,可以通讯上,遇到个问题,连上PLC后,在WINCC上&nbsp…

    SIMATIC WinCC 2017年5月31日
  • wincc例子下载

    请教各位,请问哪边有wincc的例子下载,我现在迫切需要学习,学wincc我现在感到无从下手,最主要的是打印功能,报警报表,曲线等等不知如何做。希望借鉴别人的例子学习学习。谢谢各位…

    SIMATIC WinCC 2019年6月11日
  • Wincc V14可以编辑TP177B这款触摸屏吗

    各位大神,小弟初次使用西门子产品。现在要改老产线的TP177B的触摸屏,不知道Wincc V14可以上传TP177B的程序修改吗?如果wincc v14不可以,…

    SIMATIC WinCC 2017年6月3日
  • 对象不支持该属性或方法

    Option Explicit Function action Dim nh nh=Hour(Time) Di…

    SIMATIC WinCC 2019年6月11日
  • wincc安装时Microsoft Message Queuing v5.0

    安装wincc是出现Microsoft Message Queuing v5.0缺失。按照已经说的方法:Microsoft Message&…

    SIMATIC WinCC 2019年6月11日
  • WINCC变量记录导出问题

    怎样可以才能把变量记录里面的英文给导出来,用复制只能一行一行复制,效率太慢。 图片说明:    最佳答案 你好,wincc是不支持导出该记录的。 提问者对于答案…

    2017年12月7日