APP下载

基于Excel VBA 的CMM 手册查询系统设计

2023-07-23崔璐东方航空技术有限公司

航空维修与工程 2023年5期
关键词:客舱单元格字典

■ 崔璐/东方航空技术有限公司

0 引言

对于多机队运营的航空公司来说,客舱构型多样,涉及客舱类部件的CMM 手册数量和种类较多,传统通过部件号在IPC 中查询CMM 手册章节号的步骤较为烦琐,对网络环境依赖度较高,效率较低。

VBA 是内嵌于Office 软件中的一个开发模块,提供程序自主开发,其语言基 础 和VB(Visual Basic)相 似。VBA运行环境依赖性不强,与常用办公软件(Excel/Word/PowerPoint/WPS/Access 等)完美兼容,编程语言简单易用,分享性和移植性很强,对计算机的配置要求不高,几乎所有测试通过的程序放到别的机器上都可轻易执行(不考虑各种本地文件配置)。

本文利用字典查找法,基于Excel VBA 开发了一套通过机号、客舱件类别和区域位置信息多关键字匹配查询的客舱CMM 手册查询系统,可提升维修人员CMM 手册的查询效率。

1 系统设计分析

1.1 系统开发工具

VBA 编程环境是面向对象的编程环境,例如,工作表中的单元格是其中一个对象,对单元格的输入是一个事件,该事件可以触发一段程序块的运行,程序块就是设计者需要编写的剧本。

窗体控件是Excel 的一种用户界面设计工具,可以很好地实现用户与Excel 文件的交互。窗体控件可以显示固定信息来提示用户,如提示、警示等;也可以与用户交互,如输入文本框、下拉列表框选择等;还可以给控件设置属性,编写对窗体反应的VBA 过程和控制事件,调用执行用户编辑的程序块,实现所需的功能。

考虑到界面友好性、运行环境依赖度、系统的可移植性以及开发周期,本系统基于Microsoft Excel 2016 版VBA开发环境(WPS 兼容)实现,开发了一套通过机号、客舱件类别和区域位置信息等多关键字匹配查询的客舱CMM 手册查询系统,具有操作简单、运行环境依赖度低、可移植程度高、开发周期短、维护方便等优点。

1.2 系统设计

系统共有两大主要功能:查询功能和数据库维护功能。系统界面有三个:欢迎界面、查询系统界面和数据维护系统界面,如图1、图2 所示。

图1 欢迎界面与查询系统界面

图2 数据维护系统界面

整个系统由35 个Sheet 组成,其中三个系统界面各为1 个Sheet,数据库有32 个Sheet。数据库分为查询数据库和资料版本数据库两大类,查询数据库有24 个,数据结构如表1 所示。

表1 查询数据库数据结构(以某机型座椅为例)

查询数据库中第5 ~6 列数据,使用Excel 内置函数,根据CMM 手册号调用资料版本数据库数据。资料版本数据库分机型存放,共有8 个Sheet。

在欢迎界面点击查询系统按钮可进入查询功能模块。查询条件有三个:机号、客舱类别和区域。三个条件通过Excel 内置函数与数据有效性验证功能实现三级联动,支持部分条件默认的模糊查找。在输入机号信息后,客舱类别列自动关联为对应机型的下拉选择菜单,选择客舱类别后,区域列自动关联为该机型对应客舱类别的客舱件所属区域。根据不同的查询条件输入,查询结果有4 种显示情况,如表2 所示。

表2 查询结果显示分类

点击查询按钮,在结果区域显示查询结果;点击“重置查询条件”按钮可清空当前查询条件;点击“返回主界面”按钮返回欢迎界面。

点击后台数据维护按钮,正确输入管理员密码即可进入系统数据库。点击显示数据库,根据对话框提示选择所需的数据库。数据维护分为两大类:机队数据维护和资料版本维护,机队数据维护主要是客舱工程师对飞机号及相应CMM 手册编号进行维护,资料版本维护主要是资料管理人员进行CMM 手册相关信息的更新、修改及增删等。系统功能界面流程图如图3 所示。

图3 系统功能界面流程图

2 功能算法设计

2.1 查询功能算法设计及其关键代码

典型的数据查找算法有顺序查找、折半查找、二叉树排序查找等。这些技术是通过一系列给定值与关键码的比较,查找效率依赖于过程中给定值与关键码的比较次数。VBA 字典查找法基于哈希(Hash)查找原理,在存储位置与关键码之间建立一个确定的对应关系,是一种面向查找的存储结构,查找方式不依赖比较次数,其简要算法逻辑如图4 所示。针对本系统多关键字查询和多查询结果显示的功能需求,相较于典型查找方法,采用字典查找法的效率更高。

图4 算法逻辑

本系统将存放有机号、客舱类别、区域、CMM 手册号、手册版本号和厂家等信息的查询数据库Sheet 名称按照“机型+座椅/厨房/厕所”的规则定义,如“B737 座椅”“B777 厨房”“A330厕所”等,共24 个查询子数据库。

