进销存管理系统设计报告

更新时间:2024-06-10 00:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西安财经学院

《信息系统分析与设计》课程设计报告

题目 进销存管理系统

姓名

专业 信息管理与信息系统

班级 XXXX

学号 XXXXXXXX

一、系统概述 ................................................................................................................................... 1

(一)序言 ............................................................................................................................... 1 (二)系统任务 ....................................................................................................................... 1 (三)系统目标 ....................................................................................................................... 2 (四)人员分工 ....................................................................................................................... 2 二、系统需求分析 ........................................................................................................................... 2

(一)、需求分析 ..................................................................................................................... 2 (二)、可行性分析 ................................................................................................................. 3

1、技术方面的可行性 ..................................................................................................... 3 2、经济可行性研究 ......................................................................................................... 3 3、操作可行性研究 ......................................................................................................... 4

三、系统分析 ................................................................................................................................... 4

(一)业务流程分析(销售部分) ....................................................................................... 4

业务流程图图例说明: ................................................................................................... 4 (二)数据流程分析 ............................................................................................................... 5 (三)数据字典 ....................................................................................................................... 7 四、系统设计 ................................................................................................................................. 11

(一)系统总体设计 ............................................................................................................. 11

1、系统总体结构 ........................................................................................................... 12 (二)系统的详细设计 ......................................................................................................... 15

1、代码设计 ................................................................................................................... 15 2.输入输出设计 .............................................................................................................. 15 (三)数据库设计 ................................................................................................................. 17

1、概念结构设计 ........................................................................................................... 17 2、逻辑结构设计 ........................................................................................................... 18 3、物理结构设计 ........................................................................................................... 19

五、系统实施 ................................................................................................................................. 20

(一)开发工具的选择 .............................................................................................................. 20

1、 SQL介绍 ................................................................................................................ 20 2、Visual basic编程语言简介 ...................................................................................... 21 3、SQL Server 数据库简介 .......................................................................................... 21 (二)源程序清单 ................................................................................................................. 22

1、VB源代码 ................................................................................................................ 22 2. 数据库源代码 .......................................................................................................... 31 供应商资料表 ................................................................................................................. 31 (三)、数据库中部分表的关系及约束 ............................................................................... 33 (四)运行界面 ..................................................................................................................... 34

连接数据库界面: ......................................................................................................... 34 (五)、系统调试、测试 ....................................................................................................... 39

1、 测试的意义 ............................................................................................................. 39 2、 测试原则 ................................................................................................................. 40 3、 系统测试的方法 ..................................................................................................... 40 4、测试用例 ................................................................................................................... 41

课程设计总结 ................................................................................................................................. 42 致谢................................................................................................................................................. 43 参考文献 ......................................................................................................................................... 44

一、系统概述

(一)序言

社会在不断进步,科学技术和管理也在迅速发展,这使得每个企业得到了前所未有的发展机遇,但同时也必须面临市场竞争的严重挑战,在日趋激烈的竞争环境下,企业要求生存、发展,就必须对企业进行科学的管理。而用计算机来处理企业内部信息间的流通和使用,既可以实现数据信息的共享,控制好数据的冗余度,并使企业有统一的管理,提高信息的利用率;又可以实现整体数据的结构化,这样就可以大大的提高企业决策的效率。

中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量多,地区分布广泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小企业之间的竞争将越来越激烈。网络及电子商务的迅猛发展突破了时间、空间的局限性,给中小企业带来了更多的发展机会,同时也增大了企业之间的竞争强度。这就要求中小企业必须改变企业的经营管理模式,提高企业的运营效率。目前,我国中小企业的信息化水平还很低,相比国外企业,还只处于刚开始始用的阶段。随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。

物资、人才、资金并称为企业的三大资源,控制物流是每个企业都需要做好的事情。本次设计即是针对企业在进、销、存管理方面所做的分析,进销存管理就是要权衡库存费用(包括商品价值,订货费用,短缺等),使总费用最低。进销存管理系统的职能大体上包括采购管理、销售管理和库存管理。本软件是一款通用性极强企业进销存管理系统,软件囊括了企业进、销、存管理的全过程。

(二)系统任务

进销存管理系统是一个将资料管理、采购管理、销售管理和库存管理等业务融为一体的系统。一个完善的进销存管理系统的任务主要包括以下几项: 1、资料管理,主要负责管理供应商资料、商品资料以及客户资料。 2、采购管理,主要负责采购管理,包括采购单、采购入库和采购查询

1

3、销售管理,主要负责进行销售管理,包括销售单、销售出库和销售查询 4、库存管理,主要负责进行库存管理,包括库存维护、价格管理和库存盘点 5、统计分析,主要负责统计企业的出入库情况以及成本收益。 6、系统管理,主要负责管理用户信息和用户登录,以及初期建账。

(三)系统目标

