- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vb程序解释
一、 整体思路本报表通过在wincc中通过按钮调用,也可以在wincc运行的时候直接手动开启。Vb程序通过读取wincc中是sqlsever数据进行查询显示,这里需要注意的是,只有当wincc启动,并且运行的时候,才可以读取wincc特定的历史数据库,该数据库结构和其它标准的数据库区别在于它有自身的结构,在vb建立ado读取数据的时候,是不能像读取标准数据的标准表那样去读取,具体的读取方式,可以在wincc中的帮助里面查看。这也就说明了为什么非要运行wincc,此报表才可以运行成功。二、 程序的大体说明1、 本报表文件夹内可以看出,本程序包括有5个窗体(这里实际有8个,只用上了其中的四个),两个标准模块,以及生成的”报表系统.exe”文件。程序的源代码只需要打开这个文件就可以了,该文件以.vbp结尾。前提是你需要安装vb6.0,没有安装请下载安装。2、打开上面所说的源代码以后,可以看到vb的工程管理器(如下图):这里面包含了本程序所有用到的模块以及窗体。首先对模块进行说明,Forcomn模块:该模块里面主要存放了和窗体位置,调用鼠标滚轮功能的相关api函数的调用以及部分全局参数的定义,不同项目之中不需要更改此模块。Skinh模块:存放了与皮肤相关的api函数,不同项目之中不需要更改此模块。对窗体的作用的说明:窗体Form1:自由报表,如果需要做自由报表,可以修改里面的内容来实现自定义时间段的查询工作。窗体reportday:日报表,完成日报表的查询工作以及显示功能窗体reportmonth,窗体reportYear功能同日报表相同,实现的原理也相同。2、 以日报表为例解释程序中主体结构和功能由于日报,月报,年报实现的方式相同,无非就是在日报表上面的变化。所以月报年报不再对程序进行说明。下面看下日报是如何编写原来和功能首先,这里的form_load过程是窗口的加载过程,也就是最先执行的就是这里的程序,从上到下,开头的两行已经注释出来了,后面完成了对窗体位置的设置,对数组进行赋值,该数组中存放了表格顶头所显示的内容,然后对表格完成一次清空,最后,通过调用setmsfgrid对表格进行初始化,也就是对表格的行宽,列宽,固定显示列,行进行设置。程序如下:完成上面的窗口加载,就可一看到窗口显示了后面就是进行数据的查询,这里是整个报表的关键,主要是通过ado的方式进行读取数据的。先看下图的程序程序中第一个方框中是对参数的定义,第二框中,是在进查询前,对表格控件中的数据进行清空,不清的话会在表格中显示之前读到的数据,没读到数据的地方也不会变成空的。紧接着开始在第一列写入时间。第三框中,完成ado的相关定义,这个如果不懂的话请先去了解ado读取关系型数据库的相关内容,做自控的,vb还是挺实用的,了解这点对做报表,理解数据库都很有意义。(由于无法一次性截图,所以采用分段式讲解)紧接着如下图,开始对查询时间的设定,后面有一个转换成utc时间,这个是因为wincc的历史数据和我们的北京时间相差了8个小时,所以我们查询的时间世界在数据库中是要往前8小时的。在然后我们这里定义了一个数组,这个数组是我们需要进行查询的参数,这里需要对应我们归档中的参数,名字不能有错。紧接着如下图:这里是这个程序的关键,是循环读取每个参数在查询时间段内的数据,并将其写入到数组TempAValue中,图中第一个方框中是wincc专用的sql查询语句,包括了参数名字,开始和结束时间,这里必须按照这个定义来查找,不能使用标准的sqlsever查询语句。在第二个方框内,就开始将查询到的数据,一个一个的写入到数组中进行保存,这里的顺序是第一个参数的1到24小时的数据,然后是第二个…………上图最后的计数实际没太大的作用,是为了防止程序读到多余5000条数据进行排错用的,因为我们是日报,一般只有24条数据,所以这里没有意义了。紧接着,如下图框一:将之前存放在数组TempAValue中的数据进行相减,也就完了excel中要求的这个每小时都是累计值的功能,这里,相信您应该明白了,如果想实现实时值的查询,直接使用TempAValue数组中的数据就好了。言归正传,我们将所需的数据存放到FinalAValue数组之中。框二:把最后得到的数组的中数据一次填写到表格之中,其中涉及到了不同列的计算,比如第三列就是两个值的和。框三:排除你如果是查询今天的数据,最后总有一个小时显示为0,这里最终得到的累计必然是0。因为如果你9点是有数据,10点还没读到数据,这个9到10点的数据就会是一个负数,肯定影响最终的累计值的,所以这里需要将表格中的10点的数据清零。框四:求累计值和平均值下面是打印功能的实现:在打印功能中,我们是先打开我们之前存放到特定文件夹中的模板,然后在在对应的位置进行填值,最后将模版另存为一个新
您可能关注的文档
最近下载
- 具身智能机器人操作系统与应用技术.pdf VIP
- 具身机器人行业市场前景及投资研究报告:具身智能大脑,人形机器人发展.pdf VIP
- 半导体外延工艺技术发展趋势.pptx VIP
- 离散制造数字化智能工厂解决方案.pdf VIP
- 2025年度华医网继续教育答案-常见心血管疾病的中西医结合诊疗策略.docx VIP
- GB∕T 1355-2021 小麦粉 GB∕T 1355-2021 小麦粉.pdf
- 欧洲人的标准 EN10088-1-2005-Eng.pdf VIP
- Panasonic XQG70-E70XS E70GS E70GWwashing machine Manual说明书用户手册.pdf
- 函数的定义与函数的性质.pptx VIP
- 人工智能行业市场前景及投资研究报告:养老机器人,AI养老.pdf VIP
文档评论(0)