【技术前沿】数据库与表格框的黄金搭档
用户在使用组态软件的时候,都希望组态软件的功能越全面越好,其中经常使用的一点,就是可以按照自己特定的要求,完成各种报表的打印,毕竟在一个工厂或者车间,报表的功能是必不可少的。
我们的软件在报表这方面做了很多努力,大多数时候,用户是可以方便的去使用我们自带的组态报表,来创建模板,然后做出各种简单实用又漂亮的报表。
最常用的报表,就是实时报表和历史报表,只需要在软件中做简单的设置就可以了。
如果遇到一些用户有特定的要求的话,就要按情况进行分析处理。在很多时候,将数据库管理与表格框结合起来使用,会有很好的效果。
前一段时间给客户做案例,就用到了这种方法。客户的要求是做一个配料系统,每次配料完成后,要将每种配料记录到数据库,然后要生成历史数据表 、班报表、日报表、月报表、年报表。
历史数据报表最简单,就是按照查询日期,查询出相应的记录即可;但是班报表、日报表、月报表、年报表就要按照用户的要求来做。
那么接下来就分析这个案例该如何完成:
1、首先确定,这种完成配料,要记录每种物料的实际重量,以及配方名等,不能将变量单纯的选择历史记录即可,因为组态软件是不保存信息型变量的,所以要想记录信息型变量,可以将数据存入数据库。将数据按照储存条件存入数据库,这一部分不再赘述。
2、将数据存入数据库后,接下来的步骤就是按照用户的要求,来生成各种报表:班报表、日报表、月报表、年报表。
3、就以日报表为例,步骤如下:
(1)先按照用户的要求,在开发系统中,建立组态报表模板,格式如下:
(2)建立完报表模板储存之后,在这个工程目录下,可以看到生成了一个MDL格式的文件,用户希望报表不能被修改,则将这个报表模板文件复制后,重命名为.tbl的文件,在后续命令语言中将用到。
(3)接下来,在工程页面中,添加一个表格框控件,对表格框控件进行配置如下:
(4)因为日报表也是按照时间来查询的,则在页面上设置一个输入的开始时间和结束时间控件:
(5)然后点击查询按钮,才开始真正的写命令语言:
查询按钮中,第一句就是将文件载入“日报表”这个表格框。
接下来的这一句,是用来将查询的时间段,转化为相应的天数。
再然后,就是按照条件,用SQLSelect()语句查询出符合条件的数据。
在通用表格框中,必不可少的最后一个步骤,就是将数据写入表格框,那么就会用到以上两个函数,zgSetString()是用来写信息值,zgSetValue()是用来写模拟量。
以上就是一个简单的用SQL数据库与表格框结合,完成一个报表的过程,这只是一个简单的例子,用户在不断的使用过程中,会有更灵活的方法来实现自己的要求。