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

合集下载

组态王历史报表、

组态王历史报表、

创建历史数据报表历史数据报表创建过程如下:1、新建一価面,名押为:历史数据报表iffli面.2、选择工具箱中的工1工具,在颅而上输入文字:历史数据报表。

3、选择工具箱中的悟1工具,在岡面上绘制一历史数据报表窗口,控件名称为:Reports,并设计表格,如图8・17所 _______________________________________________A i「1 肋史2 09 瑕料输覆桂3456图8-17历史数据报表查询利用组态王提供的ReportSetHistData?的数町从组态王记录的历史库中按折定的赴始时间和时间间隔査询指定变虽的数据,设置过程如下:1、在価面中添加一按饥,按伍文本为:历史数据报表査询.2、在按粗的弹起爭件中输入如下命令ifi言.如图8JS所示:3.设置完毕后单击“文件"菜单中的“全部存”命令.保存您所作的设置。

4、单击“文件”菜单中的“切换到XTEW”命令,运厅此紳面・笊击“历史数据报表査询”按钮.弹出报表历史査询对话框.如图&19所示,报表历史査询对话框分二个履性页:报表属性页、时何属性页.变虽属性页.报表属性页:在报表属性页中您可以设置报表査询的显示恪式,此属性页设置如图8-19 所示。

时间属性页:在时间屈性页中您町以设置査询的起止时间以及査询的时间间隔.如图所示:图8・19图8-20变量属性页:在变虽叫性页中您可以选择欲査询历史数据的变忙.如图8・21所示:5. 设置完毕后单击•确定”按钮.原料油液位变虽的历史数据即可显示在历史数摇报 表控件中.从而达到了历史数据吉询的目的.如图8-22所示:图 8-22历史数据报表的其它应用一、1分钟数据报表演示利用报表窗口丁具结合组态王提供的命令语育可实现一个1分钟的数据报表•设置过程 如下:0*06/11/12 06/11/12 06/11/12 06/1142 06/1212 06/11/12柿16:24:44 15:25:44 15:26:44 15:27:44 15:28:44 15:29:44历史效抿报表用 S-211、新建一fli面.名松为:1分钟数据报表画面・2、选择工具箱中的工1工具,在曲而上输入文字:1分钟数据报表。

组态王报表演示说明

组态王报表演示说明

报表演示说明1、本演示分为日报、月报、年报2、日报的生成:对于日报可以每小时输入一个数据,然后进行统计后每天生成一个报表日报生成的命令语言见事件命令语言的条件为:$分==0 && $秒==0,消失时注意:a、报表函数命令执行时报表控件所在的画面必须打开,因此对于画面不多的情况下可以在工程运行时将后台处理画面打开并隐含起来,同时所有其它的画面属性都应为覆盖式。

