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日
下一篇 2019年6月11日

相关推荐

  • wincc7.0 sp3与操作系统兼容的问题

    各位老师你们好,小弟在此跟各位大侠们请教一下,我现在在工作站上安装XP SP3 然后安装wincc v7.0 sp3做组态服务器,但是我看官…

    SIMATIC WinCC 2019年6月10日
  • 无限提示重启

    安装wincc 7.3,每次在SQL都出现重启。“开始–运行–输入regedit–删除HKEY_LOCAL_MACHINE&#8211…

    2021年7月5日
  • winCC7.0 SP3读取VB6.0的数据

    winCC7.0 SP3读取VB6.0的数据,最好提供文档或者索引 问题补充:我想请教GetTagRaw获取原始数据,如何拆分。有个样例最好 最佳答案 此回答已完善 vb…

    SIMATIC WinCC 2021年7月5日
  • 两套S7-200通过PPI协议与WINCC通讯的问题

    该项目是工控机上CP5611卡通过DP线连接了两套CPU226,1#CPU226的通讯始终正常,2#CPU226的通讯时而会不通。我在两套CPU中分别测试观察了一个实数变量,发现把…

    SIMATIC WinCC 2021年7月5日
  • WINCC无法连接

    用镜像还原的电脑,打开程序后可在线检测,但是WINCC无法连接,请问wincc需要做哪些设置? 钻石用户推荐最佳答案 1、WINCC驱动里面选择的连接参数对不对2、PLC的IP地址…

    SIMATIC WinCC 2021年7月5日
  • WinCC手动修改历史数据

    重新用wincc做了系统,希望能把以前的wincc系统的变量记录导入到该wincc数据库中,换句话说,希望新系统中能有原来的变量历史记录,不知道有没有什么办法来实现。 最佳答案 如…

    SIMATIC WinCC 2019年6月11日
  • TIA Portal 的序列化 反序列化是否有C#实现,或者其他PC高级语言?

    TIA Portal 的序列化 反序列化虽然占据大量数据,但是可用于优化DB,而且结构体变化也可以,socket 用起来比较方便,打算做配方…

    SIMATIC WinCC 2020年11月1日
  • 如何将一个数组的中的数赋值给另一个数组

    求大神教教:wincc中,从OPC接收到的一组不确定具体个数的数据怎么样单个提出来给另一个数组处理(可能还要对数据的个数进行计算),因为我要把接收的数据的数据类型全转换成统一的形式…

    SIMATIC WinCC 2021年7月5日
  • 显示值跳变

    wincc运行中显示的模拟量值出现跳变:两个值相差接近一半,但有一个值是正确的。用编程软件s7监控却是正确的。请高手解疑! 问题补充:刚开始出现了一个,我在WINCC中的变量表中把…

    SIMATIC WinCC 2019年6月11日
  • Wincc如何做权限登录

    如题,如果不使用ID登陆时,可以查看各系统,但是无法对参数设定,开关机等功能。 最佳答案 由函数PWRTLogin()来执行登录。1,下面是如何使用该函数的实例:#pragma&n…

    SIMATIC WinCC 2019年6月11日