企业进销存系统的设计与实现.docx
《企业进销存系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《企业进销存系统的设计与实现.docx(32页珍藏版)》请在冰豆网上搜索。
![企业进销存系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-2/6/1af44ea2-e5f6-4ace-8d5c-8071d1699787/1af44ea2-e5f6-4ace-8d5c-8071d16997871.gif)
企业进销存系统的设计与实现
企业进销存系统的设计与实现
我声明,所呈交的毕业论文是本人在老师指导下进行的研究工作及取得的研究成果。
据我查证,除了文中专门加以标注和致谢的地点外,论文中不包含其他人差不多发表或撰写过的研究成果,也不包含为获得其他教育机构的学位或证书而使用过的材料。
我承诺,论文中的所有内容均真实、可信。
毕业论文作者签名:
签名日期:
年月日
企业进销存系统的设计与实现
[摘要]进销存信息治理系统是集产品供应治理、库存治理、销售治理以及帐务治理于一身的企业经营治理的核心系统。
利用运算机来对企业经营进行治理,能够克服传统人工治理的效率低下、数据出入等诸多弊病。
对企业进销存信息治理系统的设计与开发,经历了需求分析、总体设计、详细设计以及具体实现等各个时期,详细阐述了整个进销存信息治理系统的开发过程。
系统的开发过程与体会可供同类企业参考。
系统的运行和测试说明:
该系统运行可靠、稳固、操作方便,对信息的处理方便快捷,达到了预定目的,满足了企业的实际需求。
[关键词]MFC;SQLServer2000;ADO
ADesignandImplementationofEnterpriseDistributionManagementSystem
Abstract:
TheEnterpriseDistributionManagementSystemisacoreofenterpriseoperationandmanagementsystems,whichincludesproductssupplymanagement,inventoryaccounting,salesmanagementandaccountingmanagement.Utilizationofcomputertomanageenterprise'sbusinesscanovercomethosemaladiessuchaslowefficiency,dataerrorsandsoon,whichcausedbytraditionallabormanagement.BaseonthedevelopmentandapplicationofdesignandimplementationofEnterpriseDistributionManagementSystem,thisarticleelaboratesthefunctionandstructureofthesystemandadvantagescomparedwithtraditionalmanualmethodfromtheinitialstageofrequirementsanalysis,thenoveralldesign,detaileddesigntorealizationportionandtestresult.Thedevelopmentprocessofthesystemandexperiencecanbeareferencetoothersimilarenterprises.Thetrailoperationandtestofsystemshows:
thissystemoperatesreliablyandstably,manipulatesconveniently.Informationprocessingarequickandconvenient,whichhasachievedthepredeterminedpurposeofenterprise'sactualdemand.
Keywords:
MFC;SQLServer2000;ADO
1绪论
1.1引言
市场在不断变化,企业在应对市场变化中所采纳的技术与治理也在迅猛进展。
随着运算机技术在近几十年中的不断迅猛进展,其处理信息能力上的优势相关于传统手工的企业治理方式变得越来越明显。
企业要生存,要进展就必须将运算机技术应用到企业内部治理的各个角落,用运算机来运转和流通企业内部的各种信息[1]。
如此既能够实现数据的实时共享,操纵共享数据的冗余度,使企业内部的数据信息得到统一的治理,提高数据信息的利用率,又能够实现结构化的整体数据形式,从而极大的提高了企业应对市场做出决策的速度。
这在现今猛烈的市场竞争中是极为宝贵的。
商品的流通是每个流通领域的企业所关注的重中之重,而进销存信息治理系统正是为了统一治理商品在企业内部流通的信息而设计出来的。
在职能划分上,一个差不多的进销存信息治理系统大致分为采购治理、库存治理以及销售治理。
而这些差不多上围绕着商品的流通展开的[2]。
采纳进销存治理信息系统将给企业治理来了明显的经济效益和社会效益。
要紧表达在:
极大提高了工作人员的工作效率,大大减少了以往入货、出库流程繁琐,杂乱,周期长的弊端[3]。
基于进销存治理的全面自动化,能够减少入库治理、出库治理及库存治理中的漏洞,能够节约许多治理开支,增加企业收入。
进销存治理的操作自动化和信息的电子化,全面提高了治理水平。
随着我国改革开放的不断深入,经济飞速的进展,企业要想生存、进展,要想在猛烈的市场竞争中立于不败之地,没有现代化的治理是万万不行的,进销存治理的全面自动化、信息化则是其中极其重要的部分。
为了加快进销存治理自动化的步伐,提高治理业务处理效率,建立进销存治理信息系统已变得十分重要。
运算机在商品流通领域的应用在二十一世纪的今天差不多十分普及了,然而进销存信息治理软件却仍旧并不成熟、规范。
这一状况要紧是由于各经营单位多变的经营方式以及各异的运行模式所引起的,也给流通领域的行业人员以及运算机软件开发人员造成了一定的困扰。
在具体开发的过程中,盲目照搬欧美等国的大型商业软件使企业在付出了一定的经济代价的同时却得不到相应的成效,而在一些国内本土软件中半手工的作业流程更是屡见不鲜,这些都没有让运算机的强大功能在降低运营成本,提高经济效益上的最大作用[4]。
在猛烈的市场竞争中,流通领域的企业也在不断地应对着市场在积极的改变,这也使得进销存信息治理系统作为一个与治理对象紧密相关的有机组成部分,需要长期不断的研究与分析,并在此基础上发觉规律,按照规律来打造一个真正适合市场,适合企业本身需求的进销存信息治理系统。
因此这也表达了开发如此一个系统的特点与难点[5]。
具体的应用现状有以下几点:
(1)单项应用多,综合性的系统少。
这些项目往往仅限于作业层的处理和简单的操纵,专门少设计推测、决策处理,因此只能代替部分重复繁重的人工操作及加快数据的处理速度,不能发挥MIS的提高整个企业效益的作用[6]。
(2)专项开发多,商品化的系统少。
专门多系统是针对某企业的具体要求开发的。
工作量大、开发周期长、成本高。
目前能使用某一范畴,便于爱护的通用性系统少。
(3)开发的系统多,不断爱护改进的系统少。
据国外统计,在软件系统的整个生命周期中,爱护的费用占系统费用的三分之二,绝大多数软件人员实际上是从事系统爱护工作。
我国是重开发、轻爱护,系统一旦开发出来后,后期改进的工作就停滞不前[7]。
(4)低水平重复开发的系统多,全面成功,效益显著的系统少。
1.2研究框架
1.2.1研究内容
进销存是商品流通领域的常见经营模式。
而竭其本质确实是以商品流通为基础,以票务为主线,以帐务作为补充的三层数据流,而差不多的功能则无非商品进货、库存和销售。
在商品进货流程中,系统以企业本身为实体,将进货表述成依照票务的记录,外界实体流入企业的过程。
在这种过程中,又能够分成从供应商正常情形下入库的进货,相关企业之间相互调货而显现的调货,相关企业之间的借贷物资的借入、还入,还有以及入库的商品显现入库退货。
在商品的库存治理中,系统以商品为要紧支点,通过与进货、销售模块的数据交换,提供使用者强大的查询功能。
商品在入库时,由质量检验人员对商品进行质检,合格后方入库,而仓库保管人员则记录商品入库的具体信息[8]。
在商品的销售流程中,假如把企业本身作为一个实体,则销售是企业依照票务,对外界实体的流出过程[9]。
其中有企业对客户的正常销售而产生的销售票务的销售治理,各企业互相调货而产生的调出单的调出治理,企业之间借贷而产生的借出单和还出单的借出治理和还出治理,还有销售退货治理[10]
1.2.2研究方法
第一分析目前市场上已有的进销存信息治理系统的功能以及文献,学习其中的优秀的方案及实现技术,同时发觉其中的不足和能够改进之处熟悉VisualC++的数据类型和编程方式,然后研究ADO技术和打印操作技术。
ADO技术以其简单高效的特点被越来越多的用于进行数据库操作。
通过设计整个进销存信息治理系统的框架和功能模块,确定每个功能模块实现的技术和方法。
最后编程开发模块、组装系统,安装测试,分析试验结果并优化完善。
1.2.3研究目标
在VisualC++6.0的平台上,利用MFC技术和后台SQLServer2000的数据库支持实现整个进销存信息治理系统。
其中包括实现商品的购进和支出、商品库存盘点、商品查询治理、结款帐务治理和报表打印功能。
还在实现以上功能的基础上使系统尽可能人性化,方便操作和治理。
1.3术语说明
ADO:
微软公司的ADO(ActiveXDataObjects)是一个用于存取数据源的COM组件[7]。
它提供了编程语言和统一数据访问方式OLEDB的一个中间层。
承诺开发人员编写访问数据的代码而不用关怀数据库是如何实现的,而只用关怀到数据库的连接。
访问数据库的时候,关于SQL的知识不是必要的,然而特定数据库支持的SQL命令仍能够通过ADO中的命令对象来执行。
2系统总体功能分析
2.1需求分析
软件的需求分析是软件生存周期中专门重要的时期。
它的好坏直截了当决定软件的质量。
需求分析的差不多任务是要准确地定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。
它的要紧用途是明确需求、为用户和开发人员提供一起协商讨论的基础、作为设计和实现的依据。
由于不同的公司使用进销存治理系统的侧重点各不相同,为了使整个需求更具完整性、准确性,为了使猎取的用户需求更精确和更完全,能够最大程度的满足用户的需要,故依照本公司特点来定制进销存信息治理系统[11]。
通过对公司日常进销存流程的分析,以及专门好的适应中小企业关于一个进销存信息治理系统的需求,总结出以下各点必须满足的功能:
(1)实现商品的购入和销售。
(2)实现商品的盘点。
(3)实现充分的商品查询功能。
(4)实现关于供应商和客户的借款治理。
(5)实现商品的报表打印功能。
2.2功能规划
依照需求分析,适应于企业的实际应用,杭州万太进销存信息治理系统要紧划分为6个功能模块。
(1)差不多信息治理
差不多信息治理模块包含了操作员信息治理、商品信息治理、供应商信息治理、客户信息治理和商品库存治理5部分,让这些日常差不多信息一目了然,方便治理。
(2)商品入库治理模块
商品入库治理模块包含了商品入库治理和商品入库退货治理2部分。
(3)商品销售治理模块
商品销售治理模块包含了商品销售和商品销售退货2部分。
(4)综合查询治理模块
综合查询治理模块包含了商品入库查询、商品入库退货查询、商品销售查询和商品销售退货查询5部分。
(5)帐务治理模块
帐务治理模块包含了供应商结款治理和客户结款治理2部分。
(6)系统治理模块
其功能划分结构图如下图所示
图表21进销存系统功能结构图
2.3设计目标
本系统最终目标是以运算机为工具,通过对公司进销存信息的高效治理。
把治理人员从繁琐的数据运算处理中解脱出来,使其有更多的精力从事经营治理政策的研究实施,打算的制定执行和运行质量的监督检查,从而全面提高经济效益[12]。
具体要求如下所列:
(1)实现对商品、供应商、客户三大信息的治理。
(2)实现商品入库、商品入库退货的治理。
(3)实现对商品销售、商品销售退货的治理。
(4)实现对商品进销存各环节中的查询。
(5)实现与客户、供应商之间的结款治理和查询。
(6)系统人性化,界面友好,运行稳固。
另外,本系统的开发环境如下:
(1)前台开发环境:
VISUALC++6.0
(2)后台数据库环境:
MICROSOFTSQLSERVER2000
2.4数据库设计
数据库是指自描述的完整记录的集合。
数据库是自描述的:
它除了包含用户的源数据外,还包含关于它本身结构的描述。
数据库的自描述特点,它提高了程序/数据独立性,它使得检查数据库本身就确定数据库的结构和内容成为可能[4]。
数据库包含用户数据文件和其他内容,数据库在元数据中包含关于自身的描述。
另外,数据库还包含用来表示数据之间的关系和提高数据库应用的性能的索引。
最后,数据库还包含关于使用数据库的应用程序的数据。
数据库差不多的功能,要紧有三个方面:
(1)信息扫瞄和查询:
(2)信息的修改、添加和删除;
(3)信息的统计、汇总等。
设计一个数据库需要我们耐心收集和分析数据,认真理清数据间的关系,排除对数据库应用不利的隐患等等。
在整个设计过程中,我们必须按步骤认真完成。
一个数据库的设计好坏将直截了当阻碍今后基于该数据库的应用。
另外,数据库也不是独立存在的,它总是与具体的应用相关的,为具体的应用而建立的。
因此在设计数据库之前我们必须明确应用的目的,在设计数据库的时候也应时刻考虑用户需求,数据库与具体应用之间是相辅相成的关系。
其具体分析后的ER图如下所示。
图表22进销存系统E-R图
3系统详细设计与实现
3.1数据库具体实现
依照数据库的ER图,数据库共设计了18张数据表:
图表31数据表列表
下面对重要数据表做详细说明。
(1)商品信息表(tb_merchandiseinfo)
商品信息表用于储存商品详细信息。
结构如下图所示。
表格31商品信息表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
编号
ID
Varchar
30
否
商品名称
name
Varchar
50
否
规格
spec
Varchar
20
是
助记码
shortname
Varchar
10
否
默认价格
defaultprice
money
8
否
厂家
manufacturer
Varchar
30
是
备注
memo
Varchar
100
是
(2)操作员信息表(tb_operator)
操作员信息表用于储存操作员详细信息。
结构如下图所示。
表格32操作员信息表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
操作员姓名
name
varchar
30
否
操作员密码
password
varchar
50
否
操作员级别
level
smallint
2
否
(3)供应商信息表(tb_providerinfo)
供应商信息表用于储存供应商详细信息。
结构如下图所示。
表格33供应商信息表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
供应商名称
provider
varchar
50
否
法人
corporation
varchar
30
否
负责人
principal
varchar
10
是
联系
phone
varchar
30
是
详细地址
addr
varchar
50
是
网址
web
varchar
50
是
邮箱
e_mail
varchar
30
是
(4)商品库存表(tb_merchandisestorage)
商品库存表用于储存商品库存详细信息。
结构如下图所示。
表格34商品库存表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
库存编号
merchandiseID
varchar
30
否
库存名称
storagename
varchar
30
否
库存数量
storagenum
float
8
否
(5)商品入库主表(tb_instore_main)
商品入库主表用于储存入库商品的信息。
结构如下图所示。
表格35商品入库主表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
入库单号
ID
varchar
30
否
供应商
provider
varchar
50
否
操作员
operator
varchar
50
否
折扣
rebate
float
8
否
总计
sumtotal
money
8
否
应对金额
paymoney
money
8
否
实付金额
factmoney
money
8
否
时刻
intime
datetime
8
否
(6)入库退货明细表(tb_cancelinstock_sub)
入库退货明细表用于记录入库退货的详细信息。
结构如下图所示。
表格36入库退货明细表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
退货单号
cancelID
varchar
30
是
商品编号
merchandiseID
varchar
30
否
单价
unitprice
money
8
否
数量
numbers
float
8
否
折扣
rebate
float
8
否
应对金额
paymoney
money
8
否
仓库名称
stockname
varchar
30
否
(7)商品销售主表(tb_sell_main)
商品销售主表用于记录商品销售的相关信息。
结构如下图所示。
表格37商品销售主表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
销售单号
sellid
varchar
30
否
客户
customer
varchar
30
否
操作员
operator
varchar
30
否
折扣
rebate
float
8
否
总计
sumtotal
money
8
否
应对金额
paymoney
money
8
否
实付金额
factmoney
money
8
否
时刻
intime
datetime
8
否
(8)销售退货主表(tb_cancelsell_main)
销售退货主表用于记录商品销售退货的相关信息。
结构如下图所示。
表格38销售退货主表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
退货单号
cancelID
varchar
30
否
客户
customer
varchar
30
否
操作员
operator
varchar
30
否
折扣
rebate
float
8
否
总计
sumtotal
money
8
否
应退金额
paymoney
money
8
否
实退金额
factmoney
money
8
否
时刻
intime
datetime
8
否
(9)供应商结款表(tb_providerpay)
供应商结款表用于记录供应商结款的相关信息。
结构如下图所示。
表格39供应商结款表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
结款编号
payID
varchar
30
否
供应商名称
provider
varchar
30
否
结款人
checker
varchar
50
否
结款金额
paymoney
money
8
否
时刻
paytime
datetime
8
否
(10)客户往来账表(tb_customeraccount)
客户往来账表用于记录客户往来帐务的相关信息。
结构如下图所示。
表格310客户往来帐表
列名(中文)
列名(英文)
数据类型
宽度
是否承诺空
客户
customer
varchar
30
否
帐务金额
account
money
8
否
3.2主对话框与系统登录模块
(1)主对话框的实现
作为整个系统的载体,主对话框的设计显得尤为重要,它不仅是人机交互的界面,也是整个信息系统友好性和人性化的最直截了当的表达。
图表32进销存信息系统的菜单
在让主对话框操作简单明了的同时,一些个性化的设计也专门重要。
为了让系统显得更加的人性化,依照操作员的一些常用操作,制作了专门的工具栏,如此操作员在做一些常用操作时就不用拉开纷杂的菜单,而能够直截了当点击工具栏中的图标来进行操作。
通常创建工具栏能够引用MSDN中提供的CSTANDARDBAR类或者使用MFC类库中的CTOOLBARCTRL类。
系统中使用后者来创建工具栏。
(2)登陆模块的实现
登录对话框是对整个进销存系统安全性的一个把关,只有系统内登记的操作员才能够登录并进行对应其权限的操作。
用MFCClassWizard为控件定义变量
图表33为对话框上的控件设置变量
登录对话框将用户输入的用户名和密码储存,并跟数据库里的信息进行比对。
voidCDlgLogin:
:
OnButton1()
{
GetDlgItemText(IDC_USER,strUser);
GetDlgItemText(IDC_PASS,strPassWord);
EndDialog(IDOK);
}
3.3操作员信息治理模块
操作员信息治理模块实现操作员的信息添加、修改和删除。
为了整个系统的安全性考虑,进销存信息治理系统添加了系统登录的模块,使得不同权限的操作员能够进行相应的操作。
新建一个类名为COpCtrlDlg的对话框:
图表34操作员信息治理设计窗口
用InitCtrlData成员函数来初始化所有的控件内容和属性:
m_hTabCtrl.InsertItem(0,"操作员差不多信息");
m_hTabCtrl.InsertItem(1,"操作员列表");
m_hTabCtrl.ShowWindow
(1);
//InitbuttonCtrl
m_hListOp.InsertColumn(0,"操作员姓名",LVCFMT_CENTER,100);
m_hListOp.InsertColumn(1,"操作员密码",LVCFMT_CENTER,100);
m_hListOp.InsertColumn(2,"操作员级别",LVCFMT_CENTER,100);
m_hListOp.SetExtendedStyle(m_hListOp.GetStyle()|LVS_EX_FULLROWSELECT);
3.4商品进货模块
商品进货模块实现商品入库信息的添加、修改和储存。
新建对话框并设计其控件如下:
图表35商品入库治理设计窗口
事实上现过程中的关键技术如下:
(1)切换标签页:
先