z62678667
级别: 探索解密
精华主题: 0
发帖数量: 39 个
工控威望: 146 点
下载积分: 945 分
在线时间: 80(小时)
注册时间: 2017-05-18
最后登录: 2024-09-27
查看z62678667的 主题 / 回贴
楼主  发表于: 2017-10-10 11:12
用组态王事件命令控制自动生成报表时发现问题
预期效果是:每到整点时间,报表自动读取历史数据,生成报表,并保存到文件夹。
实际效果是:必须把组态王打开到报表界面时,当整点时间一到自动生成报表并保存文件,处于其他界面时(比如控制界面),整点时间到不能生成报表。
但是实际生产过程中不可能一直处于报表界面,另外有两个报表界面,即使一直处于一个报表,另一个也不能生成。效果还不如在报表界面用控件生成。
请教各位是否有解决方案

————————————————————————
事件命令如下:
条件:\\本站点\$分==0
命令:
long StartTime;

StartTime=HTConvertTime(\\本站点\$,\\本站点\$,\\本站点\$,0,0,0);

{

ReportSetHistData("日报","\\本站点\一号温度1", StartTime,3600, "b4:b27");

ReportSetHistData("日报","\\本站点\一号温度2", StartTime,3600, "c4:c27");

ReportSetHistData("日报","\\本站点\一号温度3", StartTime,3600, "d4:d27");

ReportSetHistData("日报","\\本站点\一号温度4", StartTime,3600, "e4:e27");

string datatime;

datatime=StrFromTime( StartTime,1);

string strtime;

long hang;

hang=4;

while (hang<=27)

{strtime=StrFromTime( StartTime, 3);

ReportSetCellString("日报",hang, 1, strtime);

hang=hang+1;

StartTime=StartTime+3600;}

}

\\本站点\year=StrFromInt(\\本站点\$, 10 );

if (\\本站点\$<10)

{

\\本站点\month="0"+StrFromInt(\\本站点\$,10 );

}

else

{

\\本站点\month=StrFromInt(\\本站点\$,10 );

}

if (\\本站点\$<10)

{

\\本站点\data="0"+StrFromInt(\\本站点\$, 10 );

}

else

{

\\本站点\data=StrFromInt(\\本站点\$, 10 );

}

string filename1="d:\报表\"+\\本站点\year+\\本站点\month+\\本站点\data+"一号日报表.xls";

string filename2="d:\报表\"+\\本站点\year+\\本站点\month+\\本站点\data+"一号日报表.rtl";

ReportSaveAs("日报",filename1);

ReportSaveAs("日报",filename2);
shixinhua
我可以不赢,但我不可以再输
级别: 工控侠客
精华主题: 0
发帖数量: 321 个
工控威望: 3068 点
下载积分: 834 分
在线时间: 483(小时)
注册时间: 2017-03-24
最后登录: 2024-11-15
查看shixinhua的 主题 / 回贴
1楼  发表于: 2017-10-10 16:48
补充:报表的画面要打开一遍,否则报表不运行
本帖最近评分记录:
  • 下载积分:+1(z62678667) 真诚感谢!