第八讲报表系统在本课程您将:Ì掌握实时报表的创建过程Ì掌握历史报表的创建、查询过程第一节概述数据报表的用途数据报表是反应生产过程中的过程数据、运行状态等,并对数据进行记录、统计的一种重要工具,是生产过程必不可少的一个重要环节。它既能反应系统实时的生产情况又能对长期的生产过程数据进行统计、分析,使管理人员能够掌握和分析生产过程情况。组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。既可以制作实时报表又可以制作历史报表。另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。第二节实时数据报表创建实时数据报表实时数据报表创建过程如下:6、新建一画面,名称为:实时数据报表画面。7、选择工具箱中的工具,在画面上输入文字:实时数据报表。3、选择工具箱中的工具,在画面上绘制一实时数据报表窗口,如图8-1所示:图8-1“报表工具箱”会自动显示出来,双击窗口的灰色部分,弹出“报表设计”对话框,如图8-2所示:图8-2对话框设置如下:报表控件名:Report1行数:6列数:104、输入静态文字:选中A1到J1的单元格区域,执行“报表工具箱”中的“合并单元格”命令并在合并完成的单元格中输入:实时数据报表演示。利用同样方法输入其它静态文字,如图8-3所示:图8-35、插入动态变量:合并B2和C2单元格,并在合并完成的单元格中输入:=\\本站点\$日期。(变量的输入可以利用“报表工具箱”中的“插入变量”按钮实现)利用同样方法输入其它动态变量,如图8-4所示:图8-4注:如果变量名前没有添加“=”符号的话此变量被当作静态文字来处理。6、单击“文件”菜单中的“全部存”命令,保存您所作的设置。7、单击“文件”菜单中的“切换到VIEW”命令,进入运行系统。系统默认运行的画面可能不是您刚刚编辑完成的“实时数据报表画面”,您可以通过运行界面中“画面”菜单中的“打开”命令将其打开后方可运行,如图8-5所示:图8-5实时数据报表打印一、实时数据报表自动打印设置过程如下:1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表自动打印。2、在按钮的弹起事件中输入如下命令语言,如图8-6所示:图8-63、单击“确认”按钮关闭命令语言编辑框。当系统处于运行状态时,单击此按钮数据报表将被打印出来。二、实时数据报表手动打印设置过程如下:1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表手动打印。2、在按钮的弹起事件中输入如下命令语言,如图8-7所示:图8-78、单击“确认”按钮关闭命令语言编辑框。9、当系统处于运行状态时,单击此按钮,弹出“打印属性”对话框,如图8-8所示:图8-85、在“打印属性”对话框中做相应设置后,单击“确定”按钮,数据报表将被打印出来。三、实时数据报表页面设置过程如下:1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表页面设置。2、在按钮的弹起事件中输入如下命令语言,如图8-9所示:图8-93、单击“确认”按钮关闭命令语言编辑框。4、当系统处于运行状态时,单击此按钮,弹出“页面设置”对话框,如图8-10所示:图8-1010、在“页面设置”对话框中对报表的页面属性做相应设置后,单击“确定”按钮,完成报表的页面设置。四、实时数据报表打印预览设置过程如下:1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表打印预览。2、在按钮的弹起事件中输入如下命令语言,如图8-11所示:图8-113、单击“确认”按钮关闭命令语言编辑框。4、当系统处于运行状态时,页面设置完毕后,单击此按钮,系统会自动隐藏组态王的开发系统和运行系统窗口,并进入打印预览窗口,如图8-12所示:图8-1211、在打印预览窗口中使用打印预览查看打印后的效果,单击“关闭”按钮结束预览,系统自动恢复组态王的开发系统和运行系统窗口。实时数据报表的存储实现以当前时间作为文件名将实时数据报表保存到指定文件夹下的操作过程如下:1、在当前工程路径下建立一文件夹:实时数据文件夹。2、在“实时数据报表画面”中添加一按钮,按钮文本为:保存实时数据报表。3、在按钮的弹起事件中输入如下命令语言,如图8-13所示:图8-13命令语言如下所示:stringfilename;filename=InfoAppDir()+\实时数据文件夹\+StrFromReal(\\本站点\$年,0,f)+StrFromReal(\\本站点\$月,0,f)+StrFromReal(\\本站点\$日,0,f)+StrFromReal(\\本站点\$时,0,f)+StrFromReal(\\本站点\$分,0,f)+StrFromReal(\\本站点\$秒,0,f)+.rtl;ReportSaveAs(Report1,filename);5、单击“确认”按钮关闭命令语言编辑框。当系统处于运行状态时,单击此按钮数据报表将以当前时间作为文件名保存实时数据报表。实时数据报表的查询利用系统提供的命令语言可将实时数据报表以当前时间作为文件名保存在指定的文件夹中,对于已经保存到文件夹中的报表文件如何在组态王中进行查询呢?下面将介绍一下实时数据报表的查询过程:利用组态王提供的下拉式组合框与一报表窗口控件可以实现上述功能。1、在工程浏览器窗口的数据词典中定义一个内存字符串变量:变量名:报表查询变量变量类型:内存字符串初始值:空2、新建一画面,名称为:实时数据报表查询画面。3、选择工具箱中的工具,在画面上输入文字:实时数据报表查询。4、选择工具箱中的工具,在画面上绘制一实时数据报表窗口,控件名称为:Report2。5、选择工具箱中的工具,在画面上插入一“下拉式组合框”控件,控件属性设置如图8-14所示:图8-146、在画面中单击鼠标右键,在画面属性的命令语言中输入如下命令语言,如图8-15所示:图8-15命令语言如下所示:stringfilename;filename=InfoAppDir()+\实时数据文件夹\*.rtl;listClear(List1);ListLoadFileName(List1,filename);上述命令语言的作用是将已经保存到“当前组态王工程路径下实时数据文件夹”中的实时报表文件名称在下拉式组合框中显示出来。7、在画面中添加一按钮,按钮文本为:实时数据报表查询。8、在按钮的弹起事件中输入如下命令语言,如图8-16所示:图8-16命令语言如下所示:stringfilename1;stringfilename2;filename1=InfoAppDir()+\实时数据文件夹\+\\本站点\报表查询变量;ReportLoad(Report2,filename1);filename2=InfoAppDir()+\实时数据文件夹\*.rtl;listClear(List1);ListLoadFileName(List1,filename2);上述命令语言的作用是将下拉式组合框中选中的报表文件的数据显示在Report2报表窗口中,其中\\本站点\报表查询变量保存了下拉式组合框中选中的报表文件名。9、设置完毕后单击“文件”菜单中的“全部存”命令,保存您所作的设置。10、单击“文件”菜单中的“切换到VIEW”命令,运行此画面。当您单击下拉式组合框控件时保存在指定路径下的报表文件全部显示出来,选择任一报表文件名,单击“实时数据报表查询”按钮后此报表文件中的数据会在报表窗口中显示出来,从而达到了实时数据报表查询的目的。北京亚控科技发展有限公司20第1页共112页北京亚控科技发展有限公第三节历史数据报表创建历史数据报表历史数据报表创建过程如下:1、新建一画面,名称为:历史数据报表画面。2、选择工具箱中的工具,在画面上输入文字:历史数据报表。3、选择工具箱中的工具,在画面上绘制一历史数据报表窗口,控件名称为:Report5,并设计表格,如图8-17所示:图8-17历史数据报表查询利用组态王提供的ReportSetHistData2函数可从组态王记录的历史库中按指定的起始时间和时间间隔查询指定变量的数据,设置过程如下:1、在画面中添加一按钮,按钮文本为:历史数据报表查询。2、在按钮的弹起事件中输入如下命令语言,如图8-18所示:司北京亚控科技发展有限公司第1页共112页北京亚控科技发展有限公司20图8-183、设置完毕后单击“文件”菜单中的“全部存”命令,保存您所作的设置。4、单击“文件”菜单中的“切换到VIEW”命令,运行此画面。单击“历史数据报表查询”按钮,弹出报表历史查询对话框,如图8-19所示:图8-19报表历史查询对话框分三个属性页:报表属性页、时间属性页、变量属性页。报表属性页:在报表属性页中您可以设置报表查询的显示格式,此属性页设置如图8-19所示。时间属性页:在时间属性页中您可以设置查询的起止时间以及查询的时间间隔,如图8-20所示:图8-20北京亚控科技发展有限公司第1页共112页北京亚控科技发展有限公司20变量属性页:在变量属性页中您可以选择欲查询历史数据的变量,如图8-21所示:图8-215、设置完毕后单击“确定”按钮,原料油液位变量的历史数据即可显示在历史数据报表控件中,从而达到了历史数据查询的目的,如图8-22所示:图8-22历史数据报表的其它应用一、1分钟数据报表演示利用报表窗口工具结合组态王提供的命令语言可实现一个1分钟的数据报表,设置过程如下:北京亚控科技发展有限公司第1页共112页北京亚控科技发展有限公司201、新建一画面,名称为:1分钟数据报表画面。2、选择工具箱中的工具,在画面上输入文字:1分钟数据报表。3、选择工具箱中的工具,在画面上绘制一报表窗口(64行5列),控件名称为:Report6,并设计表格,如图8-23所示:图8-234、在工程浏览器窗口左侧“工程目录显示区”中选择“命令语言”中的“数据改变命令语言”选项,在右侧“目录内容显示区”中双击“新建”图标,在弹出的编辑框中输入如下脚本语言,如图8-24所示:图8-24命令语言如下所示:当系统变量\\本站点\$秒变化时,执行该脚本程序北京亚控科技发展有限公司第1页共112页北京亚控科技发展有限公司20longrow;row=\\本站点\$秒+4;ReportSetCellString(Report6,2,2,\\本站点\$日期);ReportSetCellString(Report6,row,1,\\本站点\$时间);ReportSetCellValue(Report6,row,2,\\本站点\原料油液位);ReportSetCellValue(Report6,row,3,\\本站点\催化剂液位);ReportSetCellValue(Report6,row,4,\\本站点\成品油液位);If(row==4)ReportSetCellString2(Report6,5,1,63,5,);上述命令语言的作用是将\\本站点\原料油液位、\\本站点\催化剂液位和\\本站点\成品油液位变量每秒钟的数据自动写入报表控件中。5、设置完毕后单击“文件”菜单中的“全部存”命令,保存您所作的设置。6、单击“文件”菜单中的“切换到VIEW”命令,运行此画面。系统自动将数据写入报表控件中,如图8-25所示:图8-25二、1分钟数据查询报表演示(间隔时间为2秒钟)利用组态王历史数据查询函数ReportSetHistData()实现定时自动查询历史数据,并获取1分钟数据的平均值,设置过程如下:1、新建一画面,名称为:1分钟数据查询报表画面。北京亚控科技发展有限公司第1页共112页北京亚控科技发展有限公司202、选择工具箱中的工具,在画面上输入文字:1分钟数据查询报表。3、选择工具箱中的工具,在画面上绘制一报表窗口(33行5列),控件名称为:Report7,并设计表格,在如图8-26所示:图8-264、在报表窗口的b33单元格中填写“=Average('b3:b32')”,c33单元格中填写“=Average('c3:c3