论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > VB6.0 >

B(VB)01002VB商品销售管理系统

第三章 系统设计

3.1系统分析

作为一个商品销售管理系统,其功能是实现进销存公司或个人企业进销存管理的系统化、规范化和自动化。本系统主要要完成的功能有:

paper51.com

(1)交易管理:包括进货登记、销货登记、退货登记等。其中进货登记中还包含进货商登记,如过是新的进货厂商,可以直接在此登记入库。进货和进销存的主要交易都是在此进行。每次交易(包括进货、销货和退货)都需要对商品名称、生产厂商、商品型号、单价、数量、总金额、交易日期、经手业务员编号等各项记录。在交易过程中,程序的编写尽可能的方便员工进行交易,比如:进货登记时,如果商品编号相同,则自动添加该商品的其它属性;销货登记时,用户只要输入商品编号,该商品的其它属性即可自动出现。退货登记时,只要输入正确的销货编号,其进销存信息也将自动列出,尽量的方便了用户的操作,同时对于登陆的员工编号程序也自动的将其列在进货登记、销货登记中,已防止员工进行非正常的交易。

copyright paper51.com

(2)进货统计:包括今日进货统计、本月进货统计、本季度进货统计、本季度进货统计、本年度进货统计等。其中每次进货统计都是按进货厂商和进货总金额统计显示的。使用一个表格显示所选时间段的全部进货数据,包括进货编号、商品名称等。再使用另一个表格显示分别从各个厂商进货的金额,还有一个文本框用于显示次时间段的进货总金额。

内容来自www.paper51.com

(3)销货统计:包括今日进销存统计、本月进销存统计、本季度进销存统计、本年度进销存统计等,其中每次进销存统计都是按生产厂商和进销存总金额统计显示的。使用一个表格显示所选时间段的全部进销存数据,包括销货编号、商品名称等。再使用另一个表格显示分别从各个厂商进货的金额,还有一个文本框用于显示次时间段的进销存总金额。 http://www.paper51.com

(4)查看数据表:实现各种数据表的浏览,包括进货表,商品库存表、进销存表、退货表、员工表、进货商表等。对于员工表管理员还可以对其进行删除或添加用户操作。 paper51.com

(5) 系统管理: 包括更换用户、修改密码、退出系统等。更换用户的操作方便了用户的使用,同时更加方便了管理员对于系统数据的查询,可以做到随时查看,以使管理员对帐目一目了然,同时方便了普通用户的交接班使用本系统。修改密码和退出系统都是对于系统管理的辅助功能,再这里就不详细说明了。 内容来自www.paper51.com

(6) 其它窗体: 包括主窗体、登陆窗体、系统初始化窗体。主窗体就是将各个模块的大意列在菜单中,然后通过每一个菜单将其它的窗体逐个对应的连到主窗体中。登陆窗体为本系统的启动窗体,其功能是让合法的用户使用本系统,已防止其它的非法人员使用该系统。并对登陆的用户做一下权限的区别:分为管理员和普通员工。系统初始化窗体的主要目的是:在本系统的试运行阶段成功后是管理员可以直接把除了员工表以外的所有数据表的内容清零。登陆窗体中设计了一个权限,可以区分是员工登陆还是管理员登陆,如果是管理员则提示是否进行系统初始化,否则直接进入主窗体。 内容来自www.paper51.com

其功能模块图请查看附图。 内容来自论文无忧网 www.paper51.com

3.2数据库设计

copyright paper51.com

上面提到的各种功能的实现都离不开数据库的支持,因此数据库设计作为本系统设计的一部分不可缺少。开发本系统中使用的数据库系统是Windows Access 2000 。从上面的功能分析不难看出本系统需要建立以下几个数据表:buy表(进货表)、goods表(现存商品表)、sell表(进销存表)、retreat表(退货表)、employee表(员工表)、manufacturer表(进货商表)。由于数据量比较小,所以这些数据表都存在一个数据库下:sellsystem.mdb      

