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日

相关推荐

  • WINCC不能正常使用

    安装WINCC后发现WINCC无法正常使用,新建一个工程或者打开一个一个工程后,无法看到项目管理器.还有该软件也无法删除,删除时总会提示要重启电脑.重启电脑后,仍无法正常删除.请帮…

    SIMATIC WinCC 2019年6月11日
  • WINCC两台电脑监控5台200PLC

    现场有5台200的PLC,本来是用一台电脑监控的,走的是OPC通信,5611卡+ACCESS+DP头。现在客户要求用两台电脑来监控,一台放现场,一台放到办公室,请问两台电脑同时监控…

    SIMATIC WinCC 2019年6月11日
  • 关于报警和变量记录问题

    我用的是WINCC 5.0 SP2 ,存在以下问题:1、当把启动参数中,报警记录运行系统选上时,项目就无法激活.2、变量记录打开时告诉我"数…

    SIMATIC WinCC 2019年6月11日
  • 打开项目问题

    从别的机子考过来的项目 在我的机子上打开时提示要用项目拷贝起拷贝 ,拷贝完了 还是打不开这个项目 请教高手解答 问题补充:说错了 …

    SIMATIC WinCC 2019年6月11日
  • wincc6.0中做的画中画,小画面不显示

    各位前辈,我在wincc6.0中做画中画,激活后小画面不能显示是怎么回事,请教了,谢谢!另外,在对按钮进行鼠标动作“直接连接”时 “源”的常数0和1代表什么含义(什么情况…

    SIMATIC WinCC 2019年6月11日
  • 关于wincc服务器PC的操作系统

    请问: 做服务器的PC必须装Server版操作系统吗? 普通的XP操作系统不行吗? 问题补充:  我的客户机SCADA 3台+ w…

    SIMATIC WinCC 2019年6月11日
  • wincc advanced v14 sp1 实现中英文切换后,如何切换字体

    文本域中  ,中文字体 和英文字体的空间,明显不一样,  怎么切英文后,改变字体。 最佳答案 不同语言设置字体大小我们在组态多语言…

    SIMATIC WinCC 2021年7月5日
  • wincc6.2授权

    哪里能下到啊? 最佳答案 建议在WEB迅雷上找一找,那里比较多. 提问者对于答案的评价:有

    SIMATIC WinCC 2019年6月11日
  • wincc activate

    wincc  activate后不能运行到画面,停止不动了????? 最佳答案 在项目管理器左边栏目的最上边右击“计算机”,选择“属性”,在弹出的窗口中选择“启…

    SIMATIC WinCC 2019年6月11日
  • WINCC项目不能激活

    为什么我的项目当激活的时候每次运行到70%的时候就不在激活了,停那不动了,请问怎么解决啊。谢谢了 问题补充:是每个项目都激活到70%都停那不动了 最佳答案 不能激活的原因不外乎是:…

    SIMATIC WinCC 2019年6月11日