报表系统-组态王报表系统


第八讲 统

报表系

在本课程您将:

? ?

掌握实时报表的创建过程 掌握历史报表的创建、查询过程

第一节 概述

数据报表的用途
数据报表是反应生产过程中的过程数据、 运行状态等, 并对数据进行记录、 统计的一种 重 要工具, 是生产过程必不可少的一个重要环节。 它既能反应系统实时的生产情况又能对长 期 的生产过程数据进行统计、分析,使管理人员能够掌握和分析生产过程情况。 组态王提供内嵌式报表系统, 工程人员可以任意设置报表格式, 对报表进行组态。 组态 王 为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。 既 可以制作实时报表又可以制作历史报表。 另外, 工程人员还可以制作各种报表模板, 实现 多次 使用,以免重复工作。

第二节 实时数据报表

创建实时数据报表
实时数据报表创建过程如下: 6、 新建一画面,名称为:实时数据报表画面。 7、 选择工具箱中的 3、选择工具箱中的 工具,在画面上输入文字:实时数据报表。 工具,在画面上绘制一实时数据报表窗口,如图 8-1 所示:

图 8-1 “报表工具箱”会自动显示出来, 双击窗口的灰色部分, 弹出“报表设计”对话框, 图 8-2 如 所示:

图 8-2 对话框设置如下: 报 表控件名: Report1 行 数:6 列数:10 4、 输入静态文字: 选中 A1 到 J1 的单元格区域, 执行“报表工具箱”中的“合并单元 格” 命令并在合并完成的单元格中输入:实时数据报表演示。 利用同样方法输入其它静态文字,如图 8-3 所示:

图 8-3

5、插入动态变量:合并 B2 和 C2 单元格,并在合并完成的单元格中输入:=\\本站点\$ 日期。(变量的输入可以利用“报表工具箱”中的“插入变量”按钮实现) 利用 同样方法输入其它动态变量,如图 8-4 所示:

图 8-4

注:如果变量名前没有添加“=”符号的话此变量被当作静态文字来处理。

6、单击“文件”菜单中的“全部存”命令,保存您所作的设置。 7、单击“文件”菜单中的“切换到 VIEW”命令,进入运行系统。系统默认运行的画 面可 能不是您刚刚编辑完成的“实时数据报表画面”,您可以通过运行界面中“画面”菜单 中的“打 开”命令将其打开后方可运行,如图 8-5 所示:

图 8-5

实时数据报表打印
一、实时数据报表自动打印设置过程如下: 1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表自动打印。

2、 在按钮的弹起事件中输入如下命令语言,如图 8-6 所示:

图 8-6 3、 单击“确认”按钮关闭命令语言编辑框。当系统处于运行状态时,单击此按钮数据 报 表将被打印出来。

二、实时数据报表手动打印设置过程如下: 1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表手动打印。 2、在按钮的弹起事件中输入如下命令语言,如图 8-7 所示:

图 8-7 8、 单击“确认”按钮关闭命令语言编辑框。 9、 当系统处于运行状态时,单击此按钮,弹出“打印属性”对话框,如图 8-8 所示:

图 8-8 5、在“打印属性”对话框中做相应设置后,单击“确定”按钮,数据报表将被打印出 来。

三、实时数据报表页面设置过程如下: 1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表页面设置。 2、在按钮的弹起事件中输入如下命令语言,如图 8-9 所示:

图 8-9 3、单击“确认”按钮关闭命令语言编辑框。 4、当系统处于运行状态时,单击此按钮,弹出“页面设置”对话框,如图 8-10 所示:

图 8-10 10、 在 “页面设置”对话框中对报表的页面属性做相应设置后, “确定”按钮, 完成 单击

报表的页面设置。

四、实时数据报表打印预览设置过程如下: 1、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表打印预览。 2、在按钮的弹起事件中输入如下命令语言,如图 8-11 所示:

图 8-11 3、单击“确认”按钮关闭命令语言编辑框。 4、 当系统处于运行状态时, 页面设置完毕后, 单击此按钮, 系统会自动隐藏组态王的 开 发系统和运行系统窗口,并进入打印预览窗口,如图 8-12 所示:

图 8-12 11、 在打印预览窗口中使用打印预览查看打印后的效果, “关闭”按钮结束预 单击