内容来自论文无忧网 www.paper51.com

下面对各个数据表的结构做一下简单介绍:

paper51.com

在系统的数据库设计中,进货表、销货表、商品库存表和退货表涉及了交易管理三个子菜单的绝大部分数据,是本系统数据库的核心,所以将对其部分表的设置列表显示。 内容来自www.paper51.com

Manufacturer表(进货商表)中包括有厂商编号、厂商名称、联系人姓名、电话、厂商地址等字段,表略。

内容来自www.paper51.com

employee(员工表)中包括有员工编号、员工姓名、员工密码、员工电话、员工地址等字段,表略。

内容来自论文无忧网 www.paper51.com

buy表(进货表)中包括有进货编号、商品编号、商品名称、生产厂商、型号、数量、进货价、进货年、进货月、进货日、总金额、业务员编号等。设计该数据表的主要目的是方便管理员的查看,使系统的数据管理能够更加层次化。具体设置如表3-1所示。

内容来自论文无忧网 www.paper51.com

表3-1 buy表

内容来自www.paper51.com

字段名 内容来自论文无忧网 www.paper51.com

数据类型

内容来自论文无忧网 www.paper51.com

说明

copyright paper51.com

进货编号 copyright paper51.com

文本 内容来自www.paper51.com

字段大小为20

copyright paper51.com

商品名称

copyright paper51.com

文本

copyright paper51.com

字段大小为20 内容来自www.paper51.com

生产厂商 copyright paper51.com

文本

copyright paper51.com

字段大小为20

内容来自论文无忧网 www.paper51.com

型号

paper51.com

文本 copyright paper51.com

字段大小为20

paper51.com

数量 copyright paper51.com

数字

内容来自论文无忧网 www.paper51.com

长整型

paper51.com

进货价 paper51.com

货币 内容来自论文无忧网 www.paper51.com

货币

copyright paper51.com

进货年

http://www.paper51.com

数字 内容来自论文无忧网 www.paper51.com

整型

paper51.com

进货月 copyright paper51.com

数字

paper51.com

整型

内容来自www.paper51.com

进货日 copyright paper51.com

数字 copyright paper51.com

整型 paper51.com

业务员编号 内容来自www.paper51.com

文本

paper51.com

字段大小为20

copyright paper51.com

总金额

内容来自www.paper51.com

货币

内容来自论文无忧网 www.paper51.com

货币 内容来自www.paper51.com

goods表(现存商品表)中包括有商品编号、生产厂商、商品名称、型号、进货价、销货价、数量、进货年、进货月、进货日、业务员编号、总金额等字段。具体设置如表3-2所示。 copyright paper51.com

表3-2 goods表

copyright paper51.com

字段名 paper51.com

数据类型 paper51.com

说明

http://www.paper51.com

商品编号 http://www.paper51.com

文本

内容来自论文无忧网 www.paper51.com

字段大小为20

copyright paper51.com

商品名称 内容来自www.paper51.com

文本 paper51.com

字段大小为20

paper51.com

生产厂商

paper51.com

文本 内容来自论文无忧网 www.paper51.com

字段大小为20 copyright paper51.com

型号

http://www.paper51.com

文本

http://www.paper51.com

字段大小为20 内容来自论文无忧网 www.paper51.com

数量

paper51.com

数字

http://www.paper51.com

长整型 内容来自论文无忧网 www.paper51.com

进货价

paper51.com

货币

内容来自论文无忧网 www.paper51.com

货币

paper51.com

销货价

内容来自www.paper51.com

货币 内容来自论文无忧网 www.paper51.com

货币 内容来自论文无忧网 www.paper51.com

sell表(销货表)中包括有销货编号、商品编号、商品名称、生产厂商、型号、数量等字段,由于篇幅有限,其表略。

http://www.paper51.com

 retreat表(退货表)中包括有退货编号、销货编号、生产厂商、商品名称、型号、单价、数量、总金额、退货年、退货月、退货日、业务员编号等。具体设置如表3-3所示。 内容来自论文无忧网 www.paper51.com