如果画面较多无法全部将画面属性设为覆盖式则可以在报表命令语言执行前执行打开画面的命令b、在新的一天开始时需要使用新的报表文件,因此需要在调用前需要判断当天的报表文件是否已经创建,如果没有创建则需要进行创建c、对于日报的统计主要针对每天持续运行的情况,对于不能保证持续运行的现场可以参照月报的统计方式b、报表的查询在日报查询页,可以对报表文件进行读取、删除等操作{string ()+"日报\"+ StrFromReal( \\本站点\$年, 0,"f" )+"y"+StrFromReal(\\本站点\$月, 0, "f" )+"m"+StrFromReal(\\本站点\$日, 0, "f" )+".rtl";//自定义变量long return01=InfoFile( , 1, \\本站点\$分 );//判断日报目录下是否已经有当天的报表文件了if (return01==0){string ()+"报表\日报.rtl";ReportLoad("Report5",);()+"日报\"+StrFromReal( \\本站点\$年, 0, "f" )+"y"+StrFromReal( $月, 0, "f" )+"m"+StrFromReal( $日, 0, "f" )+".rtl";ReportSaveAs("Report5",);}//如果没有报表文件则从报表目录下调取模板创建报表文件ReportLoad("Report5",);ReportSetCellString("report5", 3,10, \\本站点\$日期);long hang=\\本站点\$时+6;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, \\本站点\水分); ReportSaveAs("Report5",);}3、月报的生成月报中需要每天的统计数据,该数据为每天的平均值,如果需要其它的统计数据也可照此方法进行处理。

组态王软件介绍

组态王软件介绍

3、系统软件3.1组态王软件介绍本系统采集控制软件选用中国本土软件厂商北京亚控科技发展有限公司生产的,国内最早的商用组态软件“组态王”。

截止到2009年底,“组态王”已在国内装机量有10万套,成功地应用于我国工业领域的各行各业,例如石油、化工、电力、冶金、造纸、橡胶、环保、机械制造等等,在中国使用的监控软件中,组态王拥有国内最多的用户。

像国外众多的软件一样,组态王软件也经过了一个发展例程:1995年——组态王V1.01996年——组态王V1.21997年——组态王V1.511998年——组态王V2.01999年——组态王V5.12000年——组态王V5.1 for Internet2001年——组态王V6.0、组态王电力专业版6.02002年——组态王V6.022003年——组态王V6.52005年——组态王V6.512006年——组态王V6.522007年——组态王V6.53下面介绍组态王通用强大的功能。

3.1.1基本人机界面功能通过本功能完成画面组态。

1.快速便捷的应用设计用组态软件构造“监控和数据采集系统”的好处之一就是能大大缩短开发时间,并能保证系统的质量。

能快速便捷地进行图形维护和数据采集是此类系统的关键点。

组态王正是提供了丰富的快速应用设计的工具。

(1)方便实用的工程管理组态王6.53提供方便实用的管理工具——工程管理器。

工程管理器是一个独立的可执行文件,用来管理本机的所有组态王工程,可以实现工程的压缩备份,备份恢复,数据词典的导出导入,实现开发和运行系统的切换等。

(2).集成的开发环境最新设计的组态王工程浏览器为用户提供了便利的集成开发环境。

工程设计者可以在工程浏览器中查看工程的各个部分,可以查看画面、数据库、配置通讯驱动程序、设计报表;可以完成系统的大部分配置。

工程浏览器采用树形结构,操作简单方便,容易接受。

在工程浏览器中,用户也可以方便地切换到组态王开发环境和运行环境。

(3).功能强大、易用的绘图工具目前用简单的示意性图形已经不足以表示工业现场复杂的生产过程,用户普遍要求更加丰富多彩、生动逼真的画面。

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

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

第八讲报表系统在本课程您将:Ì掌握实时报表的创建过程Ì掌握历史报表的创建、查询过程第一节概述数据报表的用途数据报表是反应生产过程中的过程数据、运行状态等,并对数据进行记录、统计的一种重要工具,是生产过程必不可少的一个重要环节。

它既能反应系统实时的生产情况又能对长期的生产过程数据进行统计、分析,使管理人员能够掌握和分析生产过程情况。

组态王提供内嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。

组态王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。

既可以制作实时报表又可以制作历史报表。

另外,工程人员还可以制作各种报表模板,实现多次使用,以免重复工作。

第二节实时数据报表创建实时数据报表实时数据报表创建过程如下: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、在“实时数据报表画面”中添加一按钮,按钮文本为:实时数据报表自动打印。

组态王软件介绍

组态王软件介绍

3、系统软件3.1组态王软件介绍本系统采集控制软件选用中国本土软件厂商北京亚控科技发展有限公司生产的,国内最早的商用组态软件“组态王”。

截止到2009年底,“组态王”已在国内装机量有10万套,成功地应用于我国工业领域的各行各业,例如石油、化工、电力、冶金、造纸、橡胶、环保、机械制造等等,在中国使用的监控软件中,组态王拥有国内最多的用户。

像国外众多的软件一样,组态王软件也经过了一个发展例程:1995年——组态王V1.01996年——组态王V1.21997年——组态王V1.511998年——组态王V2.01999年——组态王V5.12000年——组态王V5.1 for Internet2001年——组态王V6.0、组态王电力专业版6.02002年——组态王V6.022003年——组态王V6.52005年——组态王V6.512006年——组态王V6.522007年——组态王V6.53下面介绍组态王通用强大的功能。

3.1.1基本人机界面功能通过本功能完成画面组态。

1.快速便捷的应用设计用组态软件构造“监控和数据采集系统”的好处之一就是能大大缩短开发时间,并能保证系统的质量。

能快速便捷地进行图形维护和数据采集是此类系统的关键点。

组态王正是提供了丰富的快速应用设计的工具。

(1)方便实用的工程管理组态王6.53提供方便实用的管理工具——工程管理器。

工程管理器是一个独立的可执行文件,用来管理本机的所有组态王工程,可以实现工程的压缩备份,备份恢复,数据词典的导出导入,实现开发和运行系统的切换等。

(2).集成的开发环境最新设计的组态王工程浏览器为用户提供了便利的集成开发环境。

工程设计者可以在工程浏览器中查看工程的各个部分,可以查看画面、数据库、配置通讯驱动程序、设计报表;可以完成系统的大部分配置。

工程浏览器采用树形结构,操作简单方便,容易接受。

在工程浏览器中,用户也可以方便地切换到组态王开发环境和运行环境。

(3).功能强大、易用的绘图工具目前用简单的示意性图形已经不足以表示工业现场复杂的生产过程,用户普遍要求更加丰富多彩、生动逼真的画面。

组态王软件功能介绍

组态王软件功能介绍

组态王软件功能介绍组态王是一款用于工业自动化系统中的配置软件,它提供了丰富的功能和工具,可用于创建和配置人机界面(HMI),数据监视和控制系统。

以下是组态王软件的功能介绍。

2.多种通信协议支持:组态王软件支持多种通信协议,可以与各种设备和系统进行通信,如PLC、DCS、数据采集器、变频器等。

这使得用户可以轻松地接入和监控不同设备的数据,并进行控制和操作。

3.实时数据监视和历史数据记录:组态王软件可以实时监视和显示数据,并为用户提供了实时数据图形化显示的功能。

它还具备历史数据记录的能力,可以将数据保存为文件或数据库中,以便用户进行回溯和分析。

4.报警和事件管理:组态王软件提供了报警和事件管理功能,可以监控和记录设备发出的报警和事件信息。

当发生异常情况时,用户可以接收到报警通知,并采取相应的措施。

5.数据分析和报表生成:组态王软件具有数据分析和报表生成功能,可以对历史数据进行统计和分析,生成各种图表和报表,帮助用户了解和评估系统的性能和效果。

6.远程监控和控制:组态王软件支持远程访问和控制,用户可以通过互联网或局域网远程监控和控制系统。

这使得用户能够随时随地对系统进行监视和操作,提高了运行效率和响应速度。

7.多语言支持:组态王软件支持多种语言,可以满足不同地区和用户的语言需求。

用户可以选择他们熟悉和使用的语言进行配置和操作,提高了软件的易用性和适应性。

8.安全性和权限控制:组态王软件具有强大的安全性和权限控制功能,可以保护系统数据的安全性和完整性。

用户可以进行身份验证和授权,限制不同用户对系统的访问和操作权限,防止未经授权的访问和操纵。

9.灵活且可扩展的架构:组态王软件具有灵活的架构,可以根据用户的需求进行定制和扩展。

用户可以通过编写脚本或使用插件来扩展软件的功能,满足特定的应用要求。

总之,组态王软件是一款功能强大、易于使用和定制的工业自动化配置软件。

它可以帮助用户轻松创建和配置人机界面,实时监视和控制数据,分析和报告系统性能,并提供安全性和权限控制等功能,为用户提供了一个高效、可靠和安全的工业自动化解决方案。

组态王讲稿(报表线性等)详述

组态王讲稿(报表线性等)详述
典型组态软件介绍组态王讲课主线一组态王概述实现远程控制建立一个空工程定义外部设备建立数据词典制作车间画面进行动画连接调试运行采取安全措施开发步骤归纳组态王的系统结构各部分的功能各部分之间的关系组态王报警的配置及使用组态王曲线的配置及使用组态王提供的控件及使用组态王报表的制作组态王与通用数据库的连接组态王局域网络配置及连接组态王web版的功能实现教学目的让一个从没接触过组态王软件的人知道组态王是什么
2.数据库组态功能 系统的数据库包括实时数据库和历史数据库。实时数据 库组态主要是确定数据库中保存的各个变量名称、工程量标 度变换、上下限值、线性化处理、报警特性、报警条件等; 历史数据库组态除了确定上述内容外,还需要确定循环清盘 的周期,即数据的保存周期。 3.控制回路组态功能 控制回路组态同样是一种非常重要的组态,为了确保生 产工艺的实现,计算机监控系统常常要完成一些复杂的控制 运算,如PID运算、前馈、串级、解耦等控制运算,控制回路 的组态就是将一些标准模块的输入/输出与具体的变量联系起 来,即定义各个控制回路的控制算法、调节周期及调节参数, 某些系数等。
五、组态软件按照功能成员分为六个部分 1.工程管理器 工程管理器也称为项目管理器,工程人员在使用组态软 件的过程中经常会遇到这样的问题:在开发过程中为了防止 前功尽弃,经常要对应用系统进行备份;需要引用以前开发 成功的项目中的画面或部分成果;需要经常迅速查看本台计 算机上保存了哪些开发好的工程项目等,这些工作虽然可以 靠手动方式进行,但效率底下,容易出错。有了工程管理器 后,这些工作变得简单易行。工程管理器具有新建、删除、 搜索、备份、恢复、重命名工程等多项功能,并可以通过菜 单或按钮切换到系统开发环境。
3.实时数据库运行管理程序 组态软件内部含有实时数据库系统,用户定义的全局变 量都存放在实时数据库中,这些变量的集合被形象称为数据 词典。有些组态软件中也将变量称为“标签”。实时数据库 中的I/O变量是随着生产现场变送器的输出值而变化的,而实 时数据库中的I/O变量一变化就会引起画面上的图形变化。实 时数据库的管理功能包括定义变量名称、数据类型、与外部 设备的连接等各种参数。

组态王 SCADA3.0报表例程

组态王 SCADA3.0报表例程

北京亚控科技发展有限公司
4
“报表系统应用例程”说明文档
图 7 日期时间控件属性 再添加文本“Text3”,模拟值输入和模拟值输出动画链接关联变量\\local\StepTime, 如图 8 所示。图 8 动画连接北京亚控科技发展有限公司
5
“报表系统应用例程”说明文档
第三步:添加、设置按钮 1)查询按钮: 打开图库精灵,在画面上添加一按钮,在按钮上再添加文本为:查询,该按钮按下 命令语言如下: long year1; long month1; long day1; long hour1; long minute1; long second1; long year2; long month2; long day2; long hour2; long minute2; long second2; long StartTime; long EndTime; year1=UIDateTime1.Year; month1=UIDateTime1.Month; day1=UIDateTime1.Day; hour1=UIDateTime1.Hour; minute1=UIDateTime1.Minute; second1=UIDateTime1.Second; year2=UIDateTime2.Year; month2=UIDateTime2.Month; day2=UIDateTime2.Day; hour2=UIDateTime2.Hour; minute2=UIDateTime2.Minute; second2=UIDateTime2.Second; string str=InfoAppDir()+"Report\model.rtl"; Report0.ReportLoad(str); Report0.SetCellString(2,4,\\local\$Date); //填写日期 StartTime=ConvertTimeToSecond(year1,month1,day1,hour1,minute1,second1,0); EndTime=ConvertTimeToSecond(year2,month2,day2,hour2,minute2,second2,0); Report0.SetTime(StartTime,EndTime,\\local\StepTime); Report0.SetHistData("\\local\temperature",2); Report0.SetHistData("\\local\pressure",3); Report0.SetHistData("\\local\flow",4); Report0.Query();

