组态王报表演示说明.doc
《组态王报表演示说明.doc》由会员分享,可在线阅读,更多相关《组态王报表演示说明.doc(10页珍藏版)》请在冰点文库上搜索。
报表演示说明
1、本演示分为日报、月报、年报
2、日报的生成:
对于日报可以每小时输入一个数据,然后进行统计后每天生成一个报表
日报生成的命令语言见事件命令语言的条件为:
$分==0&&$秒==0,消失时
注意:
a、报表函数命令执行时报表控件所在的画面必须打开,因此对于画面不多的
情况下可以在工程运行时将后台处理画面打开并隐含起来,同时所有其它的画
面属性都应为覆盖式。
如果画面较多无法全部将画面属性设为覆盖式则可以在
报表命令语言执行前执行打开画面的命令
b、在新的一天开始时需要使用新的报表文件,因此需要在调用前需要判断当
天的报表文件是否已经创建,如果没有创建则需要进行创建
c、对于日报的统计主要针对每天持续运行的情况,对于不能保证持续运行的
现场可以参照月报的统计方式
b、报表的查询在日报查询页,可以对报表文件进行读取、删除等操作
{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;
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,\\本站点\水分);
ReportSaveAs("Report5",FileName1);
}
3、月报的生成
月报中需要每天的统计数据,该数据为每天的平均值,如果需要其它的统计数
据也可照此方法进行处理。
月报生成的命令语言函数讲事件命令语言的条件为:
$时==23,消失时,即当每天
结束时将当天的统计数据从日报表中读取后将其输入月报中对应的行中,并从月
报中读取汇总数据求出平均值写入平均值计算行
注意:
a、计算平均值时有一个关键计算变量为:
日计数,该变量统计实际每月记录的日期天数,该数据需要在每月开始时赋值为0
b、报表的查询在日报查询页,可以对报表文件进行读取、删除等操作
c、由于月报操作每天进行一次,因此月报后台处理画面只需操作时打开执行报表函数并在执行完成后关闭
d。
月报表的生成还可以采用年报表的生成方式产生,具体方法将年报表相关命令语言
{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("后台月报");
}
4、年报的生成:
年报中需要每月的统计数据,该数据为每月的平均值,如果需要其它的统计数
据也可照此方法进行处理。
由于年报查询次数较少,因此可以采用时候需要时手动生成的方式,将相关的月报调出然后将月报中的平均值读出依次输入到年报中即可
注意:
a、年报生成的命令语言函数在年报输入画面的确定按钮中,将月报数据从1到12结束进行判断
b.按钮设置在实际工程中应考虑到误删除或覆盖等操作
{stringFileName;
stringstr;
stringFileName1;
floatValue;
FileName1=InfoAppDir()+"报表\年报.rtl";
ReportLoad("年报",FileName1);
longhang;
floatmonth;
longfanhui;
hang=6;
month=1;
ShowPicture("后台月报");
HidePicture("后台月报");
while(month<=12)
{
FileName=InfoAppDir()+"月报\"+StrFromReal(\\本站点\查询年,0,"f")+StrFromReal(month,0,"f")+".rtl";
fanhui=InfoFile(Filename,1,\\本站点\$分);
if(fanhui==1)
{
ReportLoad("Report7",FileName);
str=StrFromReal(\\本站点\查询年,0,"f")+"年"+StrFromReal(month,0,"f")+"月";
ReportSetCellString("年报",hang,1,str);
Value=ReportGetCellValue("Report7",37,2);
ReportSetCellValue("年报",hang,2,Value);
Value=ReportGetCellValue("Report7",37,3);
ReportSetCellValue("年报",hang,3,Value);
Value=ReportGetCellValue("Report7",37,4);
ReportSetCellValue("年报",hang,4,Value);
Value=ReportGetCellValue("Report7",37,5);
ReportSetCellValue("年报",hang,5,Value);
Value=ReportGetCellValue("Report7",37,6);
ReportSetCellValue("年报",hang,6,Value);
Value=ReportGetCellValue("Report7",37,7);
ReportSetCellValue("年报",hang,7,Value);
Value=ReportGetCellValue("Report7",37,8);
ReportSetCellValue("年报",hang,8,Value);
Value=ReportGetCellValue("Report7",37,9);
ReportSetCellValue("年报",hang,9,Value);
Value=ReportGetCellValue("Report7",37,10);
ReportSetCellValue("年报",hang,10,Value);
Value=ReportGetCellValue("Report7",37,11);
ReportSetCellValue("年报",hang,11,Value);
hang=hang+1;
}
//将月报表中的统计数据(平均值)输入到年报表中
month=month+1;
}
hang=hang-6;
Value=ReportGetCellValue("年报",21,2);
Value=Value/hang;
ReportSetCellValue("年报",19,2,Value);
Value=ReportGetCellValue("年报",21,3);
Value=Value/hang;
ReportSetCellValue("年报",19,3,Value);
Value=ReportGetCellValue("年报",21,4);
Value=Value/hang;
ReportSetCellValue("年报",19,4,Value);
Value=ReportGetCellValue("年报",21,5);
Value=Value/hang;
ReportSetCellValue("年报",19,5,Value);
Value=ReportGetCellValue("年报",21,6);
Value=Value/hang;
ReportSetCellValue("年报",19,6,Value);
Value=ReportGetCellValue("年报",21,7);
Value=Value/hang;
ReportSetCellValue("年报",19,7,Value);
Value=ReportGetCellValue("年报",21,8);
Value=Value/hang;
ReportSetCellValue("年报",19,8,Value);
Value=ReportGetCellValue("年报",21,9);
Value=Value/hang;
ReportSetCellValue("年报",19,9,Value);
Value=ReportGetCellValue("年报",21,10);
Value=Value/hang;
ReportSetCellValue("年报",19,10,Value);
Value=ReportGetCellValue("年报",21,11);
Value=Value/hang;
ReportSetCellValue("年报",19,11,Value);
//将年报中的各月平均值计算后输入到年报平均值中
FileName1=InfoAppDir()+"年报\report"+StrFromReal(\\本站点\查询年,0,"f")+".rtl";
Reportsaveas("年报",FileName1);
//按照固定路径格式保存年报
ClosePicture("后台月报");
listClear("报表查询");
ListLoadFileName("报表查询",FileName1);
//刷新列表
ClosePicture("年报输入");
}
5、注意:
在工程路径下有四个关键文件夹,报表、日报、月报、年报
日报按钮功能:
(1)刷新列表
stringFileName;
FileName=InfoAppDir()+"日报\"+"*.rtl";
listClear("报表查询");
ListLoadFileName("报表查询",FileName);
(2)删除报表
stringFileName;
FileName=InfoAppDir()+"日报\"+\\本站点\报表名;
FileDelete(Filename);
stringFileName1;
FileName1=InfoAppDir()+"日报\*.rtl";
listClear("报表查询");
ListLoadFileName("报表查询",FileName1);
(3)查询日报
stringFileName;
FileName=InfoAppDir()+"日报\"+\\本站点\报表名;
ReportLoad("Report1",FileName);
(4)打印
ReportPrint2("Report1");
//ReportPrint2("Report1",0);可以在打印前弹出打印机选择窗口
(5)页面设置
ReportPageSetup("Report1");
(6)报表预览
ReportPrintSetup("Report1");
月报按钮功能:
(1)刷新列表
stringFileName;
FileName=InfoAppDir()+"月报\"+"*.rtl";
listClear("月报查询");
ListLoadFileName("月报查询",FileName);
(2)删除报表
stringFileName;
FileName=InfoAppDir()+"月报\"+\\本站点\报表名;
FileDelete(Filename);
stringFileName1;
FileName1=InfoAppDir()+"月报\*.rtl";
listClear("月报查询");
ListLoadFileName("月报查询",FileName1);
(3)月报查询
stringFileName;
FileName=InfoAppDir()+"月报\"+\\本站点\报表名;
ReportLoad("月报",FileName);
年报按钮功能:
(1)刷新列表
stringFileName1;
FileName1=InfoAppDir()+"年报\"+"*.rtl";
listClear("报表名");
ListLoadFileName("报表名",FileName1);
(2)读取报表
stringFileName;
FileName=InfoAppDir()+"年报\"+\\本站点\报表名;
ReportLoad("年报",FileName);
(3)删除报表
stringFileName;
FileName=InfoAppDir()+"年报\"+\\本站点\报表名;
FileDelete(Filename);
stringFileName1;
FileName1=InfoAppDir()+"年报\"+"*.rtl";
listClear("报表名");
ListLoadFileName("报表名",FileName1);
(4)生成新年报
stringFileName;
stringstr;
stringFileName1;
floatValue;
FileName1=InfoAppDir()+"报表\年报.rtl";
ReportLoad("年报",FileName1);
longhang;
floatmonth;
longfanhui;
hang=6;
month=1;
ShowPicture("后台月报");
HidePicture("后台月报");
while(month<=12)
{
FileName=InfoAppDir()+"月报\"+StrFromReal(\\本站点\查询年,0,"f")+StrFromReal(month,0,"f")+".rtl";
fanhu