每个子数据库可以看作一个字典,子数据库Sheet 中对应单元格的行、列信息为数据的存储位置,查询条件中的“客舱类别”与数据库Sheet 名称相对应,且具有唯一标识性,将对应Sheet 内已有数值的单元格数据赋值给数组,完成字典创建。将机号、区域信息依次作为关键码KEY,完成字典遍历查找,确定结果信息的存储位置。

在查询系统界面新建文本框按钮“查询”,并为其指定宏模块“数据查找”,在VBA 编辑界面新建“Sub 数据查找()”过程模块,创建代码完成字典创建、遍历查找及结果可视化显示。将查询数据库中所有标题通过Split语句用“|”隔开的字符串分离成数组赋予vTitle,根据输入的查询条件“客舱类别”sPlace 找到对应的查询子数据库,运用Function Dict 将该客舱类别的Sheet 中所有已用单元格的数值赋值给数组vData,并通过语句CreateObject(“Scripting.Dictionary”)完成字典创建。

通过Sheets(“查询系统”).[单元格名称]语句获取输入的查询条件“机号”“区域”,分别赋值于sName和sArea 变量,运用逻辑判断语句,完成字典数组遍历获得查询结果,将查询到的存储位置对应的所有数据信息赋予vFill 结果数组。

通过With Sheets(“查询系统”).[需写入内容的单元格位置信息]= Application.WorksheetFunction.Transpose(vFill)语句对查询系统所在Sheet 下的单元格写入数据,实现在Excel 窗口下的结果可视化显示。

当输入错误或未检索到结果时,通过MsgBox 语句实现相关提示:MsgBox“未查询到信息,请检查是否输入有误”,vbExclamation,“提示”。

2.2 系统界面设计及其关键代码

系统主界面为欢迎界面,在欢迎界面点击“查询系统”按钮可进入查询功能模块,点击后台数据维护按钮,根据提示输入正确的管理员密码可进入数据维护系统界面。两大功能界面均设计有返回主界面按钮,可快速回到欢迎界面。在数据维护系统界面中设计有显示数据库和隐藏数据库按钮,管理员可根据提示,调出需要维护的1 个或多个数据库Sheet 进行操作。数据维护系统界面设计如图5 所示。

图5 数据维护系统界面设计

在数据维护系统界面新建文本框按钮“显示数据库”,并为其指定宏模块shtvisible,在VBA 编辑界面新建“Sub shtvisible()”过程模块,运用语句InputBox(“输入提示语”)实现引导式提示输入,根据用户的输入信息,找到所有匹配的Sheet 名称,运用sht.Visible=xlSheetVisible 语句更改Sheet的显示属性为Visible,实现数据库显示。

在数据维护系统界面新建文本框按钮“返回主界面”,并为其指定宏模块“返回主界面”,在VBA 编辑界面新建“Sub 返回主界面()”过程模块,运用Sheets(“欢迎界面”).Visible=xlSheetVisible 和sht.Visible=xlSheetVery-Hidden 语句更改各个子Sheet 的显示属性,实现返回主界面功能。

2.3 数据源保护设计及其关键代码

考虑到数据安全性,本系统通过VBA 代码设置密码实现数据源保护功能。如图6 所示,在欢迎界面点击“后台数据维护”按钮,根据提示输入正确的管理员密码才可进入数据维护系统界面。

图6 数据源保护设计

Excel 中Sheet 的显示属性分为显示、隐藏、深度隐藏三种,本系统采用深度隐藏属性xlSheetVeryHidden,以防止用户通过右键点击Sheet 改变数据库的显示属性,可进一步实现数据源保护。

除此之外,系统还通过语句“Sheets(“查询系统”).Protect Password:=XXX,DrawingObjects:=True,Contents:=True,Scenarios:=True,AllowFormattingRows:=True”设 计 了界面显示保护功能。在查询系统界面,除查询条件可由用户输入选择外,其他单元格以密码形式设置了自动单元格保护,以防被修改。

3 总结

本文利用字典查找法,基于Excel VBA 开发了多关键字匹配查询的客舱CMM 手册查询系统,输入基本查询条件后,平均查询时长不到1s。系统具有操作简单、运行环境依赖度低、可移植程度高、维护方便等特点,为维修人员提供了一种有力的辅助手段,大大提升了查询客舱CMM 手册的效率,为提高公司飞机客舱设备的维护水平提供助力。

虽然VBA 在应用过程中存在局限性,但与众多程序设计语言相比仍有长处。本文在数据查询处理方面提供了一种新思路。为了简化机械繁重的数据处理工作,VBA 平台提供了开发高效、精确数据处理工具的可能性,可以较好地提升工作效率和便捷性。

猜你喜欢

客舱单元格字典
开心字典
开心字典
客舱内的空气从何而来?
国内主流机型客舱声品质表现分析
玩转方格
玩转方格
民用飞机客舱干燥系统的性能分析
浅谈航空安全员应变能力在客舱擒敌术教学中的培养
浅谈Excel中常见统计个数函数的用法
我是小字典