组态王报表()解析

组态王报表()解析
ReportSetCellValue("一分钟数据报表", row, 2, \\本站点\原料油液位1); ReportSetCellValue("一分钟数据报表", row, 3, \\本站点\催化剂液位1);
ReportSetCellValue("一分钟数据报表", row, 4, \\本站点\成品油液位1);
参数说明: ReportName:报表名称; StartRow:要设置数值的报表的开始行号; StartCol:要设置数值的报表的开始列号; StartRow:要设置数值的报表的开始行号; StartCol:要设置数值的报表的开始列号; Value:要设置的文本 。
二、1 分钟数据查询报表
定时自动查询历史数据,并获取1 分钟数据的平均值。 设置过程如下: 在画面上输入文字:1 分钟数据查询报表。 绘制一报表窗口(33 行5 列),控件名称为:一分钟查询, 并设计表格如下,
在画面中添加一按钮,按钮文本为:报表查询。 在按钮的弹起事件中输入如下命令语言:
string filename1; string filename2; filename1=InfoAppDir()+"\实时数据文件夹\"+\\本站点\报表查 询变量; ReportLoad("Report2",filename1); filename2=InfoAppDir()+"\实时数据文件夹\*.rtl"; listClear("List1"); ListLoadFileName( "List1", filename2); 上述命令语言的作用是将下拉式组合框中选中的报表文件的数 据显示在Report2 报表窗口中,其中\\本站点\报表查询变量保 存了下拉式组合框中选中的报表文件名。

组态王的年月报表

组态王的年月报表

