随着社会经济的不断发展, 很多单位对办公物品管理, 尤其是仓库管理等需求越来越复杂, 迫切需要条理清晰的软件来进行辅助管理, 一些企业甚至为此实现了ERP (企业资源规划) [1,2], 而大部分的仓库管理员又都有自己对仓库管理的实际需求, 因此最好的方法是由他们自己来编写适合自己的仓库管理软件。但绝大多数仓库管理员本身并不是计算机科班出身, 因此他们需要一个简单易用不需要太多学习成本的编程工具, 易语言正是适合他们的一个绝好的工具。
易语言是一个由中国人开发的、拥有完全知识产权的、采用全中文编程的程序开发软件, 适合中国国情, 同时具备高可视化、面向对象等特点[3]。其编程环境方便直观, 快捷实用, 它不仅仅支持程序窗体界面设计的可视化, 而且代码流程图也完整地嵌入程序代码中[4], 同时内置一种专用的输入法, 支持快速录入、即时命令函数提示等功能, 突破输入速度瓶颈[5]。易语言中文语句命令中都是融入了汉语的表达方式[6]。作为一个RAD (Rapid Application Develop) [7]开发工具, 利用其自带的数据库, 很容易编写出符合初学者思维的仓库管理软件。
文中重点在于探讨使用易语言快速实现仓库管理软件, 保证物品信息的入库、出库、浏览及查询等基本功能, 使其更方便地利于仓库物品的管理和查询。该软件具有如下设计目标:
(1) 软件对仓库物品信息进行存档, 做到入库准确、方便、快捷;
(2) 软件具备一定程度的通用性, 仓库管理员能针对实际情况对物品进行自定义分类;
(3) 软件能提供按日期、类型等条件进行查询。
数据库是仓库管理软件的基础, 软件开发过程中数据库设计的主要任务是根据用户的需求及所选数据库的特性设计出合理的数据模式[8]。开放数据库互联 (Open DataBase Connectivity, ODBC) 与ActiveX数据对象 (ActiveX Data Object, ADO) 是两种访问数据库的接口技术, 它们有各自的特点[9,10]。考虑到本软件是一个旨在说明如何使用易语言快速开发的例程, 同时仓库管理软件本身就是一张在数据库、粗糙集理论中就有重要应用的二维表[11], 因此这里并没有选择上述两种方式, 而是选择了易语言自带的数据库edb, 建立两张二维存储表, 分别为物品信息表data.edb和用户存取信息表user.edb, 以及一个临时表t.edb。
2.2.1 结构框图
根据仓库管理软件的特点及实际工作需求, 按照快速开发的原则, 本软件尽可能设计的结构简单、流程清晰。其结构图如图1所示。
(1) 物品信息查询:作为一个仓库管理软件, 首要的功能就是必须要能够给使用者一个当前所有仓库物品的信息, 而且最好能支持分门别类的浏览, 即支持以各种条件进行查询。文中实现的软件总体界面如图2所示。
(2) 添加入库:添加入库功能也是仓库管理软件的基本功能。入库的时候需要有入库时间、器具名称、器具类型、入库数量、当前数量及其他备注等详细信息, 如图3所示。
(3) 出库登记:仓库管理软件还必须要有详细进出库的信息, 特别是出库信息的记录, 才能称其为管理软件。在文中所编写的仓库管理软件中, 将领取记录和领取登记结合在一个界面上, 这样方便管理者了解当前物品的历史记录。其界面如图4所示。
易语言有着优秀的界面制作工具, 使用其IDE能够快速地制作大多数软件界面。在主界面制作过程中, 主要选择如下的控件:
1个菜单资源;
1个工具条资源;
1个分组框资源, 并且其中包括2个日期框控件、1个组合框控件以及若干按钮控件和标签控件;
1个超级列表框控件。
从图2与主界面制作的对比中可以看出, 最终实现的软件界面比设计阶段的软件界面要美观得多, 这是因为软件使用了一款皮肤插件:skinsharp。本工程使用了其基于dll实现的免费使用版本。
软件打开后, 首先出现所有的数据, 因此软件加载后除了进行一些初始化工作外, 最重要的就是调用按钮“显示全部入库”的单击事件函数。
打开数据库主要是建立软件与数据库之间的链接, 此时软件主要打开用于存储物品信息的数据库data.edb, 代码如下:
其中调用的“加载数据 () ”即为按钮“显示全部入库”的单击事件函数, 其实现代码如下:
入库功能即每一次有新物品入库时必须进行详细的登记操作, 具体包括物品名称、类型、本次入库的数量及当前数量等信息。其中, 出于对仓库管理的记录要求, 相同产品的不同批次入库不进行合并处理, 而是采用多次原始记录, 这样便于对历史记录的查询。其实现代码如下:
如前所述, 此对话框包含两个功能, 即领取记录和领取登记。此对话框的出现, 必须是右键在主界面单击某对应的信息记录, 或者左键选择记录后点击工具条领取登记的按钮才能出现, 这样的好处是每次一进入对话框, 即是针对某个具体的物品进行操作, 减少了操作步骤。
因为将具体物品的查询和领取放在一个对话框中, 所以在此对话框关闭的时候要判断是否新增了领取记录, 根据此判断条件来确认是否在数据库中新增领取记录。在新增领取记录前和后要注意数据库的配置。其局部处理流程图如5所示:
其具体实现代码如下:
查询功能包含了3种查询条件, 分别是按时间、按物品型号及显示全部信息。其中显示全部信息已经在之前有所描述, 因此此处只阐述按时间和按物品型号的查询。
由于易自带的数据库edb不支持SQL查询, 而时间条件包含两个时间点, 因此在设计按时间条件进行查询的时候使用到临时表t.edb, 此表的作用是将符合时间条件的记录从data.edb中提取出来存储入临时表中, 然后再将临时表中的数据加载入主界面。这样的好处是便于代码的复用。其具体实现代码如下:
而对于按照物品型号类型进行查询, 则不用使用临时表, 而是直接从data.edb进行读取, 只要判断“器具类型”这一字段即可。具体实现代码如下:
为了美化最终文件的界面, 本软件使用了免费皮肤软件skinsharp, 采用dll的方式进行加载。作为一款快速开发工具, 易语言对标准dll有着良好的支持。其dll导出函数申明如下:
.DLL命令 addskin, , “SkinH_EL.dll”, “SkinH_Attach”
在__启动窗口_创建完毕函数中简单调用addskin () , 即完成了软件换肤。
从上述软件开发的全过程中可以看出, 采用全中文编程的易语言作为非科班出身的计算机爱好者进行仓库软件开发的平台, 能大量减少开发者的学习成本, 同时由于易语言对dll等功能的支持, 为其软件本身功能提供了良好的扩展性。由于易语言具有操作简单和功能强大的特点, 且命令代码基本不需记忆[12], 因此, 要寻求一个与数据库相关的快速开发平台, 易语言是一个非常好的选择。
上一篇: 仓库管理系统在物流课程中的应用——仓库管理和物料管理
下一篇: 供水工程备品备件仓库管理的探究