基于Visual Basic的船厂现场拉练信息管理系统1
2023-08-31夏立军聂吉顺
夏立军,聂吉顺
(大连中远海运重工有限公司,辽宁大连 116113)
0 引言
船厂的修造船工作具有涉及专业众多、工程量庞大、设计方案独立定制等特点,施工现场产生的问题众多,对这些问题进行排查和处理十分重要。然而,很多船厂对施工现场数据的管理还停留在简单的工作问题记录和交接阶段,没有形成一套完整的信息处理流程,既易产生疏漏,也不利于数据的管理。相较于其他计算机语言,Visual Basic 操作简单,容易上手,尤其适合非计算机专业的人员开发符合需求的软件。
本文以船厂现场问题排查、记录及处理(简称“现场拉练”)工作为切入点,以Visual Basic 为编程语言,以SQL Server 为后台数据库,以ActiveX数据对象(ActiveX Data Objects,ADO)为数据库访问技术,开发一套现场拉练信息管理系统,以满足船企的使用需求。
1 系统设计
1.1 主要技术
Visual Basic 拥有图形用户界面(Graphical User Interface,GUI)和快速应用程序开发(Rapid Application Development,RAD)系统,不需要编写大量代码去描述界面的外观和位置,仅需使用自带的各种控件即可实现相应功能。
SQL Server 是当今主流数据库管理系统之一,具有使用方便、可伸缩性好,以及与其他服务器软件兼容性高、性价比高等优点。
本系统以Visual Basic 为编程语言,以SQL Server 为后台数据库,以ADO 为数据库访问技术,实现前端Visual Basic 和数据库的交互连接。
1.2 可行性分析
在进行系统设计前,需要对软件进行可行性分析,主要包括稳定性、安全性、高效性等方面[1]。
1.2.1 稳定性
对于程序的客户端使用,应能保证从注册、登录到最终退出程序的全过程流畅无故障,不发生报错及崩溃。
1.2.2 安全性
数据库有足够能力接收并储存数据,且能保证信息的安全。用户端通过注册及密码登录等方式,确保仅用户本人可对名下数据进行操控。
1.2.3 高效性
系统的操作界面应清晰明了,使用过程应简便易行,效率及便捷性能应高出Excel 等传统的记录方式。软件应具备较长的使用生命周期,通过获得良好的经济效益以抵消开发软件的设计成本。
2 模块设计
根据实际需求,系统设计以下4 个模块:系统管理模块、信息提交模块、申报预览模块、统计及报表导出模块。
2.1 系统管理模块
系统管理模块包含账户管理、密码管理、主要流程控制等3 个部分。用户在首次使用系统时,需要通过自己的员工编号进行注册,每个员工编号和员工本人具有唯一对应关系,这样既能保证每个员工有且仅有唯一的系统登录账号,还能规避冗余的账户注册流程。密码管理可帮助员工在忘记密码且通过本人验证的情况下对密码进行重置。系统管理模块设计流程见图1。
图1 系统管理模块设计流程
2.2 信息提交模块
如图2 所示,信息提交模块主要包含拉练信息提交、历史数据预览、管理和维护等两部分。拉练信息主要包括项目船号、名称,项目现状及问题分析,处理方案及改进措施,提交人和责任人,提出时间和完成时间,配图及补充说明等。预览操作可按照时间搜索个人上传的历史数据。
图2 信息提交模块设计流程
2.3 申报预览模块
申报预览模块从数据库中调取满足限定条件的员工,并赋予其预览查阅的权限。限定条件包括时间和科室。申报预览模块设计流程见图3。
图3 申报预览模块设计流程
2.4 统计及报表导出模块
统计及报表导出模块可对科室上报数据和公司汇总数据进行统计分析。科室内部统计每个员工的提交情况,主要包括拉练人次、记录数量、案例分析数量、闭环数量等信息。公司对各科室的上报数据进行汇总,并进行对比分析。科室上报数据和公司汇总数据均可导出Excel 报表,以便进一步处理。统计及报表导出模块设计流程见图4。
图4 统计及报表导出模块设计流程
3 系统窗体设计及逻辑分析
3.1 登录窗体
登录窗体界面是程序运行的第一个窗体界面,也被称为启动界面(对象),其主要功能包括首次使用注册、忘记密码重置及常规登录。登录窗体界面流程图见图5[2]。
图5 登录窗体界面流程图
在登录时需要输入工号和密码,只有当工号和密码文本框内输入的值能匹配数据库中的对应字段时才能登录成功。若服务器中无对应工号,则提示用户工号输入错误。若数据库中密码字段为空,则提示用户需进行注册并弹出注册页面。注册窗体界面流程图见图6。
图6 注册窗体界面流程图
在进行注册时,工号的文本框输入值需要与数据库对应字段相匹配。在此基础上,判定密码的复杂程度是否达标,以及2 次输入的密码是否一致。如无问题,则注册成功。若用户忘记密码,则需要进行密码重置,其逻辑判断与注册流程相似。
3.2 上传主界面窗体
根据界面布局的不同,上传主界面窗体可分为菜单栏、工具栏、状态栏和主窗口;根据功能属性的不同,上传主界面窗体可分为个人上传数据预览板块、信息填写提交板块、数据汇总统计及报表链接入口板块。
3.2.1 个人上传数据预览板块
个人上传数据预览板块可对近期个人上传的数据进行预览查看。个人上传数据预览板块主要借助MSHFlexGrid 控件,可用表格形式显示数据库中的数据。MSHFlexGrid 控件中每一个单元格的内容和数据库中的对应字段均能实现一一映射的关系,并能通过循环语句将满足条件的信息逐行显示出来。
3.2.2 信息填写提交板块
信息填写提交板块的功能在于将用户填入的信息文本写入数据库文件并进行保存。该板块是整个程序的核心内容,也是后续修改、删除等操作的基础。数据信息可分为文本信息和图片信息等两种形式。信息填写提交板块通过TextBox 控件逐项填写拉练内容,通过Label 控件给出填写提示,通过image 控件上传辅助说明图片,通过DTPicker 控件记录时间。信息填写提交板块窗体界面见图7。
图7 信息填写提交板块窗体界面
3.2.3 数据汇总统计及报表链接入口板块
为方便上级部门和科室管理人员进行信息查阅和数据分析,需要整理员工个人的拉练提案,统计数据台账,并制作数据汇总报表。
3.3 科室数据预览窗体
科室数据预览窗体将科室上报的信息进行整合,可按照时间或科室名称进行筛选查看。科室数据预览窗体通过MSHFlexGrid 控件显示筛选结果,并在数据预览版块显示详细的文字和图片信息。可通过点击“导出到Excel”按钮将科室数据预览窗体的显示内容导出至Excel 文件。
3.4 科室上报汇总窗体
科室上报汇总窗体可通过表格形式展示科室员工的年度、月度数据上传和提交情况,以便部门领导进行统计、管理、督促和激励。可通过点击“导出到Excel”按钮将员工拉练的情况导出至Excel文件。
3.5 技术中心汇总窗体
技术中心汇总窗体以科室为单位,统计出各科室的拉练工作进展情况,可通过点击“导出到Excel”按钮将具体数据导出至Excel 文件。
4 数据库设计
数据库主要具有以下2 方面的作用:1)数据储存;2)在程序打开记录集,按照条件检索时,加载和调用相关数据。利用SQL Server 建立数据库db_sitetrain,在此数据库下建立拉练数据表tb_sitetrain 和人员信息数据表tb_personinfo。
4.1 人员数据结构组成
员工需要正确填写工号和密码才能正常登录系统,只有填写提交人姓名和科室才能对后续信息进行跟踪和统计,这些过程都涉及系统和人员数据表的信息传递。人员数据表的结构属性设计见图8。
图8 人员数据表的结构属性设计
4.2 拉练数据结构组成
拉练信息是数据库存储的关键数据。数据表的设计宗旨是将用户上传的各类信息完整地保留下来,需要设计规范的名称以及合理的数据类型。拉练数据表的结构属性设计见表1。
表1 拉练数据表的结构属性设计
5 程序设计
5.1 类模块设计
各窗体模块有一些变量和过程是通用的,程序在运行时需要不断连接数据库以调取和储存数据。为提高编程效率,设计一个类模块Moudle1.bas 以实现上述功能。
数据库连接代码[3]如下所示:
通过ksdm 过程对数据表中科室名称所对应的代号进行识别和转化。以舾装和船体室为例,相关代码如下所示:
5.2 登录窗体设计
登录窗体通过设置2 个Label 控件提示用户输入指定信息,通过设置2 个TextBox 控件供用户填写工号及密码,通过设置3 个Button 控件用于常规登录、忘记密码及注册的运行情景,通过Image 控件展示背景画面,通过设置1 个Label 控件显示软件版本信息。登录窗体界面见图9。
图9 登录窗体界面
5.3 主窗体设计
5.3.1 上传文字信息
以部分字段为例,上传文字的主要代码如下所示:
5.3.2 上传图片信息
通过数据流mstream 将CommonDialog 控件收集到的图片路径写入二进制文件,将图片信息保存到数据库,并通过Image 控件实时显示。
1)通过CommonDialog 控件打开一个对话框,用户选择需要上传的图片文件,主要代码[4]如下:
2)通过数据流mstream 将CommonDialog 控件收集到的图片路径写入二进制文件,主要代码如下:
在上述代码中,FileName2 字段为二进制文件的名称,FileUploadTime2 字段为保存文件的建立时间,FileNameContent2 字段为二进制文件的内容。
3)将图片在Image 控件中显示的代码如下:
5.3.3 显示上传记录
利用MSHFlexGrid 控件显示数据库上传结果,通过双重For 循环将数据库的字段一一呈现在每一个TextMatrix 中,代码如下:
5.4 报表窗体设计
报表窗体主要包括科室数据报表、科室汇总报表、技术中心报表等内容,既可在软件上查看,也能导出至Excel 文件。
5.4.1 软件报表
通过调用数据库并利用SQL 查询语言select 检索指定条件的数据,生成软件报表。根据实际工作需要,报表可体现科室上报的拉练信息、科室个人数据的上传统计,以及技术中心各科室月度上传数据的对比情况。这样既能获得现场拉练的完整情况,也能掌握各科室员工的参与程度,便于更好地开展拉练工作。
5.4.2 Excel 文件
依靠Visual Basic 及其宏语言VBA,实现对Microsoft Excel 的控制,包括文本的单元格写入、图片文件的对象链接与嵌入(Object Linking and Embedding,OLE)对象插入、文字格式的设定、图片大小及位置的设定等内容。
6 结论
本文针对船厂现场问题排查、记录及处理工作,以Visual Basic 为编程语言,以SQL Server 为后台数据库,以ADO 为数据库访问技术,开发了一套现场拉练信息管理系统。研究表明:该系统可实现相关信息的传递、储存和查阅,方便相关人员进行数据处理与维护。