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