表3-3 retreat表 http://www.paper51.com

字段名 内容来自www.paper51.com

数据类型

paper51.com

说明

内容来自www.paper51.com

退货编号 paper51.com

文本 http://www.paper51.com

字段大小为20 内容来自www.paper51.com

销货编号

copyright paper51.com

文本 内容来自论文无忧网 www.paper51.com

字段大小为20

paper51.com

商品名称 内容来自www.paper51.com

文本

paper51.com

字段大小为20

http://www.paper51.com

生产厂商

内容来自www.paper51.com

文本 paper51.com

字段大小为20 copyright paper51.com

型号

copyright paper51.com

文本 paper51.com

字段大小为20

copyright paper51.com

单价 paper51.com

货币

内容来自www.paper51.com

货币

paper51.com

数量

copyright paper51.com

数字

paper51.com

长整型 内容来自论文无忧网 www.paper51.com

总金额 http://www.paper51.com

货币 内容来自www.paper51.com

货币 内容来自论文无忧网 www.paper51.com

退货年

copyright paper51.com

数字

copyright paper51.com

整型

copyright paper51.com

退货月

copyright paper51.com

数字

内容来自www.paper51.com

整型 http://www.paper51.com

退货日

http://www.paper51.com

数字 paper51.com

整型 内容来自论文无忧网 www.paper51.com

业务员编号 内容来自论文无忧网 www.paper51.com

文本 内容来自论文无忧网 www.paper51.com

字段大小为20

http://www.paper51.com

第4章 系统实现 http://www.paper51.com

4.1系统界面实现

内容来自论文无忧网 www.paper51.com

(1)登陆窗体 该登陆窗体对用户登陆做了一个简单的判断,如果是管理员登陆则可进入初始化界面,然后再进入主界面。具体做法是:先在窗体级中定义一个记录集,用于打开employee表,打开后将该表中的字段:员工姓名,依次加到combo1中。全加入后关闭记录集,然后对combo1和text1中的内容做一下简单判断:如果combo1和text1中的数据正好和employee表中的某个记录相同,则通过登陆窗体,否则提示用户用户名或密码有误。在通过登陆窗体中还要对用户名做一下判断:如果是管理员登陆,则进入系统初始化窗体,如果是普通用户登陆,则进入主界面。

内容来自论文无忧网 www.paper51.com

(2)初始化窗体 该初始化窗体为本系统的使用者提供了试运行服务,如果使用者试运行后决定正式使用,可以通过管理员登陆本窗体对系统进行初始化,即清空试运行阶段的所有进销存数据。具体实现过程为:定义5个记录集,其每一个记录集控制一个数据表的打开与关闭操作,其记录集的取名与数据表相近:rs_sell,rs_buy, rs_goods, rs_retreat,rs_manufacturer.当管理员点击是标签时,先出现一个消息框,问管理员是否真的要进行初始化。如果是,则5个记录集依次连接到5个数据表上,然后对每个数据表的内容进行删除操作。具体删除方法为:先对表的状态进行判断,如果某个数据表的内容为空,则直接关闭记录集,以免多步操作数据表出现错误;如果该数据表不为空,则依次删除该数据表的每一个记录,对于每一个数据表都要做此判断,并且每打开一个新的数据表都要关闭上一个数据表,这样操作起来层次显得比较清晰,而且维护起来也比较方便。

http://www.paper51.com

(3)主窗体主窗体的建立十分简单,只需将所要实现的功能编辑成菜单即可。该窗体的运行过程为:用户首先进入登陆窗体,如果是管理员登陆,则先进入初始化窗体,经过判断是否需要初始化后,进入主窗体。其权限为:销货统计、进货统计、查看数据表和系统管理。其权限的设置使管理员能够方便的查看任何时间段内的所有信息,还可以对员工表进行管理。如果是普通用户登陆,则直接进入主窗体,其授予的权限只有交易管理和系统管理,也就是说员工只能负责对商品进行如库登记、销货登记和退货登记,另外在一个员工对本系统使用的整个期间内,进货登记、销货登记和退货登记三个窗体中的显示的业务员编号都由系统自动给出的该员工的员工编号。 copyright paper51.com

