vb 窗体内的每一个控件不可用_RSViewSE软件用VBA做报表【3-2】

上节我们已经用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这个文件,接口在窗口看到相关的控件。

658f7cb1c14259dd35fd613fe5ee2e3c.png

1、在VB的窗体上拉个spreadsheet表格出来,同时拉出Dtpicker和ComboBox控件,用来做查询的条件,放两个按钮,一个查询,一个导出文件

24339e9c0f9bf89ab88d98a06300716b.png

2、编写程序,先写报表格式定义程序,这个人之前在RSViewSE里面嵌入Spreadsheet是一样的设置。

30350ffca6600ea0d8baad8a5f64fc60.png

3、编写程序,从SQLServer数据库读取数据

8372000c8acd1f1ee49dc63001af8812.png

4、封装表格填写数据的程序,封装成子函数使用,然后将读回来的数据写进去

de15c8dee07feb680fa64c207d0cca03.png

给窗体的表格填写数据时,可以实现按照选定的时间和泵站编号来查询内容写入到表格内

4e2fd23aad030fe6167eb60bee4f0005.png

5、下拉框初始化参数

下拉框内填写从数据库读回来的泵站编号

3bccabfa7a96d2e24ff5df95932ad6aa.png

6、增加数据导出功能

03fb8c06ca7e2fa2ac819c67db7f013c.png

7、生成exe程序并且运行起来

3137cb291d6939c21be3ce1f5abda1aa.png

cb2b6b160f4611d0ae0082565a7823ee.png

006542b4968e2c8d14f1e6de867326a9.png

OK,在RSViewSE软件内嵌入报表的常规做法已经介绍完了,无论哪种都能实现生产数据展示的需求,你可以根据实际情况选择一种方法去做。

介绍了这么几种方法,大家也能发现一个问题,其实不管那个组态软件,要想实现比较复杂的报表功能都需要数据库的参与,而对这些数据库的操作都离不开脚本语言,VBA、VBS、JS、QuickScript。其实这些语言都很简单,在组态软件里面用到的也只是一些基本功能。当然,使用脚本语言只是来实现一些特定的功能而已,组态软件的主要作用依然是监控和操作现场设备,不可本末倒置,需要时简单学习一下即可。

其实回头看看,做报表的步骤很简单,第一记录数据,第二提取数据。记录数据的方式无非就是利用组态软件的功能,在依赖组态软件将需要的数据记录到数据库,除此之外就是脱离组态软件,想办法直接读取PLC的数据并记录下来。至于要用什么数据库就萝卜咸菜和有所爱了,有收费的和开源免费的,相信总有一款能满足你

需要项目文件及VBA源码请私信作者

网页自由打印控件使用方法功能:本控件可以在浏览器中直接实现任意定位打印;用途:适用于B/S系统的报表打印,尤其适用于票据打印和套打;现在这个新编写的DLL控件比以前发布的OCX更稳定使用前,先注册一下,运行目录下的“注册控件.bat”即可注册然后在网页中直接调用卸载时运行“反注册控件.bat”使用方法:在网页中可以直接用JavaScript和VBScript调用被控件JavaScript调用语句:TML = new ActiveXObject("TML.TMLi");VBScript调用语句:set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其中TMLi为对象控件中包含两个函数addTXT "作者,字体,字号,X坐标,Y坐标,文字"p dmPaperWidth文档宽,dmPaperLength文档长addTXT语句为添加文字到打印文档中,参数有"作者,字体,字号,X坐标,Y坐标,文字"p语句为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长以下为完整的VBScript打印程序:(查看源代码) <script language="vbscript">set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其中TMLi为对象TML.addTXT "李天盟,华文中宋,24,100,200,额外认为" ‘本addTXT语句为添加文字到打印文档中TML.addTXT "李天盟,华文中宋,12,110,300,额外认为" ‘格式为"作者,字体,字号,X坐标,Y坐标,文字"TML.addTXT "李天盟,华文中宋,12,120,320,┏━━━━━━━━━━━━━━━━┓"TML.addTXT "李天盟,华文中宋,12,120,325,┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ "TML.p 3000,2000 ‘语句p为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长set TML=nothing</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值