进销存管理系统是一个现代化软件系统,通过集中式的信息数据库,将进、销、存等经营业务有机地结合起来,达到共享数据、降低成本、提高效率和改进服务等目的。一般而言,通过使用进销存管理系统,可以在以下几方面提高企业的管理水平:

1、 更好地了解供应商和客户信息,加强对商品资料的管理。 2、 降低采购成本,及时了解采购情况。 3、 准确了解销售动态,及时调整营销策略。

4、 了解库存情况,及时进行价格管理以及库存数量维护。 5、 减少储备资金占用,加速资金周转,提高资金利用率。

6、 提供商业数据智能分析,了解商业动态,为管理者提供决策依据。

(四)人员分工

本次系统开发由XX、XXX、XX三人一起完成。XX主要负责采购方面,XX负责销售方面,XX负责库存方面。后台数据库共同完成。

二、系统需求分析

(一)、需求分析

通过调查,要求系统需要具有以下功能:

①.由于操作人员的计算机知识普遍较差,要求有良好的人机界面。 ②.由于该系统的使用对象多,要求有较好的权限管理。 ③.方便的数据查询,支持多条件查询。

④.基础信息管理与查询(包括商品信息、客户信息、供应商信息)。

2

⑤.通过计算机,能够直接“透视”仓库存储情况。 ⑥.完善的商品采购信息、商品销售信息进行管理。 ⑦.方便、健全的结账功能。

⑧.当外界环境(停电、网络病毒)干扰本系统时,系统可以自动保护原始数据的安全。 ⑨.数据计算自动完成,尽量减少人工干预。 ⑩.系统退出。

(二)、可行性分析

1、技术方面的可行性

将开发是进销存管理系统编程已经具备了完备、成熟的理论和体系结构,Visual Basic 编程与数据库相结合进行开发的技术日趋成熟。 ①与工程产品相关的关键技术概念

本系统的关键技术在于Visual Basic编程的程序设计与数据库的结合,将所有的数据信息都放入数据库中进行存储,而这些数据信息的调用则完全由程序来完成,即“程序设计数据化,数据管理程序化”思想。 ②关键技术的理论基础

依据“程序设计数据化,数据管理程序化”的设计思想,将数据库文件与程序设计紧密地集合在一起。 ③技术可行性结论

本系统产品采用Visual Basic编程与数据库相结合的方法进行开发,而现存的进销存管理系统理论和技术有待进一步完善,因此进销存管理系统应用软件的开发手段是完全可行的。

2、经济可行性研究

全面企业的经营管理模式,能为企业带来更多的客户资源,提高企业的经济效益,方便管理者对企业进行管理,也方便客户对企业的了解,能及时的让企业管理者与客户进行沟通,以便满足客户的需要。进销存管理系统的开发不需要增加额外的费用,并且对员工进行培训的费用不多。在程序运行方面,由于系统比较小,没有必要进行太多的维护,而且进销存管理系统的投入,能够提高工作效率,减少工作人员,进而减少劳动资源的投入,也可以方便工作人员对货物的查询与管理,使企业的管理向高质量、现代化的方向发展。进销存管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程

3

中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是可观的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的事物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。 3、操作可行性研究

本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个进销存管理系统采用最友好的交互 介面,简介明了,不需要对数据库进行深入的了解。

综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,可以设计该系统的业务流程图,数据流程图,并建立数据字典。

三、系统分析

(一)业务流程分析(销售部分)

销售人员根据销售计划和销售情况生成取货单向库存管人员取货,库管员将生成的出货

单给销售人员,销售人员根据销售情况生成销售报表进行存储,同时向客户开销售单。 业务流程图图例说明:

业务处理单位 单据、文档 处理过程

业务流

存储

4

出库单开出库单销售部开取货单取货单仓库开销售单销售单客户销售单存档

(二)数据流程分析

数据流程图图例说明:

数据流 外部实体

处理 存储

顶层数据流分析:基于本系统为单机开发,数据由用户录入采购信息、销售信息、库存信息等到进销存管理系统中,系统将反馈出用户所需的统计信息,库存信息等。

用户进销存管理系统

顶层数据流程图

用户

第一层数据流分析:采购部门将采购的数据传递给库存部门和财务部门,销售部同理。库存部则只需通过库存管理来生成库存表。

5

P 1采购部采购信息采购管理采购单供应商采购单P 2库存管理部入库单库存管理总库存D1 库存表销售单P 3销售部销售信息销售管理销售单客户 第一层数据流程图

销售管理数据流分析:销售人员根据销售计划或销售情况开销售单给客户同时增加销售明细给财务,销售人员根据已确定的销售数据填写取货单,向库存部取货。

P3.1销售单信息填写销售单销售单D2销售表单销售单销售人员销售单P 3.2销售明细添加销售明细销售明细D3销售单明细表客户选择销售单财务P 3.3销售出库销售单D4商品库存表