览,系统自动恢复组态王的开发系统和运行系统窗口。

实时数据报表的存储
实现以当前时间作为文件名将实时数据报表保存到指定文件夹下的操作过程如下: 1、在当前工程路径下建立一文件夹:实时数据文件夹。 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( \\本站点\$秒, 0, "f" )+".rtl"; ReportSaveAs("Report1",filename);

5、 单击“确认”按钮关闭命令语言编辑框。当系统处于运行状态时,单击此按钮数据 报 表将以当前时间作为文件名保存实时数据报表。

实时数据报表的查询
利用系统提供的命令语言可将实时数据报表以当前时间作为文件名保存在指定的文 件 夹中, 对于已经保存到文件夹中的报表文件如何在组态王中进行查询呢?下面将介绍一下 实 时数据报表的查询过程: 利用组态王提供的下拉式组合框与一报表窗口控件可以实现上述功能。 1、在工程浏览器窗口的数据词典中定义一个内存字符串变量: 变量名:报表查询变量 变量类型:内存字符串 初始值:空 2、新建一画面,名称为:实时数据报表查询画面。 3、选择工具箱中的 4、 选择工具箱中的 5、选择工具箱中的 8-14 所示: 工具,在画面上输入文字:实时数据报表查询。 工具, 在画面上绘制一实时数据报表窗口, 控件名称为: Report2。 工具,在画面上插入一“下拉式组合框”控件,控件属性设置如 图

图 8-14 6、 在画面中单击鼠标右键, 在画面属性的命令语言中输入如下命令语言, 如图 所示: 8-15

图 8-15 命令语言如下所示: string filename; filename=InfoAppDir()+"\实时数据文件夹\*.rtl"; listClear("List1"); ListLoadFileName( "List1",filename); 上述命令语言的作用是将已经保存到 “当前组态王工程路径下实时数据文件夹” 中的 实 时报表文件名称在下拉式组合框中显示出来。 7、在画面中添加一按钮,按钮文本为:实时数据报表查询。 8、在按钮的弹起事件中输入如下命令语言,如图 8-16 所示:

图 8-16

命令语言如下所示: string filename1; string filename2; filename1=InfoAppDir()+"\实时数据文件夹\"+\\本站点\报表查询变量; ReportLoad("Report2",filename1); filename2=InfoAppDir()+"\实时数据 文件夹\*.rtl"; listClear("List1"); ListLoadFileName( "List1", filename2); 上述命令语言的作用是将下拉式组合框中选中的报表文件的数据显示在 Report2 报 表窗口中,其中 \\本站点\报表查询变量保存了下拉式组合框中选中的报表文件名。 9、设置完毕后单击“文件”菜单中的“全部存”命令,保存您所作的设置。 10、单击“文件”菜单中的“切换到 VIEW”命令,运行此画面。当您单击下拉式组合 框控 件时保存在指定路径下的报表文件全部显示出来, 选择任一报表文件名, “实时数 据报表 单击 查询” 按钮后此报表文件中的数据会在报表窗口中显示出来, 从而达到了实时数据报 表查询 的目的。

20 北京亚控科技发展有限公司

第三节 历史数据报表

创建历史数据报表
历史数据报表创建过程如下: 1、新建一画面,名称为:历史数据报表画面。 2、选择工具箱中的 3、 选择工具箱中的 工具,在画面上输入文字:历史数据报表。 工具, 在画面上绘制一历史数据报表窗口, 控件名称为: Report5, 并

设计表格,如图 8-17 所示:

图 8-17

历史数据报表查询
利用组态王提供的 ReportSetHistData2 函数可从组态王记录的历史库中按指定的起始 时 间和时间间隔查询指定变量的数据,设置过程如下: 1、在画面中添加一按钮,按钮文本为:历史数据报表查询。 2、在按钮的弹起事件中输入如下命令语言,如图 8-18 所示:



1



共 112



北京亚控科技发展有限公 司

20 北京亚控科技发展有限公司

图 8-18 3、设置完毕后单击“文件”菜单中的“全部存”命令,保存您所作的设置。 4、单击“文件”菜单中的“切换到 VIEW”命令,运行此画面。单击“历史数据报表 查询” 按钮,弹出报表历史查询对话框,如图 8-19 所示:

图 8-19 报表历史查询对话框分三个属性页:报表属性页、时间属性页、变量属性页。 报表属 性页: 在报表属性页中您可以设置报表查询的显示格式, 此属性页设置如图 8-19 所示。

时间属性页:在时间属性页中您可以设置查询的起止时间以及查询的时间间隔,如图 8-20 所示:

图 8-20
第 1 页 共 北京亚控科技发展有限公司

20 北京亚控科技发展有限公司

变量属性页:在变量属性页中您可以选择欲查询历史数据的变量,如图 8-21 所示:

图 8-21

5、设置完毕后单击“确定”按钮,原料油液位变量的历史数据即可显示在历史数据报 表 控件中,从而达到了历史数据查询的目的,如图 8-22 所示:

图 8-22

历史数据报表的其它应用
一、1 分钟数据报表演示
利用报表窗口工具结合组态王提供的命令语言可实现一个 1 分钟的数据报表, 设置过程 如下:
第 1 页 共 北京亚控科技发展有限公司

20 北京亚控科技发展有限公司

1、新建一画面,名称为:1 分钟数据报表画面。 2、选择工具箱中的 3、选择工具箱中的 工具,在画面上输入文字:1 分钟数据报表。 工具,在画面上绘制一报表窗口(64 行 5 列),控件名称为:

Report6,并设计表格,如图 8-23 所示:

图 8-23

4、在工程浏览器窗口左侧“工程目录显示区”中选择“命令语言”中的“数据改变命 令语 言”选项, 在右侧“目录内容显示区”中双击“新建”图标, 在弹出的编辑框中输入如 下脚本语言, 如图 8-24 所示:

图 8-24

命令语言如下所示:当系统变量\\本站点\$秒 变化时,执行该脚本程序
第 1 页 共 北京亚控科技发展有限公司

20 北京亚控科技发展有限公司

long row; 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 页 共 北京亚控科技发展有限公司

20 北京亚控科技发展有限公司

2、选择工具箱中的 3、选择工具箱中的

工具,在画面上输入文字:1 分钟数据查询报表。 工具,在画面上绘制一报表窗口(33 行 5 列),控件名称为:

Report7,并设计表格,在如图 8-26 所示:

图 8-26 4 、在 报 表窗 口 的 b33 单 元 格 中 填 写 “ =Average('b3:b32') ” , c33 单元格中

填 写 “=Average('c3:c32')”,d33 单元格中填写“=Average('d3:d32')”,如图 8-27 所示:

图 8-27 5、在工程浏览器窗口左侧“工程目录显示区”中选择“命令语言”中的“数据改变命 令语 言”选项, 在右侧“目录内容显示区”中双击“新建”图标, 在弹出的编辑框中输入如 下脚本语言, 如图 8-28 所示:



1





北京亚控科技发展有限公司

20 北京亚控科技发展有限公司

图 8-28 数据改变命令语言如下所示: 当系统变量\\本站点\$分 变化时, 执行该脚本程序 long

StartTime; StartTime=HTConvertTime(\\本站点\$年,\\本站点\$月,\\本站点\$日,\\本 站点\$时,\\ 本站点\$分,0); StartTime=StartTime-60; ReportSetTime("Report7", StartTime, 2, "a3:a32"); ReportSetHistData("Report7", "\\本站点\原料油液位", 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 所示:



1





北京亚控科技发展有限公司

20 北京亚控科技发展有限公司

图 8-29 12、 在 1 分钟数据查询报表中,\\本站点\原料油液位、\\本站点\催化剂液位 和

\\ 本站点\成品油液位 变量的查询结果的平均值分别显示在 b33、 和 d33 单元格 c33 中, 如图 8-30 所示:

图 8-30

课后复习
1、 制作一个实时报表。 2、 制作一个日报表。 3、 制作一个历史数据查询。 4、 练习报表的保存、打印、查询等功能。



1





北京亚控科技发展有限公司

20 北京亚控科技发展有限公司

第九讲

组态王与数据库连接



1





北京亚控科技发展有限公司


相关文档

用组态王报表
组态王整点报表代码
组态王第八讲 报表系统18
组态王保存报表
组态王报表
组态王报表演示说明
组态王软件详细教程 第七讲 报表系统
组态王报表(课件)
组态王教学-报表与打印
电脑版