商品进销存管理系统.docx
《商品进销存管理系统.docx》由会员分享,可在线阅读,更多相关《商品进销存管理系统.docx(50页珍藏版)》请在冰点文库上搜索。
商品进销存管理系统
第一章引言
随着计算机技术的迅速发展,管理信息系统的实施在技术上已逐步成熟,要提高企业效益,就必须加强企业的管理,进销存管理系统作为商品或者货物管理必须要涉及到的部分,在各种企业中有广泛的应用前景.在传统企业的经营活动中,进、销、存一般都是手工管理,这样的管理浪费人力、物力、财力,而且效率非常低。
在我国数量众多的企业中,中小企业占了绝大多数。
这些企业也不可避免地要加入国际化企业的竞争行列,而实现企业信息化是参与挑战的必要条件。
但是中小企业的多样性及其灵活多变的经营方式,加上相关投入量的限制,使得很多中小企业没有进行信息化建设。
实际上大部分中小企业需要的只是能解决进销存管理、财务管理等的基础软件。
因此,开发基于中小企业应用的进销存管理系统优为重要。
在该系统中要实现对商品进货基本信息的录入、查询、打印,库存信息的录入、查询、打印,还有商品销售信息的商品入库、出库,销售记录查询、打印。
系统维护主要对操作员的口令修改和对数据的转入和转出,方便系统操作员进行系统操作。
本文所设计的进销存管理系统可以基本上满足中小商品管理公司的进销存管理。
本系统将通过使用VisualFoxPro6.0简体中文版开发进销存管理系统,可以解决这些问题大大提高企业的效益,为企业创造较大的商业机会。
但由于本人软件设计方面的经验不足,因此本系统在设计过程中出现了许多的困难,我查阅了许多的资料,并参考了别人的程序,才最终完成了本系统的设计。
第二章研究现状及设计目标
2.1应用背景
在我国数量众多的企业中,中小企业占了绝大多数。
这些企业也不可避免地要加入国际化企业的竞争行列,而实现企业信息化是参与挑战的必要条件。
但是中小企业的多样性及其灵活多变的经营方式,加上相关投入量的限制,使得很多中小企业没有进行信息化建设。
实际上大部分中小企业需要的只是能解决进销存管理、财务管理等的基础软件。
因此,开发基于中小企业应用的进销存管理系统优为重要。
一般的说,软件开发要经过系统分析、系统设计、系统实施和维护几个阶段。
(1)分析阶段
在软件开发的分析阶段,信息收集是决定软件项目可行性的重要环节。
程序设计要通过对开发项目信息的收集,确定系统目标、软件开发的总体思路及所需的时间等。
(2)设计阶段
在软件开发的设计阶段,首先要对软件开发进行总体规划,认真细致地搞好规划可以省时、省力、省资金;然后具体设计程序完成的任务、程序输入输出的要求及采用的数据库等,并用算法描述工具详细描述算法。
(3)实施阶段
在软件开发的实施阶段,要按系统论的思想,把程序对象视为一个大的系统,然后将这个大系统分成若干小系统,保证高级控制程序能够控制各个功能模块。
一般采用“自顶向下”的设计思想开发高级控制程序,并逐级控制更低一层的模块,每一种模块执行一个独立、精确的任务,且受控于高级程序。
编写程序时要坚持使程序易阅读、易维护的原则,并使过程和函数尽量小而简明,使模块间的接口数目尽量的少。
(4)维护阶段
在软件开发的维护阶段,要经常修正系统程序的缺陷,增加新的功能。
在这个阶段,测试系统的性能尤为关键,要通过调试检查语法错误和算法设计错误。
并加以修正。
2.2 系统功能
本系统中的商品进销存管理系统完成的功能主要包括如下内容。
1.系统登录:
只有使用正确的用户名与密码登录后才能使用系统提供的各项功能。
2.系统管理:
就是要进行用户信息的管理,包括添加用户、删除用户等功能。
3.商品信息:
就是对商品的进销存管理的一些信息,包括商品入库信息的入库、删除、修改、浏览、退出等功能。
商品进货信息的确定、打印、删除、修改、浏览和退出等功能。
商品销售信息的商品销售统计等功能。
4.商品查询信息:
就是关于商品的一些查询信息,包括进货查询(按商品名称、按进货日期、按联系电话和按联系人查询)、销售查询(按顾客名称、按商品名称、按销售日期、按商品编号和按电话号码查询)、库存查询(按库存号、按商品名、按入库时间、按商品编号查询)。
5.打印报表:
就是关于本系统商品的一些打印报表信息,包括进货信息报表、库存信息报表和销售信息报表的预览和打印。
6.系统维护:
包括修改密码、商品进销存数据转入和商品进销存数据转出等功能。
7.退出系统:
就是本系统的结束退出本系统。
在该系统中要实现对商品进货基本信息的录入、查询、打印,库存信息的录入、查询、打印,还有商品销售信息的商品入库、出库,销售记录查询、打印。
系统维护主要对操作员的口令修改和对数据的转入和转出,方便系统操作员进行系统操作。
2.3系统特点
本系统的主要特点是界面清晰、易于操作、功能较完善,系统运行的硬件要求不高。
2.4开发工具与运行环境
(1)开发工具
本系统采用面向对象可视化编程工具VisualFoxPro6.0开发。
(2)运行环境
硬件环境:
PII350MHz以上处理器、32MB以上内存、一般需240MB硬盘空间。
第三章解决的几个关键问题
3.1系统中模块的划分
进入VisualFoxPro之后,新建一个项目——商品进销存管理系统.pjx,将以上所列的数据库及数据库中的表分别建入项目文件的数据页面的数据库之中,各临时表加入到数据页面的自由表中。
通过“项目管理器——新建”对话框在文档中建立14个表单文档,分别是报表汇总、登录界面、进货查询表、库存查询表、销售查询表、入库表、入库浏览表、商品销售统计、系统维护表、系统主界面、进货信息表、商品入库表、修改密码和添加用户等表单。
同时在此对话框的报表项目中创建报表,分别为:
kc1、sp1、xs1、进货报表、口令、库存报表、销售报表。
数据记录来源于项目中的数据库中的表。
3.2系统开发要掌握的几个技术
项目管理器:
项目是指文件、数据、文档和VisualFoxPro对象的集合。
项目管理器是VisualFoxPro6.0用来管理、组织数据和对象的主要工具。
VisualFoxPro6.0项目存储在以.pjx为扩展名的文件中。
数据库:
表属于数据库中的一部分,建立表时先打开所属的数据库,在数据库中建立新表,也可以在创建表后往数据库中添加表。
表单:
表单是用户和VisualFoxPro6.0应用程序之间进行数据交换的接口。
表单包含多种控件,控件是一个可以图形化的方式显示出来并能与用户进行交流的对象。
菜单:
菜单是一个应用程序为用户提供功能服务的窗口,在VisualFoxPro6.0中,设计自己的菜单,给应用程序添加一个友好的界面,方便用户操作。
主程序设计:
主程序的起点,一般包括初始化环境,显示启动界面,控制时间循环,退出应用程序后恢复原来发系统环境。
编译应用程序:
一个完整的VisualFoxPro数据库应用系统,最终运行环境应该脱离VisualFoxPro系统。
因此,还应该把设计好的应用程序进行连编,就是把数据库、表单、报表、菜单等应用程序文件的扩展名可以连编成一个.app应用文件或一个.exe可执行文件。
第四章系统结构与模型
4.1 系统功能的设计思想
企业商品进、销、存系统主要目的和任务是利用计算机快速、准确处理大量数据的特点,对商品实现自动化管理,及时处理信息,确定经营决策,提高经营者对市场的预测能力,提高员工的工作效率和企业的经济效益。
在该系统中要实现对商品进货基本信息的录入、查询、打印,库存信息的录入、查询、打印,还有商品销售信息的商品入库、出库,销售记录查询、打印。
系统维护主要对操作员的口令修改和对数据的转入和转出,方便系统操作员进行系统操作。
本系统中的商品进销存管理系统完成的功能主要包括如下内容。
1.系统登录:
只有使用正确的用户名与密码登录后才能使用系统提供的各项功能。
2.系统管理:
就是要进行用户信息的管理,包括添加用户、删除用户、计算器等功能。
3.商品信息:
就是对商品的进销存管理的一些信息,包括商品入库信息的入库、删除、修改、浏览、退出等功能。
商品进货信息的确定、打印、删除、修改、浏览和退出等功能。
商品销售信息的商品销售统计等功能。
4.商品查询信息:
就是关于商品的一些查询信息,包括进货查询(按商品名称、按进货日期、按联系电话和按联系人查询)、销售查询(按顾客名称、按商品名称、按销售日期、按商品编号和按电话号码查询)、库存查询(按库存号、按商品名、按入库时间、按商品编号查询)。
5.打印报表:
就是关于本系统商品的一些打印报表信息,包括进货信息报表、库存信息报表和销售信息报表的预览和打印。
6.系统维护:
包括修改密码、商品进销存数据转入和商品进销存数据转出等功能。
7.退出系统:
就是本系统的结束退出本系统。
4.2 系统功能模块划分
考虑到计算机技术的发展及销售业务的扩展,在全面调查的基础上,通过对现行管理的分析,提出系统的目标需求和功能分析的总体逻辑描述。
确定开发思路之后,紧接着要进行详细的系统调查和认真的需求分析,掌握实际系统中的基本结构和当前已明确的业务流程,进行推导出计算机管理信息系统所要初步达到的目标。
经调查和研究,可得知系统功能结构图如下图所示:
图 系统功能模块图
4.3 数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏直接对应用系统的效率,以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的及将来可能增加的需求。
4.3.1数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
在仔细调查企业的进销存管理过程的基础上,得到企业的商品进销存管理主要包括商品购进、商品入库和商品销售等几大业务部分,系统所要处理数据的流程如下图所示:
数据流程图如下:
经调查得到以下的业务基本情况:
1)商品购进信息:
市场信息——市场调查——市场分析——商品销售——商品购进等。
商品信息包括商品编号、商品名称、商品型号、进货单位、联系人、进货人、联系电话、进货日期、进货数量、商品单价、进货总价。
2)商品入库信息:
检验商品——按序编号——商品入库等。
商品入库包括商品编号、商品名称、入库号、仓库号、库存量、商品型号、入库时间、商品单价。
3)产品销售信息:
销售需求——商品出库——商品销售——企业调查。
商品销售过程包括商品基本信息的录入、销售信息的存储等。
4.3.2数据库概念结构设计
这一设计阶段是在需求设计的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
本实例根据前面的设计而规划出的实体有库存信息实体、销售信息实体、进货信息实体、各个实体及实体之间的联系可采用ERD图来描述。
图4.3.2商品进销存管理系统E-R图
4.3.3 数据库逻辑结构设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统甩支持的实际数据模型,也就是数据库的逻辑结构。
使用VisualFoxPro开发时可以直接使用VisualFoxPro自带的数据库,商品进销存管理系统中使用的各个数据表的字段设置如下。
表1、库存表(kc.dbf)
字段名
类型
宽度
小数位数
索引
商品编号
字符型
6
普通索引
商品名
字符型
10
入库号
字符型
8
商品型号
字符型
12
仓库号
字符型
4
库存量
数值型
8
入库时间
日期型
8
单价
货币型
8
表2、进货表(sp.dbf)
字段名
类型
宽度
小数位数
索引
商品编号
字符型
6
普通索引
商品名
字符型
10
商品型号
字符型
12
进货单位
字符型
40
联系人
字符型
10
电话
字符型
13
进货日期
日期型
8
进货数量
数值型
8
单价
货币型
8
总价
货币型
8
表3、商品销售表(xs.dbf)
字段名
类型
宽度
小数位数
索引
商品编号
字符型
6
主索引
商品名
字符型
10
商品型号
字符型
12
顾客
字符型
20
电话
字符型
13
销售日期
日期型
8
销售数量
数值型
8
2
单价
货币型
8
总价
货币型
8
表4、口令表(口令.dbf)
字段名
类型
宽度
小数位数
索引
Yhm
字符型
10
Mm
字符型
10
4.3.4数据库物理结构设计
在需求分析和概念结构设计的基础上得到数据库的逻辑结构之后,就可以得到其物理结构,如下图所示:
新建项目:
单击“文件——新建”命令,选择“项目”,单击“新建文件”按钮,在弹出的对话框中输入项目的名字为“商品进销存管理系统、pjx”,单击“保存”按钮,将弹出“项目管理器”对话框。
新建数据库:
在项目管理器中选择“数据”选项卡,选中“数据库”项,单击“新建”按钮。
此时,又出现“创建”对话框,将新建的数据库起名为“数据1”,单击“保存”按钮,将出现数据库设计器。
此时,数据库已经创建成功。
新建表:
当数据库创建成功后,选定数据库设计器对话框,右击,在弹出的快捷菜单中选择“新建表”命令,弹出“新建表”对话框,单击“新表”按钮,将数据库命名,单击“保存”按钮将弹出“表设计器”对话框。
在表设计器对话框中,选定字段选项卡,然后根据需要输入字段名、类型、宽度。
输入记录:
把记录输入表中,所有的字段都已经输入后,单击“确定”按钮,此时,VisualFoxPro将询问用户是否要立即输入记录,选择“是”将会出现记录编辑窗口。
在输入记录时,可以有两种方式的对话框,一种是编辑,另一种是浏览。
第五章系统实现技术
5.1 创建项目与数据库
设计好数据库的结构后,需要创建程序中使用的数据库,在使用VisualFoxPro开发时,利用项目管理器有利于开发的规范化和条理化,因此首先需要创建一个VisualFoxPro项目。
在VisualFoxPro主窗口中选择【文件】→【新建】命令,在打开的“创建”对话框的“文件类型”区域中选择“项目”,然后单击【新建文件】按钮,即可打开项目管理器,完成1个新项目的创建。
在项目管理器中切换到“数据”选项卡,在列表框中选择“数据库”选项,单击选项卡右侧的【新建】按钮,在打开的“新建数据库”对话框中单击【新建数据库】按钮,然后在打开的“创建”对话框中选择数据库文件保存的位置及数据库的名称,单击【保存】按钮可以完成一个空白数据库的创建。
数据库创建完成后,在新建的数据库节点的子节点中选择“表”选项,单击选项卡右侧的【新建】按钮,在打开的“新建表”对话框中单击【新建表】按钮,然后在打开的“创建”对话框中选择表文件保存的位置及表的名称,单击【保存】按钮打开“表设计器”设计表的结构。
5.2系统登录界面设计
界面的设计:
分别是三个label控件、一个text文本框控件、一个组合控件和两个命令按钮组成。
如果登录的系统用户具有商品信息管理的权限,可在如图所示的登录界面表单中选择操作用户名和输入密码就可以进入下图的系统主界面表单。
其“确定”按钮的代码如下:
privatesyspass
sele口令
syspass=alltrim(thisform.text2.value)
locateforalltrim(口令.yhm)==allt(thisform.text1.value)
iffound()andalltrim(口令.mm)==syspass
doform系统主界面
thisform.text2.value=""
thisform.release
else
=messagebox("用户名或密码不正确,请重新输入!
")
thisform.text1.value=""
thisform.text1.setfocus
endif
图登录界面表单
“退出”按钮的代码如下:
localyn
yn=messagebox("确定退出吗?
",4+32,"信息提示!
")
ifyn==6
thisform.release
clearevents
endif
5.2.1系统主界面设计
其系统主界面的设计内容如下图所示:
1)“进货信息”按钮的代码
doformd:
\高健\进货信息表.scx
2)“商品入库”按钮的代码
doformd:
\高健\入库表.scx
3)“商品销售”按钮的代码
doformd:
\高健\商品销售统计.scx
4)“进货查询”按钮的代码
doformd:
\高健\进货查询表.scx
5)“销售查询”按钮的代码
doformd:
\高健\销售查询表.scx
……………………………………………
图系统主界面表单
1)界面中命令按钮的设计
界面中的9个命令按钮控件分别连控了系统中的6个子模快(子模块是由添加的菜单中的表单组成,即系统管理、商品信息、商品查询、打印报表、系统维护、退出系统),承担了本系统的主要功能,命令按钮组成的功能键不仅体现了菜单的作用,同时也体现了相对于菜单快捷的操作方式和美观形象的特点。
2)菜单的制作
利用菜单设计器,创建了一个菜单栏,在其中包括6个菜单项,分别是系统管理(\在系统管理菜单项中包含两个过程子菜单——修改密码和添加用户,分别可以运行一个“修改密码.scx”表单和一个“添加用户.scx”。
在商品信息菜单项中包含三个过程子菜单,分别可以运行一个“商品信息表.scx”表单、一个“入库表.scx”表单、一个“商品销售表.scx”表单。
在商品查询菜单项中包含三个过程子菜单,分别是库存查询、销售查询、进货查询,它们分别可以运行一个“库存查询表.scx”表单、一个“销售查询表.scx”表单、一个“进货查询表.scx”表单。
在打印报表菜单项中包含三个过程子菜单,分别是进货报表、销售报表、库存报表。
它们分别可以运行一个“进货报表.frx”报表、“销售报表.frx”报表、“库存报表.frx”报表。
在系统维护菜单项中包含一个过程子菜单,可以运行一个“系统维护.scx”表单。
在退出系统菜单项中包含一个过程子菜单,可以运行一段程序代码。
5.3系统中各个表单的设计
5.3.1进货信息表单的设计
本表单的主要功能是对某一具体商品的详细情况进行浏览、查询,并可进行实时的打印输出,如下图所示:
图进货信息表单
(1)在界面中加入所需控件
本表单由11个label控件、10个text文本框控件、6个command命令按钮(确定、打印、删除、修改、浏览、退出),一个表控件组成。
5.3.2商品入库表单的设计
产品入库表主要功能是从本界面向数据表中添加入库的产品明细。
为系统各项的查询提供依据。
其具体如下图所示:
图商品入库表单
(1)在界面中加入所需控件
本表单的主要控件为标签(label)、文本框(text)、数据表格(grid)、按钮(button)。
其各个名称分别如上图所示。
在此不在详述。
5.3.3销售统计表单的设计
考虑到用户的实际需要,在这里设计了对所销售商品的有条件和无条件统计两种统计方式,有条件统计必须输入对应的商品编号和商品名,然后可实现对其按日、月、年进行统计。
而所谓的无条件统计是指用户统计的结果是销售库里全部的记录,而不是对应商品的记录,统计结果在下面的文本中显示出来。
(1)在界面中加入所需控件
统计表单主要由一个页框控件(pageframe)、一个命令按钮、三个标签、三个文本控件组成。
其中在页框控件(pageframe)中包括两个页面设置,每个页面中有5个标签控件、5个文本控件、一个命令按钮组。
其主要设计如下图所示:
图商品销售统计表单
1)“按所销售商品统计.日统计”的代码
publica,b
selexs
locateallforxs.商品编号=alltrim(thisform.text1.value)andxs.商品名=alltrim(thisform.text2.value)andxs.销售日期=ctod(thisform.pageframe1.page1.text1.value)
iffound()
sumxs.销售数量forxs.商品编号=alltrim(thisform.text1.value)andxs.商品名=alltrim(thisform.text2.value)andxs.销售日期=ctod(thisform.pageframe1.page1.text1.value)toa
sumxs.总价forxs.商品编号=alltrim(thisform.text1.value)andxs.商品名=alltrim(thisform.text2.value)andxs.销售日期=ctod(thisform.pageframe1.page1.text1.value)tob
thisform.pageframe1.page1.text3.value=a
thisform.pageframe1.page1.text4.value=b
else
messagebox("记录没有发现",4+32,"信息提示")
endif
5.3.4进货查询表单设计
进货查询表单主要功能是查询目前的进货明细情况,表单设计采用多页控件。
数据显示采用数据表格控件grid,网格控件的加入相当于数据源的加载。
加入网格控件后,点击右键选择“生成器”,从中可以选择该窗体的数据库表连接源,从而在Grid的RecordSource属性中表现出来。
图进货查询表单
(1)界面主要控件
此界面主要是由一个pageframe1页面控件、一个label标签控件、两个命令按钮、一个text文本控件组成。
(2)pageframe1页面控件的设置
此控件分为4个页面,在每个页面上分别加入一个grid网格控件、一个命令按钮、一个文本控件和一个标签控件。
5.3.5销售查询表单设计
本表单的设计与“进货查询表单”的控件设计基本相同,不同的是grid1的recordsource属性的值为xs.dbf(销售数据表),如图所示:
“按顾客名称”查询按钮的代码
setsafetyoff
sele*fromxswherethisform.pageframe1.page1.text1.value=xs.顾客intodbfxs1
if_tally<>0
messagebox("祝贺你查询成功!
",4+32,"信息提示")
else
messagebox("对不起,查询失败,请重新查询",4+32,"信息提示“)
endif
t