销售管理业务流程图

6

(三)数据字典

数据元素条目 编号:E1 名称:供应商编号 说明:企业供应商的编码 数据值类型:离散 类型:字符型 长度:4 有关数据结构:供应商资料,采购资料 数据元素条目 编号:E2 名称:商品编号 说明:企业销售的商品的编号 数据值类型:离散 类型:字符型 长度:6 有关数据结构:商品资料,采购资料,销售资料,库存资料 数据元素条目 编号:E3 名称:客户编号 说明:企业销售客户的编码 数据值类型:离散 类型:字符型 长度:4 有关数据结构:客户资料,销售资料 数据元素条目 编号:E4 名称:销售单号 说明:销售人员编辑销售单时的代码 数据值类型:离散 类型:字符型 长度:6 有关数据结构:销售资料 数据结构条目 编号:F1 名称:供货商资料 说明:采购时收集的供应商信息 结构: 供应商编号 供应商名称

地址 电话 传真 信誉等级 提供商品 7

数据结构条目 编号:F2 名称:采购资料 说明:收集有关采购的信息 结构: 采购单号 供应商编号 采购日期 采购员 商品编号 采购数量 采购单价 是否核销 数据结构条目 编号:F3 名称:销售资料 说明:销售时收集的客户信息、商品信息 结构: 销售单号 客户编号 销售日期 商品编号 销售数量 销售员 是否核销 数据结构条目 编号:F4 名称:库存资料 说明:收集有关库存的信息 结构: 商品编号 商品状态 库存数量 最低储备 正常储备 最高储备 8

数据结构条目 编号:F5 名称:客户资料 说明:收集有关客户的信息 结构: 库户编号 客户名称 地址 电话 传真 信誉等级 所需资料 数据结构条目 编号:F6 名称:商品资料 说明:有关商品的信息 结构: 商品编号 商品名称 条形码 计量单位 供应商编号 供应商地址 商品说明 数据流条目 编号:G1 名称:销售单 说明:销售商品时,销售人员填写简单的销售信息 数据来源:销售员 数据流向:P3.1、P3.2 包含的数据结构: 客户编号 销售员 总共金额 是否核销 不含税价 税额 数据流条目 编号:G2 名称:销售明细 说明:销售商品时,销售人员填写的具体的销售信息 数据来源:销售员 数据流向:D3 包含的数据结构: 商品编号 销售数量 成本单价 销售单价 总共金额 是否核销 不含税价 税额 9

数据存储条目 编号:D2 名称:销售单表 说明:销售商品一定时期时销售人员填写的汇总的销售信息 有关的数据流: P3.1 → D2 D2 → P3.2 结构: 客户编号 销售员 总共金额 是否核销 不含税价 税额 数据存储条目 编号:D3 名称:销售单明细表 说明:销售商品一定时期时销售人员填写的汇总的销售明细信息 有关的数据流: P3.2 →D3 结构: 商品编号 销售数量 成本单价 销售单价 总共金额 是否核销 不含税价 处理功能条目 编号:P3.2 名称:添加销售明细表 说明:填写具体的销售单价、成本等信息 输入:D2 → P3.2 输出:P3.2 → D3 处理:销售人员根据具体的销售情况,登记销售明细,一定时间内进行销售明细整理,生成销售明细报表 处理功能条目 编号:P3.1 名称:添加销售单表 说明:填写一些供客户查看的销售基本信息 输入:销售员 → P3.1 输出:P3.1 → D2 处理:销售人员根据供客户的销售情况,登记销售明细,一定时间内进行销售明细整理,生成销售明细报表

10

处理功能条目 编号:P3.3 名称:销售出库 说明:将取货单递给有关库存人员,以便库存管理 输入:D2 → P3.3 输出:P3.3 → D4 处理:将客户已买下的商品进行出库处理,为库存提供取货单 外部实体条目 编号:1 名称:销售员 说明:销售部门工作人员 输入数据流: 输出数据流:销售员→P3.1、销售员→P3.2、销售员→P3.3 个数:(根据企业情况而定) 外部实体条目 编号:2 名称:客户 说明:企业的销售对象 输入数据流:P3.1 → 客户 输出数据流: 个数:(根据企业情况而定) 外部实体条目 编号:3 名称:库存管理员 说明:企业库存的管理人员 输入数据流:P3.3 → 库存管理员 输出数据流: 个数:(根据企业情况而定)

四、系统设计

(一)系统总体设计

11

1、系统总体结构 (1)结构设计

系统采用了3层结构设计。首先是界面层,包括用户操作,如资料管理、采购管理、销售管理、系统管理等。其次业务逻辑层,包括系统基础类、商品信息类等等,提供界面层调用的方法和类。最后是数据库,为整个系统提供数据服务。系统采用的层次结构关系如图:

