组态王报表制作第一步,新建“后台处理”画面,其风格与后面的“日报”画面一致,只是少了一些按钮及组合图框。
如下图报表控件为:report5第二步,新建“后台月报”画面,其风格与后面的“月报”画面一致,只是少了一些按钮及组合图框。
如下图报表控件为:report7第三步:执行指令生成日报及月报文件(后缀名为rtl,同时可生成.xls文件)在“事件命令语言”中新建两个事件:1、第一个事件为:\\本站点\$分==0&&\\本站点\$秒==0在该事件“消失时”写入如下脚本(该事件为每个小时写入一次数据):string FileName1=InfoAppDir()+"日报\"+ StrFromReal(\\本站点\$年, 0, "f")+"y"+StrFromReal(\\本站点\$月, 0, "f")+"m"+StrFromReal(\\本站点\$日, 0, "f" )+".rtl";//自定义变量long return01=InfoFile( Filename1, 1,\\本站点\$分);//判断日报目录下是否已经有当天的报表文件了if (return01==0){string FileName=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,\\本站点\$日期);long hang=\\本站点\$时+6;//定义写入不同时间写入不同的行,将0点至1点的写入第六行,后面的往后加string timestr=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在该事件“消失时”写入如下脚本(该事件为每天写入一次数据):string reportname2=StrFromReal(\\本站点\$年, 0, "f" )+StrFromReal(\\本站点\$月, 0, "f" )+".rtl";//====================string FileName;//自定义变量FileName=InfoAppDir()+"月报\"+reportname2;long return02=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);long hang;hang= $日+5;\\本站点\日计数=\\本站点\日计数+1;string str;long Value;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);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/\\本站点\日计数;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)、“刷新列表”按钮在“命令语言链接—弹起时”写入如下脚本string FileName; //定义变量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)、“刷新列表”按钮在“命令语言链接—弹起时”写入如下脚本string FileName; //定义变量FileName=InfoAppDir()+"月报\"+"*.rtl"; //月报表存放路径,InfoAppDir()为程序文件存放路径listClear("月报查询"); //清除组合图框中的列表ListLoadFileName( "月报查询", FileName ); //读取月报存放路径中的报表文件显示在组合图框中(4)、“查询日报”按钮在“命令语言链接—弹起时”写入如下脚本stringFileName; //定义变量FileName=InfoAppDir()+"月报\"+\\本站点\报表名; //组合图框中选中的报表文件,,InfoAppDir()为程序文件存放路径,\\本站点\报表名为组合图框的变量名ReportLoad("月报",FileName); //将读取的报表显示在报表控件中(5)、“打印”按钮在“命令语言链接—弹起时”写入如下脚本ReportPrint2("月报"); //使用ReportPrint2("月报",0)指令,可以在打印前弹出打印机选择窗口运行程序即可获取报表了。