组态王报表函数 点击:2699 | 回复:3



海南工控

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 71回
  • 年度积分:0
  • 历史总积分:123
  • 注册:2004年3月20日
发表于:2008-05-15 10:45:08
楼主

小弟新手,看不太明白这段指今,敬请高手指点.谢谢.

float Ayear;
float Amonth;
float Aday;
long x;
long y;
long Row;
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("Report0", 4, 1, 27, 6, " "); //清空单元格
ReportSetCellString("Report0", 2, 2, temp);//填写日期
//查询数据
StartTime=HTConvertTime(Ayear,Amonth,Aday,0,0,0);
ReportSetHistData("Report0", "\\本站点\压力", StartTime, 3600, "B4:B27");
ReportSetHistData("Report0", "\\本站点\温度", StartTime, 3600, "C4:C27");
ReportSetHistData("Report0", "\\本站点\密度", StartTime, 3600, "D4:D27");
ReportSetHistData("Report0", "\\本站点\电流", StartTime, 3600, "E4:E27");
ReportSetHistData("Report0", "\\本站点\电压", StartTime, 3600, "F4:F27");
//填写时间
x=0;
while(x<24)
{
row=4+x;
y=StartTime+x*3600;
temp=StrFromTime( y, 2 );
ReportSetCellString("Report0", row, 1, temp);
x=x+1;
}



楼主最近还看过



徐小波

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 147回
  • 年度积分:0
  • 历史总积分:259
  • 注册:2005年9月25日
发表于:2008-05-21 10:27:31
1楼
float Ayear;
float Amonth;
float Aday;
long x;
long y;
long Row;
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; //对选择日期的格式进行设置,应该为2008-05-21这种形式;
ReportSetCellString2("Report0", 4, 1, 27, 6, " "); //清空制定区域单元格
ReportSetCellString("Report0", 2, 2, temp);//填写日期到第二行,第二列;
//查询数据
StartTime=HTConvertTime(Ayear,Amonth,Aday,0,0,0); //转换位格林尼治时间
ReportSetHistData("Report0", "\\本站点\压力", StartTime, 3600, "B4:B27");
ReportSetHistData("Report0", "\\本站点\温度", StartTime, 3600, "C4:C27");
ReportSetHistData("Report0", "\\本站点\密度", StartTime, 3600, "D4:D27");
ReportSetHistData("Report0", "\\本站点\电流", StartTime, 3600, "E4:E27");
ReportSetHistData("Report0", "\\本站点\电压", StartTime, 3600, "F4:F27");
//填写时间
x=0;
while(x<24)
{
row=4+x;
y=StartTime+x*3600; //查询间隔是一个小时
temp=StrFromTime( y, 2 ); //将时间转换为字符串,格式为"12:00:00 AM"
ReportSetCellString("Report0", row, 1, temp); //从表格的第四行第一列起填充时间;
x=x+1;
}

lychang67

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 163回
  • 年度积分:0
  • 历史总积分:419
  • 注册:2001年2月12日
发表于:2008-05-21 11:00:59
2楼

楼主用过Excel就了解组态王报表控件了

该段代码是从历史库中取得压力、温度、密度等数据放入报表控件Report0中(Report0是报表控件名字,间隔一个小时),Report0的第一列是时间(格式为"12:00:00 AM"),第2列是压力,第3列温度。。。


 

海南工控

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 71回
  • 年度积分:0
  • 历史总积分:132
  • 注册:2004年3月20日
发表于:2008-05-22 14:19:23
3楼

多谢"徐工"的注示和 "lychang67 " 的讲解,,小弟第一次接触组态王,对组态王的函数还不太了解,以后还请你多指教.

笔敬


热门招聘
相关主题

官方公众号

智造工程师