各位前辈,组态王做了个报表(历史数据查询),想着每天记录一次。现在测试发现记录的数据不对。(我是通过人为修改变量值即模拟值输入,以及修改计算机日期时间的形式)附上closeup脚本,前辈们看下是脚本问题还是我的测试方法不对,跪求指点。
if(XEn0==1&&YEn0==1){[A]201=SIf_singl;}//先测试201单只
float Ayear;
float Amonth;
float Aday;
long x;
long y;
long Col;
long StartTime;
string temp;
Ayear=ADate.Year;
Amonth=ADate.Month;
Aday=ADate.Day;
temp=StrFromInt( Ayear, 10 );
if(Amonth<10)
temp=temp+"-0"+StrFromInt( Amonth, 10 );
else
temp=temp+"-"+StrFromInt( Amonth, 10 );
if(Aday<10)
temp=temp+"-0"+StrFromInt( Aday, 10 );
else
temp=temp+"-"+StrFromInt( Aday, 10 );
\\本站点\选择日期=temp;
ReportSetCellString2("Report1", 3, 2, 7, 16, " "); //清空单元格
//ReportSetCellString("Report1", 2, 2, temp);//填写日期,封存,没必要保留
//查询数据
StartTime=HTConvertTime(Ayear,Amonth,Aday,8,0,0);
ReportSetHistData("Report1", "\\本站点\[A]201", StartTime, 86400, "B3:P3");//每天记录一次
ReportSetHistData("Report1", "\\本站点\[A]202", StartTime, 86400, "B4:P4");
ReportSetHistData("Report1", "\\本站点\[A]203", StartTime, 86400, "B5:P5");
ReportSetHistData("Report1", "\\本站点\[A]204", StartTime, 86400, "B6:P6");
ReportSetHistData("Report1", "\\本站点\[A]205", StartTime, 86400, "B7:P7");
//填写时间
x=0;//定义为列号
while(x<16)//小于表格总列数,即要求的15天
{
Col=2+x;//第一列被占用
y=StartTime+x*86400;
temp=StrFromTime( y, 1 );//按控制面板日期显示
ReportSetCellString("Report1", 2, Col, temp);//此处修改liu2016.12.8,将日期填制第一行每一列
x=x+1;
}
没有看明白,下面是我写的脚本
\\本站点\终止时刻长整数30=HTConvertTime(\\本站点\$年,\\本站点\$月,\\本站点\$日,\\本站点\$时,0,0);
\\本站点\起始时刻长整数30=\\本站点\终止时刻长整数30-86400;
long jiange;
long hang;
string Lweizhi1;
string Lweizhi2;
string Lweizhi3;
jiange=\\本站点\终止时刻长整数30-\\本站点\起始时刻长整数30;
hang=jiange/3600+2;
\\本站点\填充行=StrFromInt( hang, 10 );
Lweizhi1="a2:a"+\\本站点\填充行;
Lweizhi2="b2:b"+\\本站点\填充行;
Lweizhi3="c2:c"+\\本站点\填充行;
ReportSetTime("Report6", \\本站点\起始时刻长整数30, 3600, Lweizhi1);
ReportSetHistData("Report6", "\\本站点\ff", \\本站点\起始时刻长整数30, 3600, Lweizhi2);
ReportSetHistData("Report6", "\\本站点\dd", \\本站点\起始时刻长整数30, 3600, Lweizhi3);
每隔1小时,这是24小时内的报表。