VB编程中大量数据的一种内嵌方式

2018-04-23 07:08蒋智钢
常州工学院学报 2018年1期
关键词:工作量控件程序

蒋智钢

(遵义医学院公共卫生学院,贵州 遵义 563000)

0 引言

事业单位人事考核工作中,工作量考核既重要又繁琐。尤其是高校,一名教师可能在一个学期同时讲授多门课时不同的课程,并且理论课时与实验课时在考核的计算方式上又会存在较大差异,加之由于学生分班、合班的情况较为复杂,因此给教师工作量的核算造成诸多不便。尽管教师可以去收集自己在一个考核周期(一般为3年)内的全部教学计划,但是因需要课程归属教研室(会涉及多个教研室)的审查,还需要教务管理部门的复审,浪费了大量本应用于教学和科研的时间。同样,人事部门囿于客观条件也难以准确核算每位教师的工作量。因此需要将教务、人事、科研管理等不同部门的数据全部整合在一起,建立功能完备的信息管理系统。

1 问题及对策

对于绩效考核而言,如何准确计算出教师工作量是首要任务,这涉及两方面:一是教师需要向教研室、二级学院(部、系)、教务处等多个部门提交自己的工作量证明材料以便对方审查;二是人事处在对教师提交的材料进行核实时仍需与相关部门沟通,以避免因多报、漏报造成考核结果失真。从根本上分析,无论是被考核者,还是考核者,他们都会与教学工作量的审批部门教务处产生联系。如果由教务部门统一提供教师课时量的证明材料,那么将会大大减轻教师以及人事处人员的工作量,但问题在于从教务信息管理系统导出的数据是以统一的Excel表格形式存在的,就其数据结构而言,教师的不同授课情况(如授课次数不同)所占据数据行不等,因而导致Excel文件巨大。此外,出于对个人隐私的尊重及一些其他原因,不可能将包含全部教师信息的Excel文件直接公布出去,只能将每位教师的信息单独保存后才能分别发送至其邮箱,工作量大,而且效率低,容易出错。因此,考虑将相关信息经过一定处理后直接交予人事部门,并据其制定的考核规则编制出相应的计算机程序供教师查询使用。这样更具操作性,不但可以减少教师填报课时数这项工作近80%的工作量,而且可以保证数据的正确率,同时亦可方便人事部门审核人员的工作。

2 软件设计

2.1 编程语言的选择

Visual Basic 6.0(简称VB6)是微软公司推出的一款可视化编程软件,全面支持面向对象的程序设计,包括数据抽象、封装、对象与属性、类与成员、继承和多态性等,具有简单易学、功能强大、开发快速等优点,不但是一些工业行业编程软件首选,而且易于被非计算机专业人员掌握,在诸多领域得到广泛应用[1-5]。考虑到VB6软件可以在绝大多数版本的Windows系统中运行,本文选用VB6作为编程语言。

2.2 软件的功能规划

前文已述及该软件的主要目的就是为教师提供一个可直接查询其工作量并计算相应积分的工具,因此,该软件应实现以下功能:第一,根据教师的工号查询其在各学期的工作量,其中理论课与实验课的工作量均需分别提供,以利于填写考核手册;第二,按照人事部门给出的考核规则如岗位类型、岗位级别、考核期限等条件,给出相应积分;第三,根据教师的级别、积分等给出其应得的绩效考核结果。

2.3 数据的提供形式

程序设计的核心部分在于确定数据的提供形式,目前常见的方式大多是通过VB与其他特定格式文件如ACCESS[6-7]、Excel[8]或SQL[9]等数据库文件搭配起来使用,其连接方式要么是ODBC[10],要么是ADO[11-12]。这些方式虽然可以提供方便的数据读取,但在程序发布时还需要使用者安装额外的软件,而且保存信息的数据库文件存在被破解的风险,不能满足信息保密的要求。此外,对于一个功能不算复杂的仅几百kB的小程序来讲,没必要采用此种方式,且采用这种编程方式,教师的相关信息会作为独立的数据文件一起发布,使用时易出现误操作的情况。

将参与考核的全部教师信息直接内嵌于程序代码中是一种比较稳妥的做法。若将数据文件以字符串方式作为资源文件导入程序,限于VB6对资源文件格式的定义,这种思路也是行不通的。另一种方案是先将完整的数据信息保存于一个文件中,然后以自定义资源的形式嵌入资源文件整合到程序里面,在程序运行过程中,先把该资源文件释放到一个临时文件夹中供程序读取,待全部数据读入完毕后再自动删除,但是此种操作方式比较繁琐且保密性不高。因此,将教师的数据直接以数组赋值的方式写进代码中去,更为实际些。毕竟VB6编写的程序从反汇编的难度来看是大于Visual C、C++的,这是因为VB6编写的程序一般都在VB的DLL中运行,无论是静态反编译还是动态调试都不易获得相关信息,再加上VB6中的汉字采用的是Unicode,即使采用专门的分析工具软件打开,也很难像采用ANSI码编写的程序那样可以直接在编译程序中看见明码(中文文本)。

2.4 难点分析

