组态王月报表制作.docx
《组态王月报表制作.docx》由会员分享,可在线阅读,更多相关《组态王月报表制作.docx(9页珍藏版)》请在冰豆网上搜索。
组态王月报表制作
组态王报表制作
第一步,新建“后台处理”画面,其风格与后面的“日报”画面一致,只是少了一些按钮及组合图框。
如下图
报表控件为:
report5
第二步,新建“后台月报”画面,其风格与后面的“月报”画面一致,只是少了一些按钮及组合图框。
如下图
报表控件为:
report7
第三步:
执行指令生成日报及月报文件(后缀名为rtl,同时可生成.xls文件)
在“事件命令语言”中新建两个事件:
1、第一个事件为:
\\本站点\$分==0&&\\本站点\$秒==0
在该事件“消失时”写入如下脚本(该事件为每个小时写入一次数据):
stringFileName1=InfoAppDir()+"日报\"+StrFromReal(\\本站点\$年,0,"f")+"y"+StrFromReal(\\本站点\$月,0,"f")+"m"+StrFromReal(\\本站点\$日,0,"f")+".rtl";
//自定义变量
longreturn01=InfoFile(Filename1,1,\\本站点\$分);
//判断日报目录下是否已经有当天的报表文件了
if(return01==0)
{
stringFileName=InfoAppDir()+"报表\日报.rtl";
ReportLoad("Report5",FileName);
FileName=InfoAppDir()+"日报\"+StrFromReal(\\本站点\$年,0,"f")+"y"+StrFromReal($月,0,"f")+"m"+StrFromReal($日,0,"f")+".rtl";
ReportSaveAs("Report5",FileName);
}
//如果没有报表文件则从报表目录下调取模板创建报表文件
ReportLoad("Report5",FileName1);
ReportSetCellString("report5",3,10,\\本站点\$日期);
longhang=\\本站点\$时+6;//定义写入不同时间写入不同的行,将0点至1点的写入第六行,后面的往后加
stringtimestr=time(\\本站点\$时,0,0); //定义时间变量
ReportSetCellString("report5",hang,1,timestr);
ReportSetCellValue("report5",hang,2,\\本站点\颗粒物);
ReportSetCellValue("report5",hang,3,\\本站点\颗粒物折算);
ReportSetCellValue("report5",hang,4,\\本站点\SO2);
ReportSetCellValue("report5",hang,5,\\本站点\SO2折算);
ReportSetCellValue("report5",hang,6,\\本站点\NO2);
ReportSetCellValue("report5",hang,7,\\本站点\NO2折算);
ReportSetCellValue("report5",hang,8,\\本站点\流量);
ReportSetCellValue("report5",hang,9,\\本站点\O2);
ReportSetCellValue("report5",hang,10,\\本站点\温度);
ReportSetCellValue("report5",hang,11,\\本站点\水分);
//ReportSetCellString就是将变量数值写入到报表的那一列中
ReportSaveAs("Report5",FileName1);//将数据保存到报表中
2、第二个事件为:
\\本站点\$时==23
在该事件“消失时”写入如下脚本(该事件为每天写入一次数据):
stringreportname2=StrFromReal(\\本站点\$年,0,"f")+StrFromReal(\\本站点\$月,0,"f")+".rtl";
//====================
stringFileName;
//自定义变量
FileName=InfoAppDir()+"月报\"+reportname2;
longreturn02=InfoFile(Filename,1,\\本站点\$分);
ShowPicture("后台月报");
HidePicture("后台月报");
//判断月报目录下是否已经有当月的报表文件了
if(return02==0)
{
FileName=InfoAppDir()+"报表\月报.rtl";
ReportLoad("Roport7",FileName);
FileName=InfoAppDir()+"月报\"+reportname2;
Reportsaveas("Roport7",FileName);
\\本站点\日计数=0;
}
//如果当月的月报文件还没有产生则调入月报.rtl文件并按规定格式保存报表文件
FileName=InfoAppDir()+"月报\"+StrFromReal(\\本站点\$年,0,"f")+StrFromReal(\\本站点\$月,0,"f")+".rtl";
ReportLoad("Report7",FileName);
longhang;
hang=$日+5;
\\本站点\日计数=\\本站点\日计数+1;
stringstr;
longValue;
str=ReportGetCellString("Report5",3,10);
ReportSetCellString("Report7",hang,1,str);
Value=ReportGetCellValue("Report5",30,2);
ReportSetCellValue("Report7",hang,2,Value);
Value=ReportGetCellValue("Report5",30,3);
ReportSetCellValue("Report7",hang,3,Value);
Value=ReportGetCellValue("Report5",30,4);
ReportSetCellValue("Report7",hang,4,Value);
Value=ReportGetCellValue("Report5",30,5);
ReportSetCellValue("Report7",hang,5,Value);
Value=ReportGetCellValue("Report5",30,6);
ReportSetCellValue("Report7",hang,6,Value);
Value=ReportGetCellValue("Report5",30,7);
ReportSetCellValue("Report7",hang,7,Value);
Value=ReportGetCellValue("Report5",30,8);
ReportSetCellValue("Report7",hang,8,Value);
Value=ReportGetCellValue("Report5",30,9);
ReportSetCellValue("Report7",hang,9,Value);
Value=ReportGetCellValue("Report5",30,10);
ReportSetCellValue("Report7",hang,10,Value);
Value=ReportGetCellValue("Report5",30,11);
ReportSetCellValue("Report7",hang,11,Value);
//将日报表中的统计数据(平均值)输入到月报表中
Value=ReportGetCellValue("Report7",39,2);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,2,Value);
Value=ReportGetCellValue("Report7",39,3);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,3,Value);
Value=ReportGetCellValue("Report7",39,4);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,4,Value);
Value=ReportGetCellValue("Report7",39,5);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,5,Value);
Value=ReportGetCellValue("Report7",39,6);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,6,Value);
Value=ReportGetCellValue("Report7",39,7);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,7,Value);
Value=ReportGetCellValue("Report7",39,8);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,8,Value);
Value=ReportGetCellValue("Report7",39,9);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,9,Value);
Value=ReportGetCellValue("Report7",39,10);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,10,Value);
Value=ReportGetCellValue("Report7",39,11);
Value=Value/\\本站点\日计数;
ReportSetCellValue("Report7",37,11,Value);
//将累计值转换为平均值
Reportsaveas("Report7",FileName);
ClosePicture("后台月报");
第四步、新建“日报”“月报”这几个画面
1、在“日报”中放置一个报表控件、一简单组合框控件及几个按钮,如下图:
其中
(1)、报表控件名为:
report1
(2)、组合图框名为:
日报查询 变量名为:
日报表
(3)、“刷新列表”按钮在“命令语言链接—弹起时”写入如下脚本
stringFileName; //定义变量
FileName=InfoAppDir()+"日报\"+"*.rtl"; //日报表存放路径,InfoAppDir()为程序文件存放路径
listClear("日报查询"); //清除组合图框中的列表
ListLoadFileName("日报查询",FileName); //读取日报存放路径中的报表文件显示在组合图框中
(4)、“查询日报”按钮在“命令语言链接—弹起时”写入如下脚本
stringFileName; //定义变量
FileName=InfoAppDir()+"日报\"+\\本站点\日报表; //组合图框中选中的报表文件,,InfoAppDir()为程序文件存放路径,\\本站点\日报表为组合图框的变量名
ReportLoad("Report1",FileName); //将读取的报表显示在报表控件中
(5)、“打印”按钮在“命令语言链接—弹起时”写入如下脚本
ReportPrint2("Report1"); //使用ReportPrint2("Report1",0)指令,可以在打印前弹出打印机选择窗口
2、在“月报”中放置一个报表控件、一简单组合框控件及几个按钮,如下图:
其中
(1)、报表控件名为:
月报
(2)、组合图框名为:
月报查询 变量名为:
报表名
(3)、“刷新列表”按钮在“命令语言链接—弹起时”写入如下脚本
stringFileName; //定义变量
FileName=InfoAppDir()+"月报\"+"*.rtl"; //月报表存放路径,InfoAppDir()为程序文件存放路径
listClear("月报查询"); //清除组合图框中的列表
ListLoadFileName("月报查询",FileName); //读取月报存放路径中的报表文件显示在组合图框中
(4)、“查询日报”按钮在“命令语言链接—弹起时”写入如下脚本
stringFileName; //定义变量
FileName=InfoAppDir()+"月报\"+\\本站点\报表名; //组合图框中选中的报表文件,,InfoAppDir()为程序文件存放路径,\\本站点\报表名为组合图框的变量名
ReportLoad("月报",FileName); //将读取的报表显示在报表控件中
(5)、“打印”按钮在“命令语言链接—弹起时”写入如下脚本
ReportPrint2("月报"); //使用ReportPrint2("月报",0)指令,可以在打印前弹出打印机选择窗口
运行程序即可获取报表了