(2)系统功能模块图

根据系统所要实现的功能,按照结构化程序设计的原则,可以将整个系统划分为若干个功能模块。根据以上对进销存管理系统的任务和目标的分析,一个标准的进销存管理系统应该包含如图所示的一些功能。每个功能模块又包含一系列的子模块。

进销存管理系统 资料管理采购管理销售管理库存管理统计分析系统管理

功能模块细分: ?资料管理

“资料管理”模块用来管理供应商资料、商品资料以及客户资料,其功能模块如图所示。

12

供应商资料资料管理商品资料客户资料

①“供应商资料”模块

“供应商资料”模块负责维护供应商的基本信息。供应商资料对于采购而言非常重要,是进销存管理系统的重要资料。供应商资料主要包括供应商编号、供应商名称、地址、电话、传真、信誉等级、提供商品和简介等。良好的供应商资料管理有助于企业对采购进行管理和控制,从而降低企业的采购成本。 ②“商品资料”模块

“商品资料”模块负责维护商品的基本信息,基本信息一般变动较小。商品资料主要包括商品编号、商品名称、条形码、计量单位、供应商编号、供应商地址和商品说明等。不同的行业、不同的企业所需的商品资料差别较大。 ③“客户资料”模块

“客户资料”模块负责维护企业客户的基本信息。客户是企业生存的根本,可以是个人或者企业。客户信息是企业需要重点维护的资料。客户资料主要包括客户编号、客户名称、地址、电话、传真、信誉等级、所需商品和简介等。客户资料变动较大,开发系统时应该注意系统的可扩展性和可维护性。 (2)销售管理

“销售管理”模块主要负责进行销售管理,包括销售单、销售出库和销售查询。销售管理是企业的重要活动,直接面向客户和市场。其功能模块如图所示。

销售单销售管理销售出库销售查询

①“销售单”模块

“销售单”模块负责录入销售单和销售明细单。销售单主要包括销售单号、客户编号、销售日期、销售员、是否核销、操作人员、总共金额、不含税价和税额等项。销售单明细主

13

要包括编号ID、销售单号、商品编号、销售数量、成本单价、销售单价、总共金额、不含税价和税额等项。 ②“销售出库”模块

“销售出库”模块负责管理商品的销售出库情况。销售出库时需要将商品库存数量减去销售单明细中的销售数量。最后,销售单的“是否核销”标志变为“已核销” ③“销售查询”模块

“销售查询”模块负责查询销售单信息以及销售单核销情况。 具体模块说明:

本次系统的实践中,我主要负责资料管理模块和销售模块,每个模块中设计有3个窗体。下面我说一下具体每个窗体可以实现的功能: (1)供应商资料

①可根据已存在系统中的供应商的资料进行供应商编号或供应商名称来进行显示查询 ②添加新的供应商资料 ③修改已存在的供应商的资料 ③删除供应商资料

(2)商品资料(具体功能同供应商资料) (3)客户资料(具体功能同供应商资料) (4)销售单

销售单中包含了两个窗体,一个是粗略的销售单,另一个是销售明细单。两个界面的具体功能基本一样。

①根据销售单号或客户编号来查询销售信息 ②在窗体中以表的形式显示出销售信息 ③添加销售单 ④修改销售单 (5)销售出库

①根据销售单号或客户编号来查询销售信息 ②在窗体中以表的形式显示出销售信息 ③将将要出库的销售信息进行出库处理 (6)销售查询

①根据销售单号或客户编号来查询销售信息

②自定义一段想要查的时间段可以在窗体中显示出该段时间段内的销售信息

14

(二)系统的详细设计

1、代码设计

代码是以适当的符号来表达客观实体的属性及特征。有标识、分类统计检索、排序、对象描述的作用,一般根据唯一性原则、合理性原则、适用性原则、规范性原则、可扩充性原则和简明性原则来进行设计,本系统中该系统采用层次代码设计方法。

编码名称 供应商编号 客户编号 商品编号 销售单号 前2、3位 GY(汉字拼音缩写) KH(汉字拼音缩写) SP(汉字拼音缩写) XS(汉字拼音缩写) 后2、3位 自由数字 自由数字 自由数字 自由数字 长度 4 4 6 6 2.输入输出设计

输入设计:输入界面的设计我们不仅考虑到数据输入窗口的屏幕格式,而且考虑到如何使输入数据的错误率尽可能的减小。输入的数据量越小,出错的几率越小,所以,在保证输入数据完整的同时,我们尽量把界面设置的简单大方。

输出设计:在输出设计上,主要采用日常通用格式输出,这样方便管理,查阅。 输出设计的内容:a确定输出内容;b选择输出设备与介质;c确定输出格式。 输出界面设计如图: 例:供应商资料管理

15

16

(三)数据库设计

