上节我们已经用VB编写了一个小程序,用来读取RSLinx软件的变量记录到数据库内。现在你所需要的数据就静静地躺在数据库里,等待着你的临幸。此时老司机会使用很多种工具用很多种办法驾驭它们,可是王老湿还比较弱,只能用VB,也只会用VB。听说VB有高级的版本,叫http://VB.Net,跟C#、C++一起在VisualStudio软件里面编写,这一听就高大上,有逼格,可惜咱还没用过呢,这次把文章写完,咱也换到VS里面体验一下http://VB.Net的感觉。话说这也是王老湿最后一次拿报表说事了,其实本文也没有局限于那款组态软件,如果你用的组态软件没有灵活的报表编辑功能,那么希望你可以好好参考一下王老湿的这篇文章。给你启发不敢说,至少有需要的时候可以直接拿源码Copy。无非就是从数据库里把数据库拿出来而已嘛。
当然如果你用的组态软件有成熟灵活的报表编辑功能,恭喜你,获得了一款牛逼的软件。
前文提过,在RSViewSE里面做报表,我们在SE的画面内嵌入了一个spreadsheet控件,那么在VB里面,我们依然可以使用这个控件。
如果你的VB引用里面没有这个控件,你需要下载一个OWC11.dll的文件,并且注册该文件后才能使用。
OK,注册完以后,新建一个VB标准程序,新建一个窗体,在工程>部件里面勾选MicrosoftofficeWebComponent11.0这个文件,接口在窗口看到相关的控件。
1、在VB的窗体上拉个spreadsheet表格出来,同时拉出Dtpicker和ComboBox控件,用来做查询的条件,放两个按钮,一个查询,一个导出文件
2、编写程序,先写报表格式定义程序,这个人之前在RSViewSE里面嵌入Spreadsheet是一样的设置。
3、编写程序,从SQLServer数据库读取数据
4、封装表格填写数据的程序,封装成子函数使用,然后将读回来的数据写进去
给窗体的表格填写数据时,可以实现按照选定的时间和泵站编号来查询内容写入到表格内
5、下拉框初始化参数
下拉框内填写从数据库读回来的泵站编号
6、增加数据导出功能
7、生成exe程序并且运行起来
OK,在RSViewSE软件内嵌入报表的常规做法已经介绍完了,无论哪种都能实现生产数据展示的需求,你可以根据实际情况选择一种方法去做。
介绍了这么几种方法,大家也能发现一个问题,其实不管那个组态软件,要想实现比较复杂的报表功能都需要数据库的参与,而对这些数据库的操作都离不开脚本语言,VBA、VBS、JS、QuickScript。其实这些语言都很简单,在组态软件里面用到的也只是一些基本功能。当然,使用脚本语言只是来实现一些特定的功能而已,组态软件的主要作用依然是监控和操作现场设备,不可本末倒置,需要时简单学习一下即可。
其实回头看看,做报表的步骤很简单,第一记录数据,第二提取数据。记录数据的方式无非就是利用组态软件的功能,在依赖组态软件将需要的数据记录到数据库,除此之外就是脱离组态软件,想办法直接读取PLC的数据并记录下来。至于要用什么数据库就萝卜咸菜和有所爱了,有收费的和开源免费的,相信总有一款能满足你
需要项目文件及VBA源码请私信作者