组态王的年⽉报表(1)建⽴报表的步骤将《实时数据》插⼊到《⽇报表后台数据的累计量》插⼊到《⽉报表后台累计量》插⼊到《年报表后台》//........................................................................................................................................................................................................................................................................................................................................... //每⼩时将repot7的实时数据插⼊到report 6中,long hang;hang= \\本站点\$时+3;//定位long Value;Value=ReportGetCellValue("Report7", 4, 2);//获取指定报表单元格的数值ReportSetCellValue("Report6", hang, 2, Value);//将指定报表的指定单元格设定为指定值Value=ReportGetCellValue("Report7", 4, 3);ReportSetCellValue("Report6", hang, 3, Value);Value=ReportGetCellValue("Report7", 4, 4);ReportSetCellValue("Report6", hang, 4, Value);Value=ReportGetCellValue("Report7", 4, 5);ReportSetCellValue("Report6", hang, 5, Value);Value=ReportGetCellValue("Report7", 4, 6);ReportSetCellValue("Report6", hang, 6, Value);Value=ReportGetCellValue("Report7", 4, 7);ReportSetCellValue("Report6", hang, 7, Value);Value=ReportGetCellValue("Report7", 4, 8);ReportSetCellValue("Report6", hang, 8, Value);Value=ReportGetCellValue("Report7", 4, 9);ReportSetCellValue("Report6", hang, 9, Value);Value=ReportGetCellValue("Report7", 4, 10);ReportSetCellValue("Report6", hang, 10, Value);Value=ReportGetCellValue("Report7", 4, 11);ReportSetCellValue("Report6", hang, 11, Value);Value=ReportGetCellValue("Report7", 4, 12);ReportSetCellValue("Report6", hang, 12, Value);Value=ReportGetCellValue("Report7", 4, 13);ReportSetCellValue("Report6", hang, 13, Value);Value=ReportGetCellValue("Report7", 4, 14);ReportSetCellValue("Report6", hang, 14, Value);Value=ReportGetCellValue("Report7", 4, 15);ReportSetCellValue("Report6", hang, 15, Value);//将实时报表report 7中的统计数据输⼊到⽇报表后台中//填写时间string temp;long StartTime;long y;StartTime=cyl_HTConvertTime(\\本站点\$年,\\本站点\$⽉,\\本站点\$⽇,0,0,0);//获取选着时间的长整形单位y=StartTime+\\本站点\$时*3600;temp=StrFromTime( y, 2 );ReportSetCellString("Report6", hang, 1, temp);ReportSetCellString("Report6", 28, 1, "当天累积");//填充ReportSetCellString("Report6", 29, 1, "备注");//填充//............................................................................................................................................................................................................................................................................................................................................ ReportSetCellString2("Report6", 4, 1, 27, 8, " "); //清空单元格//............................................................................................................................................................................................................................................................................................................................................(1)查询⽉报string FileName;FileName=InfoAppDir()+"⽉报\"+\\本站点\报表名;ReportLoad("⽉报",FileName);//............................................................................................................................................................................................................................................................................................................................................(2)删除⽉报string FileName;FileName=InfoAppDir()+"⽉报\"+\\本站点\报表名;FileDelete( Filename );string FileName1;FileName1=InfoAppDir()+"⽉报\*.rtl";listClear("⽉报查询");ListLoadFileName( "⽉报查询", FileName1 );//............................................................................................................................................................................................................................................................................................................................................(3)刷新⽉报string FileName;FileName=InfoAppDir()+"⽉报\"+"*.rtl";listClear("⽉报查询");ListLoadFileName( "⽉报查询", FileName );//............................................................................................................................................................................................................................................................................................................................................//每天定时将⽇报后台reprot 6中的累积量插⼊到⽉报表reprot5后台中string reportname2=StrFromReal( \\本站点\$年, 0, "f" )+StrFromReal( \\本站点\$⽉, 0, "f")+".rtl";//把年⽉转化为字符串⽤来命名//====================string FileName;//⾃定义变量FileName=InfoAppDir()+"⽉报\"+reportname2;long return02=InfoFile( Filename, 1, \\本站点\$分 );//查找⽂件是否存在,找不到返回0 ShowPicture("⽉报后台");//HidePicture("⽉报后台");//判断⽉报⽬录下是否已经有当⽉的报表⽂件了if (return02==0)//当前⽬录下没有相应⽉报表报表{FileName=InfoAppDir()+"报表\⽉报.rtl";ReportLoad("Roport5",FileName);//把filename名称⽂件中数据填⼊到report中FileName=InfoAppDir()+"⽉报\"+ reportname2;Reportsaveas("Roport5",FileName);//报存⽉报后台//\\本站点\⽇计数=0;}//如果当⽉的⽉报⽂件还没有产⽣则调⼊⽉报.rtl⽂件并按规定格式保存报表⽂件FileName=InfoAppDir()+"⽉报\"+StrFromReal( \\本站点\$年, 0, "f" )+StrFromReal(\\本站点\$⽉, 0, "f" )+".rtl";ReportLoad("Report5",FileName);//读取指定路径下的报表到当前控件报表long hang;hang= \\本站点\$⽇+3;//定位//\\本站点\⽇计数=\\本站点\⽇计数+1;string str;long Value;long Value1;long Value2;str=ReportGetCellString("Report6", 2, 5);//获取指定报表单元格的⽂本ReportSetCellString("Report5", hang, 1, str);//将指定报表单元格设定为指定字符串//以上为在⽉报第⼀列添加⽇期Value=ReportGetCellValue("Report6", 28, 2);//获取指定报表单元格的数值ReportSetCellValue("Report5", hang, 2, Value);//将指定报表的指定单元格设定为指定值Value=ReportGetCellValue("Report6", 28, 3);ReportSetCellValue("Report5", hang, 3, Value);Value=ReportGetCellValue("Report6", 28, 4);ReportSetCellValue("Report5", hang, 4, Value);Value=ReportGetCellValue("Report6", 28, 5);ReportSetCellValue("Report5", hang, 5, Value);Value=ReportGetCellValue("Report6", 28, 6);ReportSetCellValue("Report5", hang, 6, Value);Value=ReportGetCellValue("Report6", 28, 7);ReportSetCellValue("Report5", hang, 7, Value);Value=ReportGetCellValue("Report6", 28, 8);ReportSetCellValue("Report5", hang, 8, Value);Value=ReportGetCellValue("Report6", 28, 9);ReportSetCellValue("Report5", hang, 9, Value);Value=ReportGetCellValue("Report6", 28, 10);ReportSetCellValue("Report5", hang, 10, Value);Value=ReportGetCellValue("Report6", 28, 11);ReportSetCellValue("Report5", hang, 11, Value);Value=ReportGetCellValue("Report6", 28, 12);ReportSetCellValue("Report5", hang, 12, Value);Value=ReportGetCellValue("Report6", 28, 13);ReportSetCellValue("Report5", hang, 13, Value);Value=ReportGetCellValue("Report6", 28, 14);ReportSetCellValue("Report5", hang, 14, Value);Value=ReportGetCellValue("Report6", 28, 15);ReportSetCellValue("Report5", hang, 15, Value);//将⽇报表中的统计数据当天累积值输⼊到⽉报表中//以下为计算累积值Value1=ReportGetCellValue("Report5", 4, 2);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 2);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 2, Value);Value1=ReportGetCellValue("Report5", 4, 2);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 2);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 2, Value);Value1=ReportGetCellValue("Report5", 4, 3);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 3);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 3, Value);Value1=ReportGetCellValue("Report5", 4, 4);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 4);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 4, Value);Value1=ReportGetCellValue("Report5", 4, 5);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 5);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 5, Value);Value1=ReportGetCellValue("Report5", 4, 6);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 6);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 6, Value);Value1=ReportGetCellValue("Report5", 4, 7);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 7);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 7, Value);Value1=ReportGetCellValue("Report5", 4, 8);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 8);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 8, Value);Value1=ReportGetCellValue("Report5", 4, 9);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 9);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 9, Value);Value1=ReportGetCellValue("Report5", 4, 10);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 10);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 10, Value);Value1=ReportGetCellValue("Report5", 4, 11);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 11);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 11, Value);Value1=ReportGetCellValue("Report5", 4, 12);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 12);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 12, Value);Value1=ReportGetCellValue("Report5", 4, 13);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 13);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 13, Value);Value1=ReportGetCellValue("Report5", 4, 14);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 14);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 14, Value);Value1=ReportGetCellValue("Report5", 4, 15);//获取⽉报后台起始值Value2=ReportGetCellValue("Report5", hang, 15);//获取⽉报后台末尾值Value=Value2-Value1;ReportSetCellValue("Report5", 35, 15, Value);Reportsaveas("Report5",FileName);//HidePicture("⽉报后台");//..........................................................................................................................................................................................................................................................................................................................................//每天定时将⽉报后台reprot 5中的累积量插⼊到年报表后台report 8中string reportname2=StrFromReal( \\本站点\$年, 0, "f" )+".rtl";//把年转化为字符串⽤来命名//====================string FileName;//⾃定义变量FileName=InfoAppDir()+"年报\"+reportname2;long return02=InfoFile( Filename, 1, \\本站点\$分 );//查找⽂件是否存在,找不到返回0ShowPicture("年报后台");//HidePicture("年报后台");//判断年报⽬录下是否已经有当年的报表⽂件了if (return02==0)//当前⽬录下没有相应年报表报表{FileName=InfoAppDir()+"报表\年报.rtl";ReportLoad("Roport8",FileName);//把filename名称⽂件中数据填⼊到report中FileName=InfoAppDir()+"年报\"+ reportname2;Reportsaveas("Roport8",FileName);//报存⽉报后台}//如果当⽉的⽉报⽂件还没有产⽣则调⼊⽉报.rtl⽂件并按规定格式保存报表⽂件FileName=InfoAppDir()+"年报\"+StrFromReal( \\本站点\$年, 0, "f" )+".rtl";ReportLoad("Report8",FileName);//读取指定路径下的报表到当前控件报表long hang;hang= \\本站点\$⽉+3;//定位string str;long Value;long Value1;long Value2;str=ReportGetCellString("Report5", 2, 5);//获取指定报表单元格的⽂本str=StrLeft(str, 7);//裁剪str,只获取⽉ReportSetCellString("Report8", hang, 1, str);//将指定报表单元格设定为指定字符串//以上为在⽉报第⼀列添加⽇期Value=ReportGetCellValue("Report5", 35, 2);//获取指定报表单元格的数值ReportSetCellValue("Report8", hang, 2, Value);//将指定报表的指定单元格设定为指定值Value=ReportGetCellValue("Report5", 35, 3);ReportSetCellValue("Report8", hang, 3, Value);Value=ReportGetCellValue("Report5", 35, 4);ReportSetCellValue("Report8", hang, 4, Value);Value=ReportGetCellValue("Report5", 35, 5);ReportSetCellValue("Report8", hang, 5, Value);Value=ReportGetCellValue("Report5", 35, 6);ReportSetCellValue("Report8", hang, 6, Value);Value=ReportGetCellValue("Report5", 35, 7);ReportSetCellValue("Report8", hang, 7, Value);Value=ReportGetCellValue("Report5", 35, 8);ReportSetCellValue("Report8", hang, 8, Value);Value=ReportGetCellValue("Report5", 35, 9);ReportSetCellValue("Report8", hang, 9, Value);Value=ReportGetCellValue("Report5", 35, 10);ReportSetCellValue("Report8", hang, 10, Value);Value=ReportGetCellValue("Report5", 35, 11);ReportSetCellValue("Report8", hang, 11, Value);Value=ReportGetCellValue("Report5", 35, 12);ReportSetCellValue("Report8", hang, 12, Value);Value=ReportGetCellValue("Report5", 35, 13);ReportSetCellValue("Report8", hang, 13, Value);Value=ReportGetCellValue("Report5", 35, 14);ReportSetCellValue("Report8", hang, 14, Value);Value=ReportGetCellValue("Report5", 35, 15);ReportSetCellValue("Report8", hang, 15, Value);//将⽉报表后台report 5中的统计数据当天累积值输⼊到年报表后台report 8中;Value1=ReportGetCellValue("Report8", 4, 2);//起始值Value2=ReportGetCellValue("Report8", hang, 2);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 2, Value);Value1=ReportGetCellValue("Report8", 4, 3);//起始值Value2=ReportGetCellValue("Report8", hang, 3);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 3, Value);Value1=ReportGetCellValue("Report8", 4, 4);//起始值Value2=ReportGetCellValue("Report8", hang, 4);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 4, Value);Value1=ReportGetCellValue("Report8", 4, 5);//起始值Value2=ReportGetCellValue("Report8", hang, 5);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 5, Value);Value1=ReportGetCellValue("Report8", 4, 6);//起始值Value2=ReportGetCellValue("Report8", hang, 6);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 6, Value);Value1=ReportGetCellValue("Report8", 4, 7);//起始值Value2=ReportGetCellValue("Report8", hang, 7);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 7, Value);Value1=ReportGetCellValue("Report8", 4, 8);//起始值Value2=ReportGetCellValue("Report8", hang, 8);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 8, Value);Value1=ReportGetCellValue("Report8", 4, 9);//起始值Value2=ReportGetCellValue("Report8", hang, 9);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 9, Value);Value1=ReportGetCellValue("Report8", 4, 10);//起始值Value2=ReportGetCellValue("Report8", hang, 10);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 10, Value);Value1=ReportGetCellValue("Report8", 4, 11);//起始值Value2=ReportGetCellValue("Report8", hang, 11);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 11, Value);Value1=ReportGetCellValue("Report8", 4, 12);//起始值Value2=ReportGetCellValue("Report8", hang, 12);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 12, Value);Value1=ReportGetCellValue("Report8", 4, 13);//起始值Value2=ReportGetCellValue("Report8", hang, 13);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 13, Value);Value1=ReportGetCellValue("Report8", 4, 14);//起始值Value2=ReportGetCellValue("Report8", hang, 14);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 14, Value);Value1=ReportGetCellValue("Report8", 4, 15);//起始值Value2=ReportGetCellValue("Report8", hang, 15);//结束值Value=Value2-Value1;ReportSetCellValue("Report8", 16, 15, Value);Reportsaveas("Report8",FileName);//HidePicture("年报后台");//............................................................................................................................................................................................................................................................................................................................................。