1、概念结构设计

概念结构设计就是整个数据库设计的关键,它是将分析得到的用户需求抽象为信息结构即概念模型的过程。我们采用了自底向上的策略进行了概念结构的设计,即先定义各局部应用的概念模型,然后把它们集合起来,形成全局的概念结构。 E-R图 商品商品编号名称单价描述销售员销售编号姓名性别年龄仓库仓库号面积电话号采购员采购编号姓名性别年龄供应商供应商编号姓名地址电话号账号库存管理员员工编号姓名性别年龄

实体及其属性图

供应商采购员 m1供应采购nn商品nn销售1销售员库存1仓库1工作n库存管理员

实体及其联系图

17

供应商编号姓名地址电话号账号采购编号姓名性别年龄供应商1采购员m供应量供应采购销售量n采购量n销售编号姓名性别年龄商品编号名称单价描述商品nn销售1销售员库存1库存量仓库1工作n库存管理员仓库号面积电话号员工编号姓名性别年龄 完整的实体联系图

2、逻辑结构设计

所谓的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与信息系统所支持的数据模型相符合的逻辑结构。而E-R图向关系模型的转化要解决的问题是如何将实体和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。 一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。

对于实体间的联系则分不同的情况讨论:

若实体间联系为1:1,可转换为一个独立的关系模式,也可与任意一端对应的关系模式合并。

若实体间联系为1:n,则在n端实体转换成的关系中加入1端实体转换成的关系码。 若实体间联系为n:m,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系的码则为诸实体的码的组合。

基于以上原则,可将上图转换为关系模型。每个关系的码用下划线表示。

供应商资料表(供应商编号,供应商名称,地址,电话,传真,信誉等级,提供商品);

18

商品资料表(商品编号,条形码,商品名称,计量单位,供应商编号,供应商地址,

商品说明);

客户资料表(客户编号,客户名称,地址,电话,传真,信誉等级,所需商品,简介); 销售单表(销售单号,客户编号,销售日期,销售员,是否核销,操作人员,总共金

额,不含税价,税额);

销售明细表(编号ID,销售单号,商品编号,销售数量,成本单价,销售单价,总

共金额,不含税价,税额);

3、物理结构设计 (1)设计原则如下:

a进行规范化设计,尽可能地减少数据冗余和重复。 b结构设计与操作设计相结合。 c数据结构具有相对的稳定性。

基于以上三条设计原则,本系统中关于数据库表结构设计如下: 字段名称

供应商编号 供应商名称 地址 电话 传真 信誉等级 提供商品 简介 字段名称 商品编号 商品名称 条形码 计量单位 供应商编号 供应商地址 商品说明 字段名称 客户编号 客户名称 地址 电话 传真

供应商资料表

数据类型 可否为空 Char(4) 主键

Not null Nvarchar(50)

Null Nvarchar(50)

Null Nvarchar(50)

Null Nvarchar(50)

Null Char(2)

Null Text(16)

Null Text(16) 商品资料表

数据类型 可否为空 Char(6) 主键

Not null Nvarchar(50)

Null Char(10)

Not Null Char(10)

Char(4) 外键

Null Nvarchar(50)

Null Text(16)

客户资料表

数据类型 可否为空 Char(4) 主键

Not null Nvarchar(50)

Null Nvarchar(50)

Null Nvarchar(50)

Null Nvarchar(50)

说明

供应商编号为4位,以GY开头 供应商名称 供应商地址 供应商电话 供应商传真

信誉等级:优、良、差 供应商提供的商品 供应商简介 说明

商品编号为6位,以SP开头 商品名称

商品条形码为10位 计量商品的单位 父表为供应商资料表 供应商地址 商品说明

说明

客户编号为4位,以KH开头 客户名称 客户地址 客户电话 客户传真

19

信誉等级 所需商品 简介 字段名称 销售单号 客户编号 销售日期 销售员 是否核销 操作人员 总共金额 不含税价 税价 字段名称 编号ID 销售编号 商品编号 销售数量 成本单价 销售单价 总共金额 不含税价 税额

Char Text(16) Text(16) Null Null Null

信誉等级:优、良、差 客户要求的商品 客户简介

销售单表

数据类型 可否为空 Char(6) 主键 Char(4) 外键

Null Datetime(8)

Null Nvarchar(50)

Not Null Char(6)

Not Null Char(4)

Null Float(8)

Null Float(8)

Null Float(8)

销售单明细表 可否为空 主键 外键 外键 Not Null Not Null Not Null Not Null Not Null Not Null 说明

销售单号为6,以XS开头 父表为客户资料表 销售日期 销售员

是否核销:未核销、已核销 操作人员

销售单的总金额 不含税价 税额