(4)进货登记窗体 本窗体用来实现商品进货功能,将进货信息添加到buy表,再将该信息选择性的加入goods表。如果是新的进货厂商,可以在此入库登记。其具体实现过程如下所述:先在窗体级变量中定义三个记录集:rs_buy,rs_goods,rs_manufacture用来控制三个数据表:buy表,goods表,manufacturer表。在用户点击添加商品中的添加入库操作之前,程序先会检查是否有用户是否有个别属性为空,并做出提示。然后将商品添加到buy表中,再添加到goods表。在添加到goods表时,程序会先判断该商品编号是否已经存在,如果存在则直接将该添加信息的数量加到goods表中相应的记录上。为此,进货编号、商品编号是buy表、goods表中不可重复的属性。为方便用户操作,程序特在商品编号的文本框:text2的Change事件中做了一个判断,即如果该商品编号存在的话直接显示该商品的其他属性。另外,对于总金额文本框也是由数量和进货价两个文本框的Change事件计算入内的。如果是新的进货商,可以将它的信息添加到进货商表。其过程和上面所说的添加到buy表基本相同,这里就不做介绍了。 paper51.com

(5)销货登记窗体 本窗体主要功能是对商品进行进销存,首先对员工输入的销货信息进行完整条件的判断,条件符合后进行进销存。然后将进销存信息存入sell表,并对goods表的数量做相应修改。具体实现过程为:先在窗体集中定义两个记录集:rs_sell,rs_goods,用来控制两个数据表:sell表和goods表。在销货窗体中,如果用户输入的商品编号已经存在,则该商品的其它属性将随着text2(即商品编号)的Change事件出现在其对应的位置上。而进销存日期和业务员编号已经是程序默认给出的系统时间和登陆员工的编号。在判断没有空缺属性后该商品将顺利添加如库,而且该商品在goods表中的数量也将随之做相应的改变,使goods表和sell表的总和保持原来goods表中的数量值。

copyright paper51.com

(6)退货窗体 本窗体的功能是实现商品退货功能,当人为判断某商品可以退货时即可将该商品退货。其数据库实现为:先将该信息加入retreat表,然后从sell表中减掉,最后对goods表的数量做一下调整即可。其具体实现过程是:先在窗体集中定义三个记录集:rs_sell,rs_goods,rs_retreat用来控制三个数据表:sell表、goods和retreat表。在退货窗体中,如果用户输入的销货编号存在,则关于该商品的进销存信息将依次出现在相应的对话框中。退货成功后,该退货信息先添加到退货表,然后将其退货数量从相应的sell表中减掉,并添加到goods表中。 paper51.com

(7)进货统计菜单进货统计菜单下有4个子菜单,分别是今日进货统计、本月进货统计、本季度进货统计、今年进货统计。由于他们的界面非常相似,本程序中使用了一个SSTab控件以选项卡的形式在一个窗体中实现以上4个子菜单。这样做使窗体显得更加美观。为 copyright paper51.com

项目添加了必要的控件之后,开始进行界面设计。先在窗体上添加一个SSTab控件,单击鼠标右键在快捷菜单中选择”属性”命令。将其选项卡的数目定为4个,标题分别为:今日进货、本月进货、本季度进货、本年度进货。由于每个选项卡的界面都一样,现以”今日进货”选项卡为例,加入两个datagrid控件,两个Adodc控件,一个Label控件,一个textbox控件和8个command控件。其中两个Adodc的数据源连接都是才用的相对路径与sellsystem的buy表连接的,两个Adodc连接的SQL语句分别如下: paper51.com

select * from buy

http://www.paper51.com

