资源描述
精品文档就在这里
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
--------------------------------------------------------------------------------------------------------------------------------------------
摘要:超市管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本设计论文的内容,围绕超市管理系统展开,对目标设计、系统开发背景、系统功能分析、系统功能模块设计、数据库需求分析与设计、各功能模块编码实现、系统的发布等各个过程进行了详细的描述。程序功能贴近实际,内容精炼,系统对企业中常见的采购、库存、销售等商业活动以及相关的供应商和客户等基本信息进行管理。本系统采用的是Visual Basic.Net和SQL Server软件。该软件具有简单、高效、功能强大、界面友好等特点,给开发者带来很多方便。
关键词:MIS系统,VisualBasic.Net,数据库,超市管理系统
Abstract: The supermarket management system is the typical information management system (MIS).Its development mainly includes the backstage database the establishment and the maintenance as well as front end the application procedure development two aspects. Establishes the data uniformity and the integrity regarding former request is strong, the data security good storehouse. But regarding latter then the request application procedure function is complete and easy to use and so on the characteristic.In this paper, the supermarket management system has been discussed, design to the target, system development background, system function analysis, system function mold piece design, database need analysis and design, each function mold piece code realize, the system announces each of etc. over with proceed the detailed describing. The procedure function comes close actual, contents refinement, system to business enterprise familiar purchase, stock, sell etc. business activity and related suppliers to proceed the management with basic information in etc .in customer.This system uses VisualBasic.Net and SQL Server. They have many char acterstics,such as simple use,high efficiency ,might function and friend and friend interface and take many
Conveniences for developers.
Key word: MIS system, Visual Basic.Net, database, the supermarket management system
1 前言
随着时代的进步,超市大卖场,已经是时代的主流,通过他可以反映一个国家,一个地区的经济,文化。等硬软环境,物流是否通畅,而我们大学生是祖国未来,那么我们就要考虑到自身的发展与时代结轨,只有适应了社会,你才有发展。所以我才选取了商场超市,并做了市场调查,整篇文章的总体设计是通过当今商场超市的走向和发展,就自己的观察,写出了超市的发展的必要和一些发展中的劣势。从根本上说,这是由市场机制决定的。同时,市场营销又总是处在企业竞争的最前沿,其复杂性和重要性可见一斑。
本设计为一个基本的超市管理系统,系统对企业中常见的采购、库存、销售等商业活动以及相关的供应商和客户等基本信息进行管理。通过超市管理系统,利用信息化的手段把先进的企业管理方法引入企业的实践,为企业的管理改革提供切实可行的途径。更重要的是,超市管理系统可以及时通过信息技术把企业数据转化为企业信息,进而为相关管理者提供决策依据。
1.1 超市管理系统概述
1.1.1 超市管理系统的发展
所谓超市是代表零售的一种较为先进的发展趋势,并在很大的卖场出售种类繁多的食品与非食品商品。为了使商品项目更完整,超市提供了更多种类的非食品商品,如保健与美容辅助品及一般商品,许多超市还设有面包店及餐厅。
零售业在整个经济产业中占有相当重要的地位,因为它是最贴近消费者的。零售业是服务业的一种,如果能够以最好的服务来对待消费者,对于提高销售量一定会有很大的帮助。随着零售业改革的深化和对外开放力度的加大,我国连锁超市的业态类型将会继续推陈出新。
1.1.2 超市管理系统的研究现状
商店自动化的产品管理在欧美等国已实行了多年,也是零售业管理的基础。它最主要的特点是能够实时和准确的控制店内的销售情况。在零售业引入信息管理系统,是商店经营之中的最热门的话题之一。
随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。计算机的运用现正在发达国家的各类商店超市中普及。由于它能够准确记载和查阅有关超市经营活动的大量数据,帮助超市经营者掌握和分析营销情况,及时作出正确决策,并且有利于商店内部的财务、工资、人员、库存、销售情况等管理,因而大大提高了现代超市的管理水平。
1.1.3 超市管理系统的构建
国外很多发达资本主义国家的有关人士都在开发超市管理系统,开发出很多大型的软件,由于本人能力有限,开发一个中小型超市管理系统,它可以使我们国内新起小型超市可以更好的操作。此系统的有减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度等特点。
1.2 可行性分析
可行性,它的含义是指在当前情况下,研制这个信息系统是否必要,是否具备必要的条件,它包括必要性、合理性。下面从经济可行性、社会可行性和技术可行性简要分析如下。
1.2.1 经济可行性分析
超市管理系统开发需要投资费用和未来的运行维护费用,其中投资费用主要包括设备费用、人员费用及其他费用(如由于工作方式改变需要增加的其他开支),通常为了保证新系统运行的可靠性,要求手工和计算机处理在长时间并存。系统的收益主要通过新系统提高工作效率,指导经营策略来实现,还有其他难以计算的指标。
★ 货物管理中节省的人力,减轻的劳动强度;
★ 降低的成本及其他费用;
★ 改进薄弱环节,提高了工作效率;
★ 提高数据处理的及时性和准确性。
1.2.2 社会可行性分析
随着商场规模的日益增大,进出货物数量繁多,有关商品的各种信息量也成倍增长。超市在时时刻刻需要对商品各种信息进行统计分析,每天的报表、月报表、年报表,员工信息的管理等。迫切需要实现计算机信息化管理,用信息化管理实现对数据的录入、查询、打印等的处理。比起传统的方法这样具有很强的实用性和经济性。
1.2.3 技术可行性分析
超市管理系统的硬、软件配置要求如表1.2.3所示。
表1.2.3 配置要求
硬、软件
配 置
CPU
P3 800
RAM
128MB
硬盘
20G
监视器
Windows系统支持的监视器,可显示16位
操作系统
中文Windows98、Windows2000或者以上
数据库管理系统
Microsoft SQL Server 2000
系统运行环境
Microsoft.Net Framework
1.3 系统设计目标
超市管理系统是面向中小型超市及其他涉及进销存行业的一套管理软件,让操作更简单,同时让帐目一目了然。本超市管理系统着重前台销售和后台系统管理,将前台和后台连接起来,使之能实现远程POS(前台)与后台系统管理并用。主要达到以下的目标。
一、大大提高超市的运作效率。
二、通过全面的信息采集和处理,辅助提高超市的决策水平。
三、使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张能力, 提供有效的技术保障。
2 需求分析
对一个软件项目而言,在目标确定后,完善的需求分析对软件开发的成功是极为重要的。本系统主要是针对管理的操作,运用软件工程的思想来完成对用户功能需求的“理解”、“表达”工作,弄清用户的功能需求,尽量较少在实际工作中用户的工作量,提高工作的效率,使管理工作更加快捷化、科学化。
2.1 超市管理系统的用户需求分析
超市的发展必需要解决以下问题:
一、物流管理方式落后,很难根据销售、库存情况,及时进行配货、补货、退货、调拨。
二、财务,帐目管理混乱,透明度低。
2.2 业务流程分析
在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除原系统的不合理
报损处理
进货及供应商往来账
应收账
销售及客户往来账
银行出纳帐
库存帐
资金往来账
其他收入及用支出账
代销库存帐
应付帐
代销退回
付款
代销收款
代销出仓
销售处理
其他收入
进货处理
收款
费用及其他支出
资金定位
图2.2 超市管理系统的业务流程图
部分,在新系统基础上优化业务处理流程。业务流程图是一种表明系统内各部门、人员之间的业务关系、作业顺序和管理信息流动的流程图。超市管理系统的业务流程图如图2.2所示。
2.3 关联图
明确系统与各外部实体的信息联系,把系统作为一个加工环节,得到该系统的关联图如图2.3所示,由图可知有四个外部项:
超市管
理系统
员工信息
银行
供应商
用
户
个
人
信
息
维
护
信
息
各
类
信
息
商品
家
信
息
货
物
信
息
商
品
信
息
付
款
信
息
应
商品
信
息
供
图2.3 系统关联图
2.4 数据流程分析
数据流程分析就是把数据在现行系统内部的流动情况抽象出来,舍去了具体组织机构、信息载体、处理工作等物理组成,单纯从数据流动过程来考察实际业务的数据处理模式。数据流程分析主要包括对信息的流动、变换、存贮等的分析。其目的是要发现和解决数据流动中的问题。问题产生的原因有的是属于现行管理混乱,数据处理流程本身有问题,有的也可能是我们调查了解数据流程有误或作图有误。调查的目的就是要尽量地暴露系统存在的问题,并找出加以解决的方法。
2.4.1 数据流程图
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据流程图的特征:
★ 抽象性:在数据流程图中具体的组织机构、工作场所、人员、物质流等等都已去掉,只剩下数据的存储、流动、加工、使用的情况。
★ 概括性:它把系统对各种业务的处理过程联系起来考虑,形成一个总体。
2.4.2采购管理功能分解数据流程图
根据采购管理各功能之间的联系,绘制出本系统的采购管理数据流程图如2.4.2A所示:
采购
部门
仓库
部门
财务
部门
质量
部门
P1
采购
基础
数据
P2
采购
计划
管理
P4
采购
收货
管理
P3
采购
订单
管理
P5
供应商管理
D1 供应商资料文件
D2 采购计划文件
D3 采购订单文件
D4 采购订单明细文件
D5 供应商评估文件
D6 检验单文件
D7 收货单文件
入库
应付款
图2.4.2A 采购管理数据流程图
2.4.3 销售管理功能分解数据流程图
根据销售管理各功能之间的联系,绘制出本系统的销售管理第一层数据流程图如2.4.3A所示:
图2.4.3A 销售管理第一层数据流图
2.4.4 库存管理功能分解数据流程图
根据库存管理各功能之间的联系,绘制出本系统的库存管理的第一层数据流程图如2.4.4A所示:
仓库
部门
财务
部门
计划
部门
其他
部门
P2
库存
处理
P1
库存基
本数据
D1 物品货位库存文件
D2 物品仓库库存文件
D3 库存系统设置文件
D4 物品代码文件
业务单据
业务
维护
物品进出
MPS、MRP
图2.4.4A 库存管理第一层数据流图
3 系统设计
3.1 系统设计思想
通过完成超市管理系统,实现超市商品管理的稳定性、易操作性、可维护性、安全性等,从而达到提高商品管理效率并指导经营方向的目的。下面从分层设计和面向对象设计来分析本系统的设计思想。
一、多层C/S架构的设计
本系统采用多层架构设计,其逻辑设计如图3.1所示。
用户操作界面
业务逻辑处理
数据操作处理
数据库
用户界面层
业务处理层
数据操作层
数据存储层
发出逻
辑任务
发出数
据任务
组织数
据操作
返回操
作结果
返回操
作结果
返回操
作结果
图3.1 逻辑结构上的多层设计方式
在这种多层结构设计中,用户界面只负责处理基本的界面操作,并将操作以调用的方式分发给相应的业务处理层。业务处理层再根据业务逻辑进行必要的分析和处理,当需要进行数据处理的时候调用数据操作层。数据操作层将收到的任务组织成不同的数据操作,与数据库进行交互。然后数据操作层将处理的结构返回给业务处理层,业务处理层将收到的结构进行处理之后再返回给用户界面层,用户界面层负责将受到的结构反馈给用户。
二、面向对象设计
在本系统中,不但将常用的业务处理封装为类库的形式,而且将数据操作和报表处理等基本操作也进行封装,从而将系统的设计理论上升到更高的一层,增强了代码重用性和减少了各个模块之间的耦合性。
三、其他方面的设计
(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化机构设计。作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
3.2 系统结构设计
根据面向对象和多层结构的设计思想,可得出如图3.2所示的系统结构设计图。
多层超市管理系统
SCMAPP
SCMDB
多层超市管理系统
SCMAPP
SCMPrint
SCMDB
图3.2 系统结构设计
3.3 系统设计原则:
为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循的原则:1、合法性原则2、实用性原则3、准确性原则4、易操作原则5、源程序可读性原则6、优化原则7、安全性原则
3.4 系统功能设计
3.4.1 系统总体功能分析
多层超市管理系统
资料管理
系统管理
应付款管理
应收款管理
采购管理
销售管理
报损管理
库存管理
会员管理
帐务管理
统计管理
零售管理
供应商管理
图3.3.1 总体功能模块图
3.4.2 主要功能模块划分
3.4.2.1资料管理模块
资料管理
商品编码设置
商品资料维护
供货商资料维护
客户资料维护
业务员信息维护
仓库信息维护
采购商管理
销售商管理
图3.3.2.1 资料管理
“商品编码设置”用于设置商品编码的方式。超市管理系统的每条商品信息都具有惟一的一个编码,从而实现商品资料维护中自动生成编码的功能。
“商品资料维护”用于维护企业所经营的商品的基本信息。不同行业的进销存商品资料的属性差别很大,我们将在后面说明。
“供货商资料维护”用于维护企业供货商的基本信息。
“客户资料维护”用于维护企业客户的基本信息。
“业务员信息维护”用于维护企业销售业务员的基本信息。在销售开票时业务员属性可以直接从业务员清单表中获取所有业务员的名字作为辞典供用户选择。
“仓库信息维护”用于维护企业的仓库信息。企业的商品一般都是存放在不同的仓库或同一仓库的不同货位中,这样在在填写商品进货单和销售单时用户需要指定入库或出库的是哪个仓库的货物。
“采购合同管理”用于维护企业与供货商签定的采购合同。合同的内容对业务可以产生影响。
“销售合同管理”用于维护企业与客户签订的的销售合同。
3.4.2.2采购管理模块
采购计划管理
采购管理
采购订单管理
采购收货管理
供应商评估管理
采购基础数据
订货方式维护
退货原因维护
采购系统维护
交货方式维护
采购员维护
采购基础数据
供应商类型维护
供应商评估管理
供应商报价维护
供应商资料维护
供应商评估
请购计划维护
采购计划管理
采购计划生成
请购计划合并
订单结案
采购订单维护
采购订单管理
订单终止或取消
采购合同维护
更正处理
采购过账处理
换货处理
订单收货处理
采购收货管理
退货处理
无订单收货处理
图3.4.2.2 采购管理模块图
3.4.2.3 销售管理模块
销售基础数据
销售管理
销售计划管理
销售订单管理
收发货管理
销售服务管理
销售计划管理
销售计划合并
销售计划维护
订单维护
合同维护
销售网点维护
服务跟踪
服务过程记录
销售政策发布
销售服务记录
产品系列维护
信用管理
销售价格维护
订单终止结清
合同终止结清
销售订单管理
销售服务管理
催款计划
销售基础数据
销售类型维护
价格种类维护
销售佣金维护
销售员维护
订货方式维护
交货方式维护
退货取消原因
客户资料维护
发票维护
差价维护
退换货通知
发货通知
费用定义维护
交货原因维护
销售过账
收发货管理
客户组别维护
图3.4.2.3 销售管理模块图
3.4.2.4 库存管理模块
库存操作处理
库存业务处理
库存基础数据
库存基础数据
仓库代码维护
库存管理
区域代码维护
ABC分类维护
货位代码维护
物品领料原因维护
库存操作原因维护
库存操作权限维护
物品财务类别维护
物品颜色代码维护
物品代码维护
仓库人员代码维护
往来单位分类维护
库存系统设置
库存初始化
入库操作处理
出库操作处理
移库操作处理
物品损毁处理
库存盘点操作
库存更正操作
订货点计算
图3.4.2.4 库存管理模块图
3.4.2.5 应付款管理模块
应付管理
预付款管理
应付款明细
应付款汇总
付款单
已付款明细
历史查询
应付款账簿
应付款账龄
图3.4.2.5 应付款管理模块图
“预付款管理”用于管理企业的预付款信息。
“应付款明细”用于查询企业所有的应付款,对应到每一笔进货的明细。
“应付款汇总”用于查询企业所有的应付款,对应到每一个供货商。
“付款单”用于录入企业支付货款的凭证和销应付款。
“已付款明细”用于查询企业历史的所有已经支付的款项。
“历史查询”用于查询付款单历史。
“应付款帐簿”用于查询应付款科目的明细分录,属于财务上的概念。
“应付款帐龄”用于分析应付款的帐龄,即在不同时间段内应付款分部的情况,从而为付款作出依据。
3.4.2.6 应收款管理模块
“预收款管理”用于管理企业的预收款信息。填写收款单时可以选择收款的方式,如果是“减预收款”则“预收款”信息表中的“预收总额”自动减少。
应收管理
预收款管理
应收款明细
应收款汇总
收款单
已收款明细
历史查询
应收款账簿
应收款账龄
图3.4.2.6 应收款管理模块图
“应收款明细”用于查询企业所有的应收款,对应到每一笔销售的明细。
“应收款汇总”用于查询企业所有的应收款,对应到每一个客户。
“收款单”用于录入企业收回货款的凭证和销应收款。
“已收款明细”用于查询企业历史的所有已收回的款项。
“历史查询”用于查询收款单历史。
“应收款帐簿”用于查询应收款科目的明细分录,每一笔销售或者收款系统都会在帐簿中自动产生一笔记录,以借方、贷方、余额的形式存在,可以直接将查询的结果输出作为财务软件的凭证。
“应收款帐龄”用于分析应收款的帐龄,即在不同时间段内应收款分部的情况,从而为收款提供依据。
3.4.2.7 帐务管理模块
结账日期设定
进销存汇总护
历史查询护
模拟结账
正式结账
账务管理
图3.4.2.7 帐务管理模块图
“结帐日期设定”用于设置企业的每月结帐的日期。一般商业单位每个月的结帐日期都是固定的,默认为25号。
“模拟结帐”用于进行模拟结帐操作,以查看结帐数据是否正确。
“正式结帐”用于进行结帐操作,计算进销存汇总报表。
“进销存汇总”用于查询本次结帐的结果。
“历史查询”用于查询历史的结帐结果。
nn
nn
nn
nn
nn
nn
1
1
1
1
1
1
1
1
1
1
1
检验单
检验
供应商评估表
评估
供应商
收货
物料代码
组成2
采购订单明细
合并
请购单
组成
参照1
生成
采购订单
报价
物料需求计划
3.4.3 E-R图
送货
收货单
入库
nn
物料库存
1
过账
操作
nn
nn
过账凭证
库存操作记录
图3.4.3A 采购管理E-R图1
m
m
m
n
n
n
n
n
n
n
n
n
n
n
签订
1
1
1
1
1
1
发票明细
组成
发票
开票
提货单明细
配货
订单明细
组成
提货单
信息
销售计划
提货
对应
合同明细
组成
销售合同
1
信息
销售订单
订货
客户
信息
商品报价
1
图3.4.3B 销售管理E-R图
n
n
n
n
n
n
n
n
n
n
n
n
1
1
1
1
1
调库
参照5
1
1
1
1
1
1
1
1
过账
操作
发货
盘点表
提货单
过账凭证
库存操作记录
物品库存
出货单
出库
领料
入库
参照4
采购计划
发外加工单
领料单
入库单
参照3
参照2
完工
参照1
物料代码
生产工单
收货单
m
图3.4.3C 库存管理E-R图
3.5 系统特点
一、多层结构设计
严格意义上的三层结构设计,程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。在业务处理层中,封装了实现常用业务功能所必需的操作。在数据存储层封装了实现常用数据处理所必需的操作。而用户界面层就负责在与用户的交互中调用相关层的相关操作,以完成系统的功能。
二、面向对象设计
系统中将数据操作、增加、删除和修改等常用业务逻辑和报表打印等封装成相应的类,类中的不同方法实现不同的功能,从而提高了对数据库操作的安全性、程序的可扩展性和易于维护性。
三、超市管理系统并不仅仅是代替传统的书面操作,更重要的是它有利于提高信息查询、信息统计个报表打印的功能,为管理者总体把握市场动态提供了依据和便利,从而起到了辅助决策的作用。
4 数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。
4.1 数据库需求设计
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。数据库需求分析是整个设计过程的基础。在此,我对本数据库主要部分的具体需求信息进行分析,内容如下。
★ 商品按类别和名称进行管理。
★ 必须记录商品的基本信息,比如规格和生产企业等。
★ 需要记录企业的供应商信息。
★ 供应商的联系方式非常重要。
★ 在采购信息中需记录采购的数量和单价等。
★ 在采购信息中要包含商品供应商等信息。
★ 商品销售信息中要包括登记商品销售数量、单价等信息。
★ 商品报损要有报损原因。
★ 所有的单据必须记录相应的经手人和开具时间。
★ 采购、销售、报损信息都可以进行添加、修改、删除、查找、统计等操作。
★ 需要对进货、销售、库存、报损等操作生成相应的报表。
经过上述系统基本功能分析和需求总结,考虑到将来功能上的扩展,以下是本系统主要部分的数据项和数据结构的设计。
★ 商品信息,包括的数据项有:商品编号、商品名称、商品类别、商品规格大小、商品净重、商品介绍和库存量等。
★ 供应商信息,包括的数据项有:供应商编号、供应商名称、供应商地址、供应商传真和供应商电话等。
★ 采购信息,包括的数据项有:采购单编号、采购商品、数量、单价、进货时间、经手人、供应商和采购说明等。
★ 销售信息,包括的数据项有:销售单编号、销售商品、销售数量、单价、登记时间、经手人和销售说明等。
★ 报损信息,包括的数据项有:报损单编号、报损商品、报损数量、报损原因、登记时间和经手人等。
★ 会员信息,包括的数据项有:会员卡编号、销售单编号和积分等。
★ 员工信息,包括的数据项有:员工编号、员工姓名、密码和权限等。
4.2 数据库概念结构设计
在上面的需求分析、数据结构设计、数据项分析的基础上,下面可以开始数据库概念结构设计了。系统实体的E-R图设计如下。
4.3 数据库逻辑结构设计
通过概念和逻辑设计做出本系统的数据库表,在此,对其中部分主要的数据库表做详细的分析,如下图所示:
下表为会员信息表。
列名
名称
数据类型
长度
允许为空
备注
ID
编号
int
4
N
主键、自动生成
CustID
会员卡号码
int
4
Y
SalListID
销售单编号
int
4
Y
Bonus
积分
int
4
Y
下表为商品报损信息表。
列名
名称
数据类型
长度
允许为空
备注
DamListID
报损单编号
Int
4
N
主键、自动生成
PrdID
商品编号
Int
4
N
DamDat
报损日期
smalldatetir
4
Y
DamEmp
报损经手人
varchar
10
Y
DamQua
报损数量
Smallint
2
N
DamMemo
报损说明
varchar
100
Y
下表为商品信息表。
列名
名称
数据类型
长度
允许为空
备注
PrdID
商品编号
Int
4
N
主键、自动生成
PrdName
商品名称
varchar
20
N
PrdType
商品价格
varchar
10
Y
PrdSize
商品规格
varchar
12
Y
PrdWet
商品净重
Smallint
2
Y
PrdMemo
商品说明
varchar
100
Y
PrdQua
商品数量
Smallint
2
Y
下表为商品采购信息表。
列名
名称
数据类型
长度
允许为空
备注
PurListID
采购单编号
Int
4
N
主键、自动生成
PrdID
商品编号
Int
4
N
SupID
供应商编号
Int
4
N
PurDat
采购日期
Smallint
4
Y
PurEmp
采购经手人
varchar
10
Y
PurQua
采购数量
Smallint
2
N
PurPrc
采购价格
Smallmoney
4
N
PurMemo
采购说明
varchar
100
Y
下表为商品销售信息表。
列名
名称
数据类型
长度
允许为空
备注
SalListID
销售单编号
Int
4
N
主键、自动生成
PrdID
商品编号
Int
4
N
SalDat
销售日期
smalldatetir
4
Y
SalEmp
销售经手人
varchar
10
Y
SalQua
销售数量
Smallint
2
N
SalPrc
销售价格
Smallmoney
4
N
SalMemo
销售说明
varchar
100
Y
下表为供应商信息表。
列名
名称
数据类型
长度
允许为空
备注
SupID
供应商编号
int
4
N
主键、自动生成
SupName
供应商名称
varchar
20
N
SupFax
供应商传真
varchar
20
Y
SupTel
供应商电话
varchar
20
Y
SuoAdr
供应商地址
varchar
30
Y
下表为员工信息表。
列名
名称
数据类型
长度
允许为空
备注
userid
员工编号
int
4
N
主键
name
姓名
varchar
50
N
pwd
密码
char
6
N
role
权限
varchar
20
N
4.4 数据库存储过程设计
存储过程是存储在数据库服务器上预编译好的SQL语言的批命令,它能显著地减少客户端的工作过程。存储过程中可以包括数据库服务器所能理解的任何SQL语言。
在本超市管理系统中,采购单、销售单和报损单的增加、删除和修改需要频繁地访问数据库,而且每种操作都有涉及到多个数据表的操作,所以将它们设计成存储过程。这样,当需要执行这些功能的时候,只要调用相应的存储过程并传入相应的参数,数据库服务器端会自动按照编译好的SQL语言执行这些操作。以下是9个主要的存储过程。
★采购单的增加操作对应的存储过程spAddPur 的脚本代码如下。
spAddPur的脚本代码
CREATE PROCEDURE spAddPur
/*此存储过程用于增加采购单
并对商品列表中的库存数量进行更新*/
@prdid int ,
@supid int ,
@purdat smalldatetime,
@puremp varchar (10),
@purqua smallint,
@purprc smallmoney ,
@purmemo varchar (100)
AS
declare @orgprdqua int /*原始商品库存数量需要更新*/
select @orgprdqua=prdqua from productlist where prdid=@prdid
insert into purchaseproduct (prdid ,supid, purdat,puremp,purqua,purprc,purmemo)
values(@prdid, @supid,@purdat,@puremp ,@purqua ,@purprc,@purmemo)
update productlist set prdqua = @orgprdqua+ @purqua where prdid=@prdid
RETURN
GO
★采购单的修改操作对应的存储过程spEdtPur的脚本代码如下。
spEdtPur的脚本代码
CREATE PROCEDURE spEdtPur
/*此存储过程用于修改采购单时候更新采购单,并对商品列表中对应商品库存数量进行更新*/
@purlistid int , /*需要更新的采购单编号*/
@prdid int ,
@supid int ,
@purdat smalldatetime ,
@puremp varchar (10),
@purqua smallint ,
@purprc smallmoney ,
@purmemo varchar (100)
as
declare @orgprdid int /*采购单中原始采购商品的编号*/
declare @orgpurqua int /*原始商品-> 原始商品库存数量需要更新*/
declare @orgprdqua int /*原始商品库存数量需要更新*/
declare @newprdqua int /*新商品库存数量需要更新*/
select @orgprdid=prdid from purchaseproduct where purlistid=@purlistid
select @orgpurqua=purqua from purchaseproduct where purlistid=@purlistid
select @orgprdqua=prdqua from productlist where prdid=@orgprdid
/*select @newprdqua=prdqua from productlist where prdid=@prdid */
update purchaseproduct set prdid=@prdid , supid=@supid,purdat=@pu
展开阅读全文