数据类型 Numeric Char(6) Char(6) Float(8) Float(8) Float(8) Float(8) Float(8) Float(8) 说明 标识种子1、自增1 父表为销售单表 父表为商品资料表 商品的销售数量 商品的成本单价 商品的销售单价 销售单明细的总金额 不含税价=总共金额-税额 税额=总共金额*税率

五、系统实施

(一)开发工具的选择

1、 SQL介绍

SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE

20

语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL server这些大型的数据库管理系统,还是像Visual Foxporo、PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。 2、Visual basic编程语言简介

Visual Basic 简称VB,是微软公司推出的一种可视化编程工具,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。它开发速度快捷,具有语法简单易学的开发环境,是初学者的首选。VB提供可视化的开发环境,使用者可以像搭积木一样构建出程序的界面,而且它提供丰富的控件组,省去了自己编写代码的实现这些效果的麻烦,这样就可以把更多的精力放在程序功能方面的实现上。本系统中使用的是Microsoft Visual Basic 6.0 中文企业版。 3、SQL Server 数据库简介

Microsoft SQL Server 2000是新一代大型电子商务、数据仓库和数据库解决方案。SQL Server 2000在分析服务、数据转换服务、数据仓库等方面引入了大量新特性。它为Web标准提供了强劲的支持,并为系统管理和调整提供了许多有力的工具。

SQL Server 2000在SQL Server 7.0基础上对以下两个方面进行了极大的增强: (1)数据仓库

? 分析服务。使用联机分析处理和数据开采工具满足了用户所有的商业分析需求。 ? 索引化视图。通过把查询结果存储在数据库中,以减少查询响应时间,大大改善了系统的性能。

(2)电子商务

? 对XML支持的增强。使用XML简化了对后端系统和数据转换的整合。

? Web数据访问。通过使用Web,而不需要额外的编程工作就可以建立SQL Server 2000数据库和OLAP立方体的连接。

? 分布式分区视图。将用户的数据存储在多个服务器上,从而增大了数据库的规模。 ? 安全性。SQL Server 2000为你的应用提供了更高的安全策略。

? 简化数据库管理。SQL Server 2000提供了大量的监视和管理工具,从而大大减少了管理员的工作量。

? 数据库复制。使用SQL Server 2000可以在不同的系统之间进行合并、事务和快照复制。

21

(二)源程序清单

1、VB源代码 供应商资料模块: Option Explicit

Dim rs As ADODB.Recordset Dim SQL As String Dim msg As String Dim Index As Integer

Dim flag As String 'Private Sub Command1_Click()

Call LoadData ' Call ShowData End Sub

Private Sub Form_Load() '初始化查询条件ComboBox cboquery.AddItem (\供应商编号\ cboquery.AddItem (\供应商名称\

cboquery.ListIndex = 0 '

'初始化信誉等级ComboBox cboxy.AddItem (\优\ cboxy.AddItem (\良\ cboxy.AddItem (\差\

cboxy.ListIndex = 0 '

Call LoadData ' Call ShowData 'End Sub

Private Sub LoadData() '装载数据

Dim colName As String '判断是新增记录还是修改记录 装载数据 默认查询条件为供应商编号 默认信誉等级为优 装载数据 显示数据 保存所选择的查询条件

22

Dim colValue As String '保存所要查询具体的值 Dim strWhere As String '得到查询条件

colName = cboquery.Text '取出条件的值 colValue = txtquery.Text '取出所要查询的值 '构建条件

strWhere = \ Set rs = Nothing '查询供应商资料

SQL = \供应商资料表 \供应商编号 \ Set rs = SelectSQL(SQL, msg) Set Me.DataGrid1.DataSource = rs DataGrid1.Refresh

If rs.RecordCount = 0 Then '如果不存在记录 '编辑控件可用性

cmdadd.Enabled = True: cmdmodify.Enabled = False: cmddelete.Enabled = False cmdcancel.Enabled = False: cmdsave.Enabled = False '移动控件不可用 For Index = 0 To 3

cmdmove(Index).Enabled = False Next Index Else

'编辑控件可用性

cmdadd.Enabled = True: cmdmodify.Enabled = True: cmddelete.Enabled = True cmdcancel.Enabled = False: cmdsave.Enabled = False '移动控件可用 For Index = 0 To 3

cmdmove(Index).Enabled = True Next Index End If

'设置控件Enable值 Call ControlEnable(False) End Sub

Private Sub ControlEnable(flag As Boolean)

23

'设置控件的Enable值 For Index = 0 To 6

Me.txt(Index).Enabled = flag Next Index

Me.cboxy.Enabled = flag End Sub

Private Sub ShowData() '在控件中显示数据

If rs.RecordCount <> 0 Then '如果存在记录 '为控件赋值 For Index = 0 To 4

Me.txt(Index) = rs.Fields(Index) Next Index