按照程序设计的思路,将每个教职工的基础数据以数组teacher(l,m,n)的形式直接写在Form_Load()过程的代码中。其中,l表示与工号相对应的内部编号;m代表教师的授课时间,取值从1到6,分别表示考核周期3年中每一年的春季学期与秋季学期;n代表教师授课内容的类型,取值为1和2,分别表示该次授课内容属于理论课和实验课,见图1。

图1 数组赋值

一次性将参与考核的全部人员信息录入Form_Load()过程后,按F5运行程序,VB6弹出对话框,提示“过程太大”,如图2。经过反复测试发现,当一个过程中的代码行数超过1 779行就会报错。因此,将上万行数组赋值代码直接放到一个过程中去实现数据的载入是不可能的,只能将其先行拆分,然后放入多个过程中才能实现数据的内嵌。但问题在于,一个Form只有一个Form_Load()过程。当然,也不可能要求教师使用时通过多次单击操作手动实现数据的读取过程,因为手动操作会破坏用户体验。由于很难预判程序界面打开后教师会先点哪个按钮,若是对其点击顺序进行限制也不合适,因此要求程序自动完成对这些数据的内嵌操作就成为首要前提。在对多种解决思路进行试验比较后,得出的首选方案就是利用Timer控件可以自行激活的特性来依序完成对数组赋值的操作,然后用Timerx.Enabled=False(此处x表示控件序号)将其禁用即可,并且由于Timer控件始终不可见,可以在使用者无法察觉的情况下实现数据的自动读取。考虑到每个过程对代码有1 779行的数量限制,因此只需按实际情况添加多个Timer控件即可实现此目标。

图2 错误提示

3 代码测试

按上述分析结果,一共在程序代码中添加了5个Timer控件,各个控件的Interval设置为100,即每隔0.1 s激活一个Timer控件,相当于每0.1 s执行一次数组赋值操作,由于CPU运行速度极高,因此使用者根本感觉不到程序完全读入这些数据所花费的时间,程序可以在他们开始任意一项操作前就完成数据准备工作,根本不会妨碍用户体验。

经过测试,采用此种方式可以很流畅地完成数据的内嵌操作,即使是一些反应特别敏捷的教师也丝毫没有感觉到操作过程中数据显示或程序响应存在任何卡顿的现象。目前,该程序已经在我校绩效考核中使用。教师们反映,该程序运行稳定,操作简单,为他们节省了收集整理相关支撑材料的时间,提高了工作效率,节约了大量纸张。因数据直接来源于教务处管理系统,保证了教师工作量计算的准确性。同时,人事部门的考核人员使用此程序可以轻松地对教师提交的工作量材料进行审核,相当便捷。

4 结语

本文给出了在Visual Basic 6.0中内置数据的一种可行性方案,不仅有效解决了VB6对过程代码行数的限制以及资源文件使用局限性的问题,而且巧妙地通过Timer控件实现数据内嵌的自动化过程。实际应用测试结果显示,该数据内嵌方案可以满足程序需求和用户需求,实现目标功能。此种数据内嵌方式可供有类似情况的编程人员参考。

[参考文献]

[1]王礼,盖立平,柴英,等.VB 6.0在物理实验数据处理中的应用[J].数理医药学杂志,2010,23(3):366-368.

[2]黄维.关于VB.NET的管理信息系统的开发的研究[J].数字技术与应用,2017(1):130,132.

[3]曹萌,仲梁维,陈粤.基于VB的ANSYS二次开发及其在管道外自然对流换热系数确定中的应用[J].软件导刊,2017,16(3):135-137.

[4]王杰.基于VB语言的施工测量应用程序设计[J].现代制造技术与装备,2016(12):15-17,20.

[5]王诚.基于VB的高校毕业资格审核程序开发与应用[J].信息与电脑(理论版),2016(6):130-131.

[6]常广炎.用VBA开发Excel、Access的数据处理软件[J].数字技术与应用,2014(6):170-171.

[7]马玉峰,安爱琴.基于VB的轴承精度查询软件开发[J].轻工科技,2016,32(9):49-50,52.

[8]姜丽杰.VB与Excel数据导入导出的研究与实现[J].辽宁师专学报(自然科学版),2012,14(1):43-45.

[9]熊凯.基于VB 6.0编程实现SQL数据任意条件查询[J].电脑编程技巧与维护,2007(3):49-53.

[10]李进,吕海丹.基于VB与ACCESS的固井水泥车参数监测系统软件开发[J].石油工业计算机应用,2016,24(2):40-43.

[11]柏建普,杜娟.ADO技术在VB访问SQL数据库中的应用[J].电脑知识与技术,2013,9(29):6481-6485,6488.

[12]张新华.基于VB与ADO的应用系统开发技术研究[J].赤峰学院学报(自然科学版),2013,29(16):24-25.

猜你喜欢
工作量控件程序
基于.net的用户定义验证控件的应用分析
试论我国未决羁押程序的立法完善
关于.net控件数组的探讨
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
一个兼顾教学科研的高校教师绩效考核模型及其应用
思科发布云计算市场发展报告
创卫暗访程序有待改进
网上互动教学工作量管理的困境及对策
儿科病房护理工作量与护理人员配置调查研究