select 生产厂商,sum(总金额) as 各厂商进货总金额 from buy group by 生产厂商。 内容来自www.paper51.com

(8)销货统计窗体 进销存统计菜单下有4个子菜单,分别是今日销货、本月销货、本季度销货、今年销货。由于它们的界面非常相似,本程序中使用一个SSTab控件以选项卡形式在一个窗体中实现4个子菜单。其界面设计和窗体说明与进货统计大同小异,也一样一个选项卡为例进行说明,现以”今日销货”为例:加入两个datagrid控件,两个Adodc控件,一个Label控件,一个textbox控件和8个command控件。其中两个Adodc的数据源连接都是采用的相对路径与sell表连接的,两个Adodc连接的SQL语句分别如下: 内容来自www.paper51.com

select * from sell        

copyright paper51.com

select生产厂商,sum(总金额) as 各厂商销货总金额 from sell group by 生产厂商。

内容来自论文无忧网 www.paper51.com

(9)查看进货表 其界面的设计比较简单,只是一个datagrid控件,一个Adodc控件(已隐藏)和四个Command控件。本窗体的主要设计在于其四个命令按纽在进货表为空时不可用。 copyright paper51.com

(10)查看进货表 本窗体的主要设计目的是设置一个查询商品库存表的条件 。具体操作为:为查询现存商品表设立了一个简单的查询条件,一个是直接显示现存的全部商品表,一个是按条件对现存商品进行查询,用户可以根据自己需要按商品名称或生产厂商分别进行查找。该窗体的实现是要在窗体集的变量中设置一个记录集rs_goods,用来控制goods表,然后将记录集在打开窗体时的select语句设为与本窗体的text1和text2有关的SQL语句。然后让现存商品表显示出来。

paper51.com

(11)管理员工表 本窗体的制作目的在于方便对管理员用户的管理,本节前面曾经提过系统初始化的功能,但其初始化并不能对员工表进行操作,当管理员登陆本系统时,可以访问此窗体,对用户表进行维护。但不能对管理员进行删除操作,此操作已被本人屏蔽。 http://www.paper51.com

    (12)更换用户功能 在一个商品销售公司可能会存在员工交接班的现象,为了方便用户交接班的操作顺利进行,在系统管理模块中做了一个更换用户子菜单,该子菜单便顺利的实现了此功能,而且它也方便了管理员的登陆管理。 paper51.com

(13)修改密码 为了方便用户使用,在本模块中还设置了一个修改密码窗体,该窗体主要包括一个用户名输入、一个原密码输入和两个新密码输入。此窗体实现的功能是显而易见的,方便了用户的操作,增加了系统使用的安全性。具体做法是:先要求用户将四个必填项填写完整,然后对两个新密码进行相同判断,如果相同,则将记录集rs_employee打开,对用户名和原密码进行核对,如果相同,就将老密码替换为新密码。 http://www.paper51.com

本节总结:对于本商品销售管理系统功能的实现,重点和难点有以下几处:交易管理模块:在本模块中,对于商品的进货、销货和退货操作时,都要注意其操作过程中商品数量及其它属性的变化,本人在制做此模块时,采用了指导教师的提供给我的思想:进货登记时,将进货信息添加到进货表中。然后对商品库存表的编号进行判断,如果进货信息的商品编号存在,则将商品库存表中相应记录的商品数量做对应调整;如果商品编号不存在,则直接将进货信息添加到商品库存表中。销货登记时,先将商品的销货信息添加到销货表中,然后将商品库存表中响应的商品的数量做相对调整,保证商品数量的一致性。退货登记时将退货信息添加到退货表中,然后将退货数量从进销存表中减掉,最后将退货数量加到商品库存表中。在本系统管理员登陆时,显示给管理员的第一个界面:系统初始化也是本系统的又一大功能特色,其实现过程中要严格控制每一个记录集对相应数据表的打开与关闭操作。 paper51.com

------分隔线----------------------------
联系方式