Me.cboxy.Text = rs.Fields(\信誉等级\ Me.txt(5).Text = rs.Fields(\提供商品\ Me.txt(6).Text = rs.Fields(\简介\ End If End Sub

Private Sub CmdMove_Click(Index As Integer) '移动记录操作 Select Case Index

Case Is = 0 '移到第一条记录 If Not rs.BOF Then rs.MoveFirst

Case Is = 1 '移到上一条记录 If rs.RecordCount <> 0 Then

If rs.BOF = False Then rs.MovePrevious If rs.BOF = True Then rs.MoveFirst End If

Case Is = 2 '移到下一条记录 If rs.RecordCount <> 0 Then

If rs.EOF = False Then rs.MoveNext If rs.EOF = True Then rs.MoveLast End If

Case Is = 3 '移到最后一条记录

24

If rs.RecordCount <> 0 Then

If Not rs.EOF = True Then rs.MoveLast End If End Select Call ShowData End Sub

Private Sub CmdAdd_Click() '添加操作 '所有控件重置 Call ControlClear '设置控件Enable值为可用 Call ControlEnable(True)

'设置标志flag,表示所进行的操作为添加 flag = \ '所有移动按钮不可用 For Index = 0 To 3

cmdmove(Index).Enabled = False Next Index

'添加、修改、删除按钮不可用,取消、保存按钮可用

cmdadd.Enabled = False: cmdmodify.Enabled = False: cmddelete.Enabled = False cmdcancel.Enabled = True: cmdsave.Enabled = True End Sub

Private Sub ControlClear() '重置控件

For Index = 0 To 6

Me.txt(Index).Text = \ Next Index

Me.cboxy.ListIndex = 0 End Sub

Private Sub CmdModify_Click() '修改操作

If rs.RecordCount > 0 Then '如果存在记录 '供应商编号不可以修改,其他控件可用 txt(0).Enabled = False

25

'设置控件Enable值 Call ControlEnable(True)

'设置标志flag,表示所进行的操作为修改 flag = \ '移动控件不可用 For Index = 0 To 3

cmdmove(Index).Enabled = False Next Index

'添加、修改、删除按钮不可用,取消、保存按钮可用

cmdadd.Enabled = False: cmdmodify.Enabled = False: cmddelete.Enabled = False

cmdcancel.Enabled = True: cmdsave.Enabled = True Else

MsgBox (\没有可以修改的数据!\ End If End Sub

Private Sub CmdDelete_Click() '删除操作

On Error GoTo ErrMsg '错误处理 If rs.RecordCount > 0 Then

msg = MsgBox(\删除该条记录吗?\ If msg = vbYes Then

rs.Delete '删除数据 Call LoadData '重新装载数据 '清空控件 Call ControlClear

'设置控件Enable值为不可用 Call ControlEnable(False) If rs.RecordCount = 0 Then '所有移动控件不可用 For Index = 0 To 3

cmdmove(Index).Enabled = False Next Index End If

26

'添加、删除按钮可用,修改、取消、保存按钮不可用

cmdadd.Enabled = True: cmdmodify.Enabled = False: cmddelete.Enabled = True

cmdsave.Enabled = False: cmdcancel.Enabled = False MsgBox (\成功删除的数据!\ End If Else

MsgBox (\没有可删除的数据!\ End If Exit Sub

ErrMsg: '报告出错信息 MsgBox Err.Description, vbExclamation, \出错\End Sub

Private Sub CmdSave_Click() '保存操作

On Error GoTo ErrMsg

If Not CheckData Then Exit Sub '如果数据不合法就退出 If flag = \如果是修改数据 msg = MsgBox(\您确实要修改这条数据吗?\ If msg = vbYes Then

Call setData '设置数据 Else Exit Sub End If

ElseIf flag = \如果是添加新数据 rs.AddNew

Call setData '设置数据 End If

rs.Update '更新数据 '移动控件可用 For Index = 0 To 3

cmdmove(Index).Enabled = True Next Index

cmdmodify.Enabled = True: cmddelete.Enabled = True: cmdadd.Enabled = True

27

cmdsave.Enabled = False: cmdcancel.Enabled = False If flag = \ MsgBox (\成功添加数据!\ Else

MsgBox (\成功更新数据!\ End If

Call LoadData '重新装载数据 '定位到添加或修改记录 If rs.RecordCount > 0 Then rs.MoveFirst

rs.Find (\供应商编号='\ If Not rs.EOF Then Call ShowData '重新显示数据 End If Exit Sub ErrMsg:

MsgBox Err.Description, vbExclamation, \出错\End Sub

Private Function CheckData() As Boolean '检查数据的合法性

Dim rst As ADODB.Recordset Dim msgt As String msgt = \ '检查数据

If Trim(txt(0).Text) = \检查供应商编号是否为空 msgt = \供应商编号为空; \ '光标定位 txt(0).SetFocus txt(0).SelStart = 0

txt(0).SelLength = Len(txt(0).Text)

ElseIf Not Len(Trim(txt(0).Text)) = 4 Then '检查供应商编号是否为4位 msgt = msgt & \供应商编号不是4位; \ '光标定位 txt(0).SetFocus txt(0).SelStart = 0

28

txt(0).SelLength = Len(txt(0).Text)

ElseIf Trim(txt(1).Text) = \检查供应商名称是否为空 msgt = \供应商名称为空; \ '光标定位 txt(1).SetFocus txt(1).SelStart = 0

txt(1).SelLength = Len(txt(1).Text) End If

If Not msgt = \如果不为空,给出错误提示 MsgBox (msgt)

CheckData = False '返回False Exit Function End If

'检查唯一性

SQL = \供应商资料表 where 供应商编号='\\

Set rst = SelectSQL(SQL, msg)

'如果是进行添加操作且已经存在该记录,提示重复添加 If flag = \ MsgBox (\该信息已经存在,重复添加!\ '光标定位 txt(0).SetFocus txt(0).SelStart = 0

txt(0).SelLength = Len(txt(0).Text) rst.Close

CheckData = False '返回False Exit Function End If

CheckData = True '合法返回True End Function

Private Sub setData() '为字段设置数据

29

rs.Fields(\供应商编号\ rs.Fields(\供应商名称\ For Index = 2 To 4

rs.Fields(Index) = Me.txt(Index).Text Next Index

rs.Fields(\信誉等级\ For Index = 5 To 6

rs.Fields(Index + 1) = Me.txt(Index).Text Next Index End Sub

Private Sub cmdCancel_Click() '取消操作

Call ShowData '重新在控件中显示信息 If rs.RecordCount > 0 Then '所有移动控件可用 For Index = 0 To 3

cmdmove(Index).Enabled = True Next Index End If

'设置控件Enable值为不可用 Call ControlEnable(False)

'修改、删除、添加按钮可用,保存和取消按钮不可用

cmdadd.Enabled = True: cmdmodify.Enabled = True: cmddelete.Enabled = True cmdsave.Enabled = False: cmdcancel.Enabled = False End Sub

Private Sub CmdQuery_Click() '查询操作

Call LoadData '装载数据 Call ShowData '显示数据 End Sub

Private Sub CmdExit_Click() '退出操作

进销存管理系统.Enabled = True Unload Me

30

End Sub

Private Sub Form_Unload(Cancel As Integer) '退出操作

进销存管理系统.Enabled = True rs.Close Unload Me End Sub

2. 数据库源代码 供应商资料表

CREATE TABLE 供应商资料表 (

供应商编号 char(4) Primary key , 供应商名称 varchar(50) NOT NULL, 地址 varchar(50) NULL , 电话 varchar(50) NULL , 传真 varchar(50) NULL ,

信誉等级 char(4) NULL , 提供商品 text NULL , 简介 text NULL , ) 商品资料表:

CREATE TABLE 供应商资料表 (

商品编号 char(6) Primary key , 商品名称 varchar(50) NOT NULL, 条形码 char(10) NULL , 计量单位 char(10) NOT NULL , 供应商编号 char(4) NOT NULL , 供应商地址 text NULL , 商品说明 text NULL , ) 客户资料表:

CREATE TABLE 客户资料表 (

客户编号 char(4) Primary key ,

31

客户名称 varchar(50) NOT NULL, 地址 varchar(50) NULL , 电话 varchar(50) NULL , 传真 varchar(50) NULL , 信誉等级 char(4) NULL , 提供商品 text NULL , 简介 text NULL , ) 销售单表:

CREATE TABLE 销售单表 (

销售单编号 char(6) Primary key , 客户编号 char(4) NOT NULL, 销售日期Datetime(8) NULL , 销售员Nvarchar(50) NOT NULL , 是否核销 char(6) NOT NULL , 操作人员char(6) NULL , 总共金额 float(8) NULL , 不含税价 float(8) NULL , 税额 float(8) NULL , ) 销售明细:

CREATE TABLE 销售单明细表 (

编号ID Numeric(9)Primary key 销售单编号 char(6) NOT NULL, 商品编号 char(6) NOT NULL, 销售数量float(8) NOT NULL , 成本单价float(8) NOT NULL , 销售单价float(8) NOT NULL , 总共金额 float(8) NOT NULL , 不含税价 float(8) NOT NULL , 税额 float(8) NOT NULL , )

32

(三)、数据库中部分表的关系及约束

33

(四)运行界面

连接数据库界面:

用户登录:

成功登陆后主界面:

销售查询(按时间段查询结果如下):

34

销售查询(按销售单号查询结果如下):

删除操作:

35

修改操作:

36

修改成功:

添加数据:

37

出库处理:

38

本文来源:https://www.bwwdw.com/article/kaw6.html

Top