基于VB 6与Excel的物流软件的开发构想
本文主要介绍以Excel为数据处理平台、以VB 6为界面设置工具的物流软件系统的结构、功能及其实现的关键技术,包括软件开发的可行性分析、物流软件的模块结构,并举例说明系统核心功能的实现方法。
一、软件开发的可行性分析
1. 物流软件开发的客观需要
在日趋激烈的市场竞争中,物流配送企业必须做出更多、更快的决策来满足客户的需求。而科学的决策来自于及时、准确的物流信息并对其进行有效的处理。这对物流配送企业的信息存取、分析能力提出了更高要求,如果信息得不到充分利用,信息的膨胀意味着加大了企业资源的浪费[1]。对物流信息进行有效分析是业务优化的重要前提,也是提高物流企业竞争力一项重要技术。信息处理水平的高低将直接影响企业的运作效率,将会从成本和服务效率方面给供应链上的相关企业造成损失。在某种程度上定量决策比定性决策更可信、更具说服力。目前,定量决策的方法有很多种,如线性规划、非线性规划和不确定性决策等。其中不少方法比较复杂,数学计算烦琐,往往要求业务人员有较深厚的数学功底和较强的计算机操作能力,这对众多的物流从业人员来说要求似乎过高。
2. 物流软件开发的技术可行性
在物流管理中提出来的大量实际问题,其决策变量和约束条件多达几十个、几百个,甚至成千上万个。正如丹捷格教授在第11届数学规划大会上所说:“给70个人分配70项不同的任务,共有70!种方案,是天文数字,要从中找出最优方案,即使用每秒能运算10亿次的大型计算机处理,也要从150年前开始直到太阳熄灭才会有结果”[2]。但是随着电子计算机的发展和介入,以及计算技术的不断提高,解决了大量人们以前无法解决的一些实际问题和模型,使人们获得了巨大的经济效益。如用单纯形法软件、Matlab或相关的运筹学软件包在电子计算机上计算,只需要几秒钟便可得出结果。但这类软件相对来说难以掌握,因其安装少,运用不便,直接影响了物流定量分析的进行和方案的优化选择。
鉴于微型计算机在我国普及程度越来越广,且绝大多数都装有Excel软件这一事实,利用它提供的规划求解工具,解决复杂的方程求值及各类线性或非线形的有约束优化问题,可以方便快捷地帮助人们得到各种规划问题的最佳解[3]。又因VB与Excel都是美国微软公司的产品,二者具有良好的数据通信功能,用 VB 6开发基于Excel数据处理平台的、易于操作的物流软件是完全可行的。管理者只需输入相应的原始数据即可得到分析结果,使复杂的数学求解鼠标化,从而减少人为差错,提高分析效率和分析质量,也有助于制订出科学合理的物流运作方案。
二、物流软件的模块结构
1. 软件的设计思想
物流软件系统,应具有如下特点:一是其所涵盖的定量分析方法应包括目前物流业界常用的多种定量方法,如敏感性分析、指数平滑法、移动平均方法、回归分析法、灰色预测模型和增长率统计法等。二是软件系统的操作应简单实用,具有良好的人机界面、较强的通用性,便于各种层次物流分析的需要。三是具备良好的数据通信接口,目前物流企业最为关心的两个问题就是成本核算和多个物流应用软件之间的数据交换问题。如果不能很好地解决数据交换的问题,物流企业的相关工作人员将不得不进行大量的重复录入,这会大大增加订单的出错率,降低工作效
率[4]。在数据输入、输出过程中,技巧性地设置焦点,可方便、快捷地传递数据,实现数据资源的共享,大大提高读写效率。四是该软件还应具备智能识别功能,用于判断输入信息的正确性,通过自动核对正确后再运算,避免操作步骤错误或数据本身错误得出错误的结果。五是该软件应有准专家系统,其作为定量分析的辅助工具,可依据所评价指标的内容向管理者推荐参考方案。
2. 软件基本框架设计
基于VB 6与Excel的物流软件,其目标是给用户提供一个易于操作的优化平台,为本系统用户提供更好的选址决策、作业优化、配送方案,增强选址的科学性,提高作业效率,节约配送成本。整个系统包括数据输入模块、智能识别模块、数据库、公用模型及函数库、命令文件生成模块、准专家模块、Excel程序驱动模块、数据输出模块等,各模块间的相互联系如图1所示。
(1)数据输入模块。是与用户的接口,负责与用户进行交互,为响应用户要求提供控制界面。
(2)智能识别模块。负责实现系统的自动检错和纠错功能,如对数据类型、数量大小、约束关系、操作步骤等进行实时检查与纠错,为系统的平稳、正确运行提供保障。
(3)数据库。用于保存输入、输出的信息。
(4)公用模型及函数库模块。实现系统各功能的必备组件或频繁使用的功能,如提供系统公共的常量定义、宏定义、数据结构体定义、公共函数等。
(5)命令文件生成模块。根据用户的要求,对输入的原始数据进行编码,使其成为计算机能够执行的命令。
(6)准专家模块。它作为辅助工具,可依据所评价指标的内容和重点,通过修改相关参数来实现对方案的进一步优化和分析。
(7)Excel程序驱动模块。作为数据分析的后台,通过VB命令将VBA代码装入Excel文件并运行,并与系统软件进行数据交换。
(8)数据输出模块。根据用户的需求将分析结果或相关数据以适当的形式表示出来,便于交流或备查。
三、系统核心功能的实现举例
1. 问题的描述
假定有6项配送作业W1,W2,…,W6,有8个可供选择的配送时间段T1,T2,…,T8,第i项配送作业在时段j执行的成本为Cij,相关数据如表1所示。要对各项配送作业合理安排一个配送时段,使配送总成本最小。
该问题可归结为在约束条件下的规划求解问题,模型如下:
minTC=C•X。①
X=1第i个配送作业安排在第j个配送时段;0第i个配送作业不安排在第j个配送时段。②
s. t. X=1( j=1,2,…,8);X≤6( i=1,2,…,6)。③
第1个约束条件表示给第i项配送作业安排一个唯一的配送时段,第2个约束条件表示第j个配送时段安排的配送作业数量不超过6个。
2. 基于VB 6与Excel的实现过程
第一步:用VB 6建立数据输入界面,并输入表1中的数据,如图2所示。
第二步:将第一步输入的数据和规划求解模型通过计算机命令自动写入到Excel文档中。核心功能的部分代码如下:
Sub WriteCodeFile(TempFile As String)
Open TempFile For Output As #3
Print #3, Data
'以下是保存配送作业的成本数据
indx = 0
For Row = 1 To '以配送作业的个数作为行循环
For Col = 1 To '以配送时段的个数作为列循环
Data = "Worksheets(" + Chr(34)+ "Sheet1" + Chr(34)+ ").Cells(" + Str(Row + 3)+ "," + Str(Col + 1)+ ").value=" + Str(Val(2(indx).Text))
Data = Replace(Data, " ", "") '清除所有空格
Print #3, Data
indx = indx + 1
Next Col
Next Row
……
'以下输出目标函数中的求和公式
Data1 = Chr(34)+ "=SUM(R[-" + Str()+ "]C:R[-1]" + "C[" + Str( - 1)+ "])" + Chr(34)'
Data = "Worksheets(" + Chr(34)+ "Sheet1" + Chr(34)+ ").Cells(" + Str(3 * + 8)+ ", 2).FormulaR1C1=" + Data1
Data = Replace(Data, " ", "")
Print #3, Data
Close #3
Call WriteSolverCode(TempFile)'生成规划求解代码
End Sub
第三步:启动命令文件,进行配送作业的优化计算。
第四步:将计算结果返回到数据输入界面。依据本文思路开发的物流规划软件的计算结果如图3所示。
四、结束语
本软件在制作过程中注重实用性和通用性,可以很好地对配送中心的选址、配送作业的优化、运输决策等进行管理和分析,用户只需输入必要的原始数据,通过轻松点击鼠标,就可得到准确的分析结果,极大地减少了决策者的工作量,节省诸多人力、物力、财力,大大地提高物流配送的效率和企业的效益。
作者:龚辉锋 赵玉意 秦立公 来源:中国管理信息化 2008年22期
下一篇:关于计算机软件开发技术的发展