组态王报表功能实现方法

组态王报表功能实现方法

一种简单的组态王报表功能实现方法2010年04月24日星期六 15:18前段时间用组态王做了一个小的画面组态,其中用到了KVADODBGrid控件来做报表,现总结如下。

一、准备工作第一步:在组态王工程管理器中新建一个项目,项目路径为D:\实验项目。

第二步:新建一个ACCESS数据库1、在“D:\实验项目”路径下新建一个 Microsoft Office Access 应用程序并命名为;2、打开“控制面板\管理工具\ODBC数据源管理器”选择“系统DSN”选项;3、点击“添加”按钮创建新数据源,选择“Microsoft Access Driver(*.mdb)”;4、在数据源名处填下“mydata”,并选择数据库路径为“D:\实验项目\”。

第三步:创建表格模板点击工程浏览器左侧的“SQL访问管理器”下的“表格模板”,新建一个表格并命名为Table。

在Table中添加所需记录的变量及1日期参数,其中“日期”为定长字符串型,字符长度为10;其它诸如年、月、日、时、分则为浮点型,字符长度为1。

第四步:创建记录体点击工程浏览器左侧的“SQL访问管理器”下的“记录体”,新建一个表格并命名为Record,在Record中添加所需记录的变量及日期参数。

记录体用来定义Access数据表格字段与组态王变量之间的对应关系。

二、连接数据库第一步:在工程浏览器左侧的“数据库”下的“数据字典”中定义一个内存整型变量,并命名为ConnectID。

第二步:创立组态王与mydata数据源的连接,并以“表格模板”Table的格式在数据库中建立名为“TheDate”的表格,命令如下:SQLConnect( ConnectID, "dsn=mydata;uid=;pwd=");SQLCreateTable(ConnectID, "TheDate", "Table" );将上面两条命令填入“工程浏览器\命令语言\应用程序命令语言”下的“启动时”选项中。

组态王报表系统二次开发在水泥行业的实践运用

组态王报表系统二次开发在水泥行业的实践运用

类 别 共 生 、 生 矿 产 资 源 伴
序 号 1
综 合 利 用 的资 源 煤 系共 生 、 生矿 产 资源 、 斯 伴 瓦
生 产 的 产 品
技 术 标 准


高 岭 岩 、 钒 土 、 润 土 、 . 品原 料 10 铝 膨 1产 0 %来 自所 列 资 源 电力 2煤 炭 开 发 中 的废 弃 物 . 热 力 及 燃 气 3 产 品符 合 国家 和行 业 标 准
将模 板 工作表 复 制为 一个 新 的工作 表 利用 自定
义 函数 cp set代 码 见 下 : oyhe. Pia u ci oyhe(t , t )A ola r t F n t ncp sets l s 2 s o n ve o r r B e
品种累计量与 E C L X E 单元格的对应关系见表 2 。
设 置 报 表 格 式 , 报 表 进 行 组 态 , 作 实 时 报 表 , 可 对 制 也
云南 云南 南磷 集 团云岭 建 材有 限公 司水 泥生 产
线用 到的原材料 有石灰 石 、 渣 、 土 、 石渣 、 渣 、 铜 黏 电 磷
石膏 、 粉煤灰 。其 中电石 渣 、 粉煤灰 以及脱 硫石膏 、 磷
R n e rf .a g ( A1 ) des , xR1 ) a g (e ) n e “ ” . r s( , l C1 R Ad GeV le=E e ue x e4 co my co t au x c tE c lMa r ( ma r )
En n t n d Fu ci o


二 、 水 ( )废 气 、 渣 废 液 、 废

煤 矸 石 、 煤 、 煤 灰 、 矿 和 选 矿 废 渣 、 炼 石 粉 采 冶 废渣 、 业炉 渣、 硫石膏 、 石 膏 、 河 ( ) 工 脱 磷 江 渠 砖 ( )砌 块 、 板 类 产 产 品 原 料 7 % 以 上 来 自所 列 资 瓦 、 墙 O 道 的清淤 ( 沙 ) 淤 品 、 膏 类 制 品 以 及 商 品 源 石 风 积 沙 、 筑 垃 圾 、 活 垃 粉 煤 灰 建 生 圾 焚 烧 余 渣 、 工 废 渣 、 业 废 渣 化 工

组态王中的数据报表制作与保存

组态王中的数据报表制作与保存

组态王中的‎数据报表制‎作与保存摘要:本文主要介‎绍如果使用‎组态王来构‎建数据报表‎,并以EXC‎E L的格式‎在指定的文‎件路径保存‎。

关键字:组态王历史库数据报表制作保存一、引言数据报表是‎反应生产过‎程中的数据‎、状态等,并对数据进‎行记录的一‎种重要形式‎。

它既能反映‎系统实时的‎生产情况,也能对长期‎的生产过程‎进行统计、分析,使管理人员‎能够实时掌‎握和分析生‎产情况。

组态王提供‎内嵌式报表‎系统,工程人员可‎以任意设置‎报表格式,对报表进行‎组态。

组态王为工‎程人员提供‎了丰富的报‎表函数,实现各种运‎算、数据转换、统计分析、报表打印等‎。

既可以制作‎实时报表,也可以制作‎历史报表。

组态王还支‎持运行状态‎下单元格的‎输入操作,在运行状态‎下通过鼠标‎拖动改变行‎高、列宽。

另外,工程人员还‎可以制作各‎种报表模板‎,实现多次使‎用,以免重复工‎作。

二、数据报表的‎制作数据报表分‎为实时数据‎报表和历史‎数据报表2‎类。

报表的构建‎方法如下:在画面内,使用工具箱‎中的报表窗‎口按钮创建‎一个报表窗‎口,如图1所示‎。

图1 创建后的报‎表窗口用鼠标双击‎报表窗口的‎灰色部分,弹出“报表设计”对话框,该对话框主‎要设置报表‎的名称、报表表格的‎行列数目以‎及选择套用‎表格的样式‎。

1、制作实时数‎据报表实时数据报‎表是实时显‎示相关变量‎的数据值,在报表窗口‎的单元格中‎直接引用变‎量来实现。

在报表的单‎元格中直接‎输入“=变量名”,既可在运行‎时在该单元‎格中显示该‎变量的数值‎,当变量的数‎据发生变化‎时,单元格中显‎示的数值也‎会被实时刷‎新。

2、制作历史数‎据报表历史数据报‎表是从组态‎王的历史库‎中查询相关‎变量的历史‎数据,并在历史数‎据报表内显‎示,因此对历史‎数据报表要‎查询的数据‎必须设置历‎史记录属性‎。

在组态王中‎,离散型、整型和实型‎变量支持历‎史记录,字符串型变‎量不支持历‎史记录。

组态王教学-报表与打印

组态王教学-报表与打印

报表与打印常见问题解答北京亚控科技发展有限公司2009年8月目录1. 报表 (1)1.1 组态王软件自带的报表窗口的行列设置限制是多少? (1)1.2 组态王软件自带的报表窗口的控件名称命名有什么特殊要求吗? (1)1.3 组态王软件自带的报表窗口控件,如何设定单元格数据显示的小数位数? (1)1.4 在组态王运行系统中,如何锁定报表的行和列? (1)1.5 在组态王运行系统中能否对报表单元格中的数据进行修改? (1)1.6 在组态王运行系统中如何清除报表单元格中的数据? (2)1.7 在组态王运行系统中,如何实现将组态王报表文件保存为以日期命名的文件? (2)1.8 组态王的历史记录属性中能够设置的定时记录最短时间是1分钟,如何实现1秒钟的定时记录功能? (2)1.9 在组态王中如何删除指定目录下的单个报表文件或多个报表文件? (2)1.10 如何打开组态王报表文件(*.rtl格式的文件)?能否使用其他应用程序打开? (3)1.11 能否对组态王报表控件中的行宽和列宽进行锁定? (3)1.12 在安装组态王的计算机A中能否读取另外一台安装组态王计算机B上面的报表文件? (3)1.13 在组态王中实现以时分秒为文件名且每分钟保存一报表文件功能,当保存整点的报表时,指定文件夹内的文件名比实际时间少一个小时? (3)1.14 在组态王报表控件中对合并的单元格应如何计算它的行号和列号? 31.15 在组态王画面上如何得到指定变量在指定时间内的最大值、最小值和平均值? (3)1.16 使用组态王提供的kingreport.xls文件查询组态王历史数据,选择查询的工程后提示加载工程失败,为什么? (4)1.17 求报表中不为0的单元格数据的平均值? (4)1.18 为什么我使用ReportLoad()函数无法打开我使用ReportSaveas()函数保存的报表? (5)1.19 组态王的报表中如何实现报表数据的统计(如求和、求平均、检索最大最小值)? (5)1.20 组态王的报表能否直接保存成excel格式的文件,这样可以直接通过excel程序打开? (6)1.21 我使用组态王的报表控件制作工程报表,采用的ReportSetCellValue()来对报表控件进行后台填值操作,为什么当我显示报表时却是空白的? (6)1.22 在组态王运行系统中如何实现往报表单元格中插入数据? (6)1.23 组态王中扩展名为.rtl的文件是什么格式的文件?如何打开此类型的文件? (6)1.24 为什么在命令语言中使用报表函数却不执行? (7)2. 打印 (7)2.1 组态王软件对普通商业打印机的选择有什么要求? (7)2.2 组态王软件如何打印运行过程中的画面? (7)2.3 组态王软件的表格窗口的数据是如何进行打印输出的? (7)2.4 为什么用ReportPrint2()函数不能实现自动打印报表? (7)2.5 组态王软件的控件的数据是如何进行打印输出的? (8)2.6 在组态王中进行打印预览时,为什么不能进行打印方向的设置,如何解决? (8)1. 报表1.1组态王软件自带的报表窗口的行列设置限制是多少?组态王6.51及其以前版本,报表窗口的行列设置限制为2000行52列,对新版的组态王软件,报表窗口的行列设置限制有了改善,可以定义到20000行128列。

如何将组态王中实时数据报表保存到本地

如何将组态王中实时数据报表保存到本地

将组态王中的实时报表保存到本地,保存格式为.xls
1、在“工具箱”中点击“报表窗口”,插入一个实时报表控件
2、双击报表控件,在弹出窗口中输入控件名称、行数、列数,如下图:
3、按照上图样式,填写单元格内容,注意在插入变量时要先输入一个=,输入完成后点击√确认输入内容
4、输入完成后,在画面中添加一个按钮(修改名称为“保存”)
5、双击按钮,在弹出的窗口中找到“按下时”,点击,输入脚本,
6、在电脑中新建一个用来保存实时数据的文件夹,脚本中的filename存储的就是此文件夹的路径
7、脚本具体内容如下:
String filename;
filename="C:\Users\123\Desktop\通讯工程\通讯\RealtimeReport\"; //文件存放路径
filename=filename+"温度实时数据"+StrFromInt(\\本站点\$年,10)+"."+StrFromInt(\\本站点\$月,10)+"."+StrFromInt(\\本站点\$日,10)+"."+StrFromInt(\\本站点\$时,10)+"时"+StrFromInt(\\本站点\$分,10)+"分"+StrFromInt(\\本站点\$秒,10)+"秒.xls";
//以时间、日期作为文件名
ReportSaveAs("实时报表",filename); //次函数的用法可以参考组态王帮助文件
附:函数的用法。

组态王软件详细教程--第七讲-报表系统

组态王软件详细教程--第七讲-报表系统

组态王软件详细教程--第七讲-报表系统第七讲报表系统第⼀节组态王内嵌数据报表数据报表的⽤途数据报表是反应⽣产过程中的数据、状态等,并对数据进⾏记录的⼀种重要形式。

是⽣产过程必不可少的⼀个部分。

它即能反应系统实时的⽣产情况,也能对长期的⽣产过程进⾏统计、分析,使管理⼈员能够实时掌握和分析⽣产情况。

组态王提供内嵌式报表系统,⼯程⼈员可以任意设置报表格式,对报表进⾏组态。

组态王为⼯程⼈员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。

即可以制作实时报表,也可以制作历史报表。

另外,⼯程⼈员还可以制作各种报表模板,实现多次使⽤,以免重复⼯作。

制作实时数据报表8 在组态王⼯具箱内选择“报表窗⼝”⼯具,在报表画⾯上绘制报表。

如下图所⽰:8 双击报表窗⼝的灰⾊部分(表格单元格区域外没有单元格的部分),弹出“报表设计”对话框,对话框定义如下图所⽰:è 在“报表控件名”对话框中输⼊报表控件名称:实时数据报表,这个控件名会在报表函数中引⽤。

本讲介绍报表系统的创建和格式设置介绍报表函数介绍报表系统的组态介绍报表模板è在⾏数对话框中输⼊所要制作的报表的⼤致⾏数15è在列数对话框中输⼊所要制作的报表的⼤致列数68 单击对话框的“确认”按钮。

则组态王报表画⾯如下图所⽰:8 设置表头格式设计表头:选中“b1”到“e2”的单元格区域,从报表⼯具箱上单击“合并单元格”按钮,在报表⼯具箱的编辑框⾥输⼊⽂本“实时数据报表”,单击“输⼊”按钮;或双击合并的单元格,使输⼊光标位于该单元格中,然后输⼊上述⽂本。

单击报表⼯具箱中的“设置单元格格式”按钮,设置单元格格式如下:数字—常规;字体—⾪书、规则、⼀号、红⾊;对齐⽅式:⽔平—居中,垂直—居中;图案—设置单元格底纹颜⾊为灰⾊。

如下图所⽰。

8 设计报表时间在单元格“d3”中显⽰当前⽇期,双击该单元格,然后输⼊函数“=Date($年,$⽉,$⽇)”。

组态王教学-报表与打印

组态王教学-报表与打印

报表与打印常见问题解答北京亚控科技发展有限公司2009年8月目录1. 报表 (1)1.1 组态王软件自带的报表窗口的行列设置限制是多少? (1)1.2 组态王软件自带的报表窗口的控件名称命名有什么特殊要求吗? (1)1.3 组态王软件自带的报表窗口控件,如何设定单元格数据显示的小数位数? (1)1.4 在组态王运行系统中,如何锁定报表的行和列? (1)1.5 在组态王运行系统中能否对报表单元格中的数据进行修改? (2)1.6 在组态王运行系统中如何清除报表单元格中的数据? (2)1.7 在组态王运行系统中,如何实现将组态王报表文件保存为以日期命名的文件? (2)1.8 组态王的历史记录属性中能够设置的定时记录最短时间是1分钟,如何实现1秒钟的定时记录功能? (3)1.9 在组态王中如何删除指定目录下的单个报表文件或多个报表文件? (3)1.10 如何打开组态王报表文件(*.rtl格式的文件)?能否使用其他应用程序打开? (4)1.11 能否对组态王报表控件中的行宽和列宽进行锁定? (4)1.12 在安装组态王的计算机A中能否读取另外一台安装组态王计算机B上面的报表文件? (4)1.13 在组态王中实现以时分秒为文件名且每分钟保存一报表文件功能,当保存整点的报表时,指定文件夹内的文件名比实际时间少一个小时? (5)1.14 在组态王报表控件中对合并的单元格应如何计算它的行号和列号? (5)1.15 在组态王画面上如何得到指定变量在指定时间内的最大值、最小值和平均值? (5)1.16 使用组态王提供的kingreport.xls文件查询组态王历史数据,选择查询的工程后提示加载工程失败,为什么? (6)1.17 求报表中不为0的单元格数据的平均值? (7)1.18 为什么我使用ReportLoad()函数无法打开我使用ReportSaveas()函数保存的报表? (8)1.19 组态王的报表中如何实现报表数据的统计(如求和、求平均、检索最大最小值)? (8)1.20 组态王的报表能否直接保存成excel格式的文件,这样可以直接通过excel程序打开? (8)1.21 我使用组态王的报表控件制作工程报表,采用的ReportSetCellValue()来对报表控件进行后台填值操作,为什么当我显示报表时却是空白的? (9)1.22 在组态王运行系统中如何实现往报表单元格中插入数据? (9)1.23 组态王中扩展名为.rtl的文件是什么格式的文件?如何打开此类型的文件? (10)1.24 为什么在命令语言中使用报表函数却不执行? (10)2. 打印 (10)2.1 组态王软件对普通商业打印机的选择有什么要求? (10)2.2 组态王软件如何打印运行过程中的画面? (11)2.3 组态王软件的表格窗口的数据是如何进行打印输出的? (11)2.4 为什么用ReportPrint2()函数不能实现自动打印报表? (11)2.5 组态王软件的控件的数据是如何进行打印输出的? (12)2.6 在组态王中进行打印预览时,为什么不能进行打印方向的设置,如何解决? (12)1. 报表1.1组态王软件自带的报表窗口的行列设置限制是多少?组态王6.51及其以前版本,报表窗口的行列设置限制为2000行52列,对新版的组态王软件,报表窗口的行列设置限制有了改善,可以定义到20000行128列。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八讲 报表系统掌握历史报表的创建、查询过程第一节 概述数据报表的用途数据报表是反应生产过程中的过程数据、运行状态等,并对数据进行记录、统计的一种 重要工具,是生产过程必不可少的一个重要环节。

它既能反应系统实时的生产情况又能对长 期的生产过程数据进行统计、分析,使管理人员能够掌握和分析生产过程情况。

组态王提供嵌式报表系统,工程人员可以任意设置报表格式,对报表进行组态。

组态 王为工程人员提供了丰富的报表函数,实现各种运算、数据转换、统计分析、报表打印等。

既可以制作实时报表又可以制作历史报表。

另外,工程人员还可以制作各种报表模板,实现 多次使用,以免重复工作。

第二节 实时数据报表创建实时数据报表实时数据报表创建过程如下: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命令语言如下所示: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、选择工具箱中的工具,在画面上绘制一实时数据报表窗口,控件名称为:Report2。

5、选择工具箱中的工具,在画面上插入一“下拉式组合框”控件,控件属性设置如图8-14 所示:图8-146、在画面中单击鼠标右键,在画面属性的命令语言中输入如下命令语言,如图8-15所示:图8-15命令语言如下所示:string filename;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”命令,运行此画面。

当您单击下拉式组合框控件时保存在指定路径下的报表文件全部显示出来,选择任一报表文件名,单击“实时数据报表查询”按钮后此报表文件中的数据会在报表窗口中显示出来,从而达到了实时数据报表查询的目的。

第三节历史数据报表创建历史数据报表历史数据报表创建过程如下:1、新建一画面,名称为:历史数据报表画面。

2、选择工具箱中的工具,在画面上输入文字:历史数据报表。

3、选择工具箱中的工具,在画面上绘制一历史数据报表窗口,控件名称为:Report5,并设计表格,如图8-17 所示:图8-17历史数据报表查询利用组态王提供的ReportSetHistData2 函数可从组态王记录的历史库中按指定的起始时间和时间间隔查询指定变量的数据,设置过程如下:1、在画面中添加一按钮,按钮文本为:历史数据报表查询。

2、在按钮的弹起事件中输入如下命令语言,如图8-18 所示:第 1 页共112 页北京亚控科技发展有限公司图8-183、设置完毕后单击“文件”菜单中的“全部存”命令,保存您所作的设置。

4、单击“文件”菜单中的“切换到VIEW”命令,运行此画面。

单击“历史数据报表查询”按钮,弹出报表历史查询对话框,如图8-19 所示:图8-19报表历史查询对话框分三个属性页:报表属性页、时间属性页、变量属性页。

报表属性页:在报表属性页中您可以设置报表查询的显示格式,此属性页设置如图8-19所示。

时间属性页:在时间属性页中您可以设置查询的起止时间以及查询的时间间隔,如图8-20 所示:图8-20变量属性页:在变量属性页中您可以选择欲查询历史数据的变量,如图8-21 所示:图8-215、设置完毕后单击“确定”按钮,原料油液位变量的历史数据即可显示在历史数据报表控件中,从而达到了历史数据查询的目的,如图8-22 所示:图8-22历史数据报表的其它应用一、1 分钟数据报表演示利用报表窗口工具结合组态王提供的命令语言可实现一个1 分钟的数据报表,设置过程如下:1、新建一画面,名称为:1 分钟数据报表画面。

2、选择工具箱中的工具,在画面上输入文字:1 分钟数据报表。

3、选择工具箱中的工具,在画面上绘制一报表窗口(64 行5 列),控件名称为:Report6,并设计表格,如图8-23 所示:图8-234、在工程浏览器窗口左侧“工程目录显示区”中选择“命令语言”中的“数据改变命令语言”选项,在右侧“目录容显示区”中双击“新建”图标,在弹出的编辑框中输入如下脚本语言,如图8-24 所示:图8-24命令语言如下所示:当系统变量\\本站点\$秒变化时,执行该脚本程序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, "");上述命令语言的作用是将\\本站点\原料油液位、\\本站点\催化剂液位和\\本站点\成品油液位变量每秒钟的数据自动写入报表控件中。

相关文档
最新文档