超市管理系统毕业设计毕业论文

上传人:1888****888 文档编号:38658706 上传时间:2021-11-08 格式:DOC 页数:31 大小:1.44MB
返回 下载 相关 举报
超市管理系统毕业设计毕业论文_第1页
第1页 / 共31页
超市管理系统毕业设计毕业论文_第2页
第2页 / 共31页
超市管理系统毕业设计毕业论文_第3页
第3页 / 共31页
点击查看更多>>
资源描述
1超市管理系统超市管理系统摘摘 要要近年来,计算机技术日趋成熟,数据库技术不断发展,管理信息系统的应用已延伸到社会的各个领域。结合管理信息系统的开发方法及步骤,以此为理论基础,开发出一个小型的信息管理系统超市管理系统。超市管理是超市的开展日常运营活动的必须的环节。传统的手工管理方式不但浪费人力、时间,而且管理复杂,易出差错。基于计算机技术的完备的超市管理系统把一些繁琐的数据计算、信息处理化为简单的指令操作。完全实现数据信息的电算化管理,彻底把人从手工管理中解放出来。经过艰苦的努力,我们终于实现了预期的设计目标,开发出这套具有一定实用价值的超市管理系统,使用这套系统有利于提高超市商家的劳动生产率,节约运营成本,增加经济效益。本文主要介绍了该系统生成的背景及 Visual Basic 6.0 和 Access 的一般原理。阐述了本管理系统的结构及工作原理;设计实现了登录模块、销售统计、查看数据表、主界面的实现;分析并解决了现实中的若干技术问题。关键词关键词数据库 Visual Basic6.0 超市管理 2AbstractIn recent years, the computer technique has become more and more ripe; the database technique develops constantly and the application of the information management system has stretched into every field of our society. Combining the methods and steps of the information management system and basing on the theory of it, I developed a small information management systemthe super market management system.The management of super market is a necessary part of the companys daily operation. Traditional way is a waste of human resources and time, and it is complicated and often runs with mistakes. Based on the computer technique, the perfect shopping management turns those complicated data calculation and information processing into simple instructions.It realized the electronic management of data information completely. It liberates people from the human management entirely. After hard work, I finally realized my design as expected, and developed this practical and valuable book-sell management system. Using it will raise the working rate, reduce the cost and raise the economic benefit of the company. This paper mainly introduces the develop background of the system and the basic theory of Visual Basic 6.0 and Access Visual. It tells the structure of the super market management system and its working theory; it analyzes the specialty, difficulty and important things in system realization. The design realizes the management of the system users, the basic information, the business, and the members management.Keywords:Database Visual Basic6.0 The super market management 3目录目录摘 要.1ABSTRACT.2目录 .3绪论.41.系统开发工具.51.1 VISUAL BASIC简介.51.1.1 什么是 Visual Basic1.51.1.3 Visual Basic 的特点1.51.2 ACCESS 2002.61.2.1 Access 简介3.61.2.2 Access 2002 和数据库的关系4.72.可行研究和需求分析性.82.1 可行性研究5.82.2 需求分析.83.系统总体设计方案.103.1 系统功能分析.103.2 数据库设计.103.3 系统功能模块设计.123.4 系统功能介绍.144. 系统各模块的设计及实现.184.1 用户控制模块及界面详细设计.184.2 主窗体.194.3 交易管理模块及界面设计.2044 进货统计模块及界面设计.2445 销售统计模块及界面设计.264.6 查看数据表功能模块的设计.2747 模块及界面设计.304.8 关于界面的设计.31结论.31致谢.32参考文献.32 4绪论随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。而当今时代是飞速发展的信息时代,各行各业都离不开信息处理。计算机的最大好处在于可以利用它进行信息管理。使用计算机进行信息管理,不仅提高了工作效率,而且大大的提高了其安全性。超市管理是超市中不可缺少的重要部分,超市的管理信息量繁多,包含很多信息的数据管理。现今,大多数大型超市商场都使用计算机进行信息管理,而小型超市商店仍然采用传统的人工管理方式,这种管理方式存在着许多缺点,如:效率低、工作量大等,而且,随着购买者与超市数量的增长,对于超市的销售、进货、退货、交易管理等等,使更新和维护都带来了不少的困难。本系统就是为了改变传统的超市商店这种现状所设计的。使用计算机对超市进行管理,有着手工管理所无法比拟的优点。例如:查看迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够使超市管理进入科学化、正规化的轨道。 51.系统开发工具1.1 Visual Basic 简介1.1.1 什么是 Visual Basic1“Visual”的意思是“可视的” ,指的是开发图形用户界面(GUI)的方法。读者不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象放到屏幕上即可。 “可视的 Basic”这个名字初听起来可能抽象了点,但实际上它却是最形象的叫法,用户只要看到 Visual Basic 的界面就会明白了,实际上它无需编程,就可以实现许多功能。在 Visual Basic 中还引入了控件的概念,在 Windows 中各种各样的按扭、文本框等都是控件。Visual Basic 把这些控件模式化,并且每个控件都有若干属性来控制它的外观以及工作方法(Method) ,这样用户就可以象在画板上作图一样,随意按几下鼠标和按扭就可以完成一定的任务,而这些在以前的编程语言下是要编写相当复杂的代码的。“Basic”指的是 BASIC 语言,一种在计算技术发展史上应用的最为广泛的语言之一。Visual Basic 在原有 BASIC 语言的基础上进行了大量的扩展,现在,从个人使用的小型工具软件到大型企业的系统软件,甚至通过网络遍及全球的分布式应用软件,都可以使用 Visual Basic 开发。1.1.3 Visual Basic 的特点11.面向对象的可视化 在 Visual Basic6.0 中,应用面向对象的程序设计方法(OOP) ,把程序和数据库封装在一起视为一个对象,而且每个对象都是可视的,程序员在设计时只需用现有的工具根据界面设计的要求,直接在“窗体”上画出诸如“按扭” 、“滚动条” 、 “文本框”等不同类型的对象,并为它们设置“属性”编写“事件”代码即可,从而大大简化了设计的复杂度。2.事件驱动的编程机制Visual Basic6.0 通过事件驱动来执行对象的操作。在事件驱动的程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码模块。每个对象都有一个事件集,每个事件发生都要有有相应的程序代码来响应,即要执行一段程序代码。事件可以由用户操作触发,也可以由操作系统或其他应用程序的消息触发,甚至可以由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径是不同的。在程序设计时,不需要建立明显的开始和结束的大块应用程序,也不需要指出 6先执行哪部分代码和按什么顺序执行代码,只需编写一些针对事件的许多小的模块子程序(也称过程) 。3.交互式的程序开发过程传统的编程过程分三个步骤:编写源程序、将源程序编译和连接生成可执行的二进制代码和最后运行生成可执行的二进制代码。而 Visual Basic6.0 采用的是交互式方法开发应用程序,使三个步骤之间不再有明显的界限。传统的编程中,如果编写源程序中出现错误,只有在编译和运行时才会被编译器捕捉,此时必须先返回编辑状态修改错误,然后再编译、连接和运行,直到正确为止。Visual Basic 编程在输入代码时便进行解释,即时捕获并突出显示大多数语法或拼写错误,同时将出现警告对话框,并将出错的源代码以红色显示,方便用户及时修改程序。4.提供强大的数据库访问工具随着计算机技术的发展,数据库越来越显示出其强大的数据存储和数据管理能力。为了满足人们对数据库的需要,Visual Basic 提供了强大的数据库程序设计能力。它不仅能管理 Microsoft Access 格式的数据库,还能访问其他外部数据库,如 FoxPro,Paradox 等格式的数据库。另外,Visual Basic 还提供了开放式数据库连接(ODBC)功能,可以通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如 SQL Server,Oracle 等。在应用程序中可以使用结构化查询语言(SQL)直接访问 Server 上的数据库,并提供简单的面向对象的库操作命令、多用户数据库的加锁机制和网络数据库的编程技术,为单机上运行的数据库提供 SQL 网络接口,以便于在分布式环境中快速而有效地实现客户/服务器方案。5.充分利用 Windows 资源Visual Basic 提供的动态数据交换(DDE)编程技术,可以在应用程序中实现与其他 Windows 应用程序建立动态数据交换、在不同的应用程序之间进行通信的功能。Visual Basic 提供的对象连接与嵌入(OLE)技术是将每个应用程序都看作对象,将不同的对象连接起来,嵌入到某个应用程序中,从而可以得到具有声音、影象、图象、动画、文字等各种信息的集合式文件。1.2 Access 20021.2.1 Access 简介3 建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中寻找一种能更好地适应系统需求、更好地满足用户的要求以及适应开发人员的习惯。在本 7系统中,作为超市管理系统是一个比较小的应用系统,它所产生和处理的数据量也比较小。因此,没有必要使用像 SQL Server 和 Oracle 这样的大型数据库。Microsoft Office 中的 Access 数据库在计算机上的应用比较普及,是开发小型数据库系统的比较理想的选择,所以,在本系统中我选择了 Access 数据库。 Access 作为一个数据库管理系统,它被集成在 Microsoft Office 中。Access 数据库处理的基本结构,采取关系型数据库模式。与其他的数据库系统相比,Access 更加简单易学,一个普通的计算机用户可以很快地掌握它。Access 2002 的功能十分强大,利用它可以方便地实现对信息保存、维护、查询、统计、打印、交流、发布,而且它可以十分方便地与 Office 其他组件交流数据,这些功能对一个一般用户而言已经足够了。1.2.2 Access 2002 和数据库的关系4Microsoft Access 从本质上说就是一个数据库管理系统,具体来说是一个关系数据库管理系统(RDBMS) 。Access 主要用于中小型数据库系统。它相对于其他数据库产品来说开发时间比较晚,但由于它强大的功能和使用上的方便,使越来越多的用户转向Access,成为当今最为通用的数据库软件。作为新一代 RDBMS 的代表,Microsoft Access 2002 提供了真正的关系数据库管理。在 Access 数据库中,数据是由表格组成的,在表格中有主关键字和外部关键字的定义,在数据库中提供了完全的引用完整性,保证了数据库的完整性。同时 Access 的表格具有数据确认规则,以避免不精确的数据输入。表格的每一个字段都具有自己的格式和缺省的定义。Access 能作为独立的数据库管理系统使用,或作为客户产生结构化查询语言这样的服务程序。另外,Access 数据库具有开放式数据库互连性(ODBC)特性,用户可以与许多外部数据相连接。Access 数据库所能完成的功能基本是一个数据库管理系统所应具有的功能,概括如下:(1)根据需要制定 Access 数据库系统,对数据进行保存、查阅和计算。(2)利用数据表存储相应的数据信息,为每一种实际对象的信息创建一个表,在表中对不同数据以不同方式保存。(3)按实际对象之间的关系,定义各个表之间的关系。(4)检索用户指定条件的数据,创建相应的查询来进行检索,可以利用查询更新或删除多条记录,并对表中的数据执行各种计算。(5)直接输入、查看或更改数据库中的数据,利用表格或窗体完成。(6)对数据库中的数据进行分析,通过特定方式打印数据,制作报表。(7)将数据库中的数据传输到其他数据库的服务器上,实现资源共享。 82.可行研究和需求分析性软件开发最初的工作就是问题定义,也就是确定超市中要求解决的问题是什么;做好软件定义时期的工作是降低软件成本提高软件质量的关键。在软件开发的不同阶段进行修改需要付出的代价是很不相同的,越在早期改正错误,付出的代价就越小,了解了它的重要性之后,我明白前期工作一定要做好才能更好地提高工作效率。我把任务超市又仔细地研究了一遍,充分明白了它的要求后,接下来作可行性研究,只有做好可行性研究才有可能把以后的工作做好。2.1 可行性研究5可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。不能靠主观猜想,只能靠客观分析。首先应该近一步地分析和澄清问题定义,如果正确则进一步加以肯定,如果有错则应立刻改正,经过仔细审查,然后从三方面分析它的可行性:1)技术可行性(即使用现有的技术能实现这个系统吗):答案是肯定的,VB 功能强大,能用简单的方法完成复杂的问题。 2)操作可行性(系统的操作方式在这个用户组织能行的通吗):答案是肯定的,本系统操作简单,系统的运行不需要特定的环境。3)经济可行性(系统的经济效益是否能超过它的开发成本):2.2 需求分析需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。可行性研究阶段产生的文档是需求分析的出发点。需求分析阶段系统本人仔细研究超市管理系统应实现的功能并将它们具体化。数据字典是关于数据信息的集合,任何字典最主要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。针对一般超市管理系统的需求,通过对超市管理工作过程的内容分析与本人所要承担的任务,设计出下面的数据项和数据结构: 9(1) 交易管理:包括进货登记、销货登记、退货登记等。其中进货登记中还包含进货商登记,如过是新的进货厂商,可以直接在此登记入库。进货和进销存的主要交易都是在此进行。每次交易(包括进货、销货和退货)都需要对商品名称、生产厂商、商品型号、单价、数量、总金额、交易日期、经手业务员编号等各项记录。在交易过程中,程序的编写尽可能的方便员工进行交易,比如:进货登记时,如果商品编号相同,则自动添加该商品的其它属性;销货登记时,用户只要输入商品编号,该商品的其它属性即可自动出现。退货登记时,只要输入正确的销货编号,其进销存信息也将自动列出,尽量的方便了用户的操作,同时对于登陆的员工编号程序也自动的将其列在进货登记、销货登记中,以己防止员工进行非正常的交易。(2) 进货统计:包括今日进货统计、本月进货统计、本季度进货统计、本季度进货统计、本年度进货统计等。其中每次进货统计都是按进货厂商和进货总金额统计显示的。使用一个表格显示所选时间段的全部进货数据,包括进货编号、商品名称等。再使用另一个表格显示分别从各个厂商进货的金额,还有一个文本框用于显示次时间段的进货总金额。(3) 系统管理:包括更换用户、修改密码、退出系统、与关与。用户在进入后可以根据自己的需要进行更改密码,调换用户重新登录,退出本系统和一些相关的相关本版的信息提示。(4) 销售统计,包含的数据项有:销售编号、商品编号、商品名称、生产产商、生产社、销售年、销售月、销售日、业务员编号等等。(5) 查看数据表,包含的数据项有:进货表、现存商品表、退货表、销售表、管理员工表等等。(6) 系统用户信息,包含的数据项有:用户名、口令、级别。 103.系统总体设计方案3.1 系统功能分析系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本人根据系统需要与任务的分配要完成的主要任务与功能有:对本系统的登录模块的实现:根据不同的用户权限来登录到主窗体。对本统主要界机的设计实现:在主界面中要实现五个弹出菜单;有交易管理菜单,进货统计菜单,销售统计菜单,查看数据表菜单,系统管理菜单。3.2 数据库设计上面提到的各种功能的实现都离不开数据库的支持,因此数据库设计作为本系统设计的一部分不可缺少。开发本系统中使用的数据库系统是 Windows Access 2000 。从上面的功能分析不难看出本系统需要建立以下几个数据表:buy 表(进货表)、goods 表(现存商品表)、sell 表(进销存表)、retreat 表(退货表)、employee 表(员工表)、manufacturer 表(进货商表)。由于数据量比较小,所以这些数据表都存在一个数据库下:sellsystem.mdb 下面对各个数据表的结构做一下简单介绍:在系统的数据库设计中,进货表、销货表、商品库存表和退货表涉及了交易管理三个子菜单的绝大部分数据,是本系统数据库的核心,所以将对其部分表的设置列表显示。Manufacturer 表(进货商表)中包括有厂商编号、厂商名称、联系人姓名、电话、厂商地址等字段,表略。employee(员工表)中包括有员工编号、员工姓名、员工密码、员工电话、员工地址等字段,表略。buy 表(进货表)中包括有进货编号、商品编号、商品名称、生产厂商、型号、数量、进货价、进货年、进货月、进货日、总金额、业务员编号等。设计该数据表的主要目的是方便管理员的查看,使系统的数据管理能够更加层次化。具体设置如表 3-1 所示。表 3-1 buy 表字段名数据类型说明进货编号文本字段大小为 20 11商品名称文本字段大小为 20生产厂商文本字段大小为 20型号文本字段大小为 20数量数字长整型进货价货币货币进货年数字整型进货月数字整型进货日数字整型业务员编号文本字段大小为 20总金额货币货币goods 表(现存商品表)中包括有商品编号、生产厂商、商品名称、型号、进货价、销货价、数量、进货年、进货月、进货日、业务员编号、总金额等字段。具体设置如表 3-2 所示。表 3-2 goods 表字段名数据类型说明商品编号文本字段大小为 20商品名称文本字段大小为 20生产厂商文本字段大小为 20型号文本字段大小为 20数量数字长整型进货价货币货币销货价货币货币 retreat 表(退货表)中包括有退货编号、销货编号、生产厂商、商品名称、型号、单价、数量、总金额、退货年、退货月、退货日、业务员编号等。具体设置如表 3-3 所示。表 3-3 retreat 表字段名数据类型说明退货编号文本字段大小为 20销货编号文本字段大小为 20商品名称文本字段大小为 20生产厂商文本字段大小为 20型号文本字段大小为 20单价货币货币数量数字长整型 12总金额货币货币退货年数字整型退货月数字整型退货日数字整型业务员编号文本字段大小为 20本节总结:对于本图超市管理系统功能的实现,重点和难点有如下几处: 交易管理模块在本模块中,对于商品的进货、销货和退货操作时,都要注意其操作过程中商品数量及其它属性的变化,本人在制作此模块时,采用了指导教师提供给我的思想:进货登记时,将进货信息添加到进货表中。然后对商品库存表的编号进行判断,如果进货信息的商品编号存在,则将商品库存表中对应记录的商品数量做相应的调整;如果商品编号不存在,则直接将进货信息添加到商品库存表中。货登记时,先将商品的销货信息添加到销货表中,然后将商品库存表中响应的商品的数量做相应的调整,保证商品数量的一致性。退货登记时将退货信息添加到退货表中,然后将退货数量从进销存表中减掉,最后将退货数量加到商品库存表中。3.3 系统功能模块设计对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图3.1 的系统功能模块图。 13 否 是 用户登录是否是管理员主界面交易管理进货统计系统管理销售统计查看数据表进货登记销售登记退货登记修改密码退出系统关于更换用户今日进货统计本月进货统计本季度进货统计今年进货统计今日销售统计本月销售统计本季度销售统计今年销售统计查看进货表查看现存商品表查看销售表查看退货表管理员工表查看进货商表 14(1)交易管理模块:用于管理商品的进货,进销存,退货登记的操作。 (2)进货统计管理:主要用于对商品每日,每月,第季度,每年的进货情况进行统计管理,此功能只有以管理员的身份进入时才为可用状态。(3)销售统计管理:主要用于对商品每日,每月,第季度,每年的进销存情况进行统计管理,此功能只有以管理员的身份进入时才为可用状态。(4)查看数据表:主要能查看进货表,商品信息表,进销存表,退货表等进行查看,以实现对商品信息的及时了解。 3.4 系统功能介绍(1)登陆窗体 该登陆窗体对用户登陆做了一个简单的判断,如果是管理员登陆则可进入初始化界面,然后再进入主界面。 具体做法是:先在窗体级中定义一个记录集,用于打开 employee 表,打开后将该表中的字段:员工姓名,依次加到 combo1 中。全加入后关闭记录集,然后对 combo1 和 text1 中的内容做一下简单判断:如果 combo1 和 text1 中的数据正好和 employee 表中的某个记录相同,则通过登陆窗体,否则提示用户用户名或密码有误。在通过登陆窗体中还要对用户名做一下判断:如果是管理员登陆,则进入系统初始化窗体,如果是普通用户登陆,则进入主界面。(2) 初始化窗体 该初始化窗体为本系统的使用者提供了试运行服务,如果使用者试运行后决定正式使用,可以通过管理员登陆本窗体对系统进行初始化,即清空试运行阶段的所有进销存数据。具体实现过程为:定义 5 个记录集,其每一个记录集控制一个数据表的打开与关闭操作,其记录集的取名与数据表相近:rs_sell, rs_buy, rs_goods, rs_retreat,rs_manufacturer.当管理员点击是标签时,先出现一个消息框,问管理员是否真的要进行初始化。如果是,则 5 个记录集依次连接到 5 个数据表上,然后对每个数据表的内容进行删除操作。具体删除方法为:先对表的状态进行判断,如果某个数据表的内容为空,则直接关闭记录集,以免多步操作数据表出现错误;如果该数据表不为空,则依次删除该数据表的每一个记录,对于每一个数据表都要做此判断,并且每打开一个新的数据表都要关闭上一个数据表,这样操作起来层次显得比较清晰,而且维护起来也比较方便。 15(3)主窗体 主窗体的建立十分简单,只需将所要实现的功能编辑成菜单即可。该窗体的运行过程为:用户首先进入登陆窗体,如果是管理员登陆,则先进入初始化窗体,经过判断是否需要初始化后,进入主窗体。其权限为:销货统计、进货统计、查看数据表和系统管理。其权限的设置使管理员能够方便的查看任何时间段内的所有信息,还可以对员工表进行管理。如果是普通用户登陆,则直接进入主窗体,其授予的权限只有交易管理和系统管理,也就是说员工只能负责对商品进行如库登记、销货登记和退货登记,另外在一个员工对本系统使用的整个期间内,进货登记、销货登记和退货登记三个窗体中的显示的业务员编号都由系统自动给出的该员工的员工编号。(4)进货登记窗体 本窗体用来实现商品进货功能,将进货信息添加到 buy表,再将该信息选择性的加入 goods 表。如果是新的进货厂商,可以在此入库登记。其具体实现过程如下所述:先在窗体级变量中定义三个记录集:rs_buy,rs_goods,rs_manufacture 用来控制三个数据表:buy 表,goods 表,manufacturer 表。在用户点击添加商品中的添加入库操作之前,程序先会检查是否有用户是否有个别属性为空,并做出提示。然后将商品添加到 buy 表中,再添加到 goods 表。在添加到 goods 表时,程序会先判断该商品编号是否已经存在,如果存在则直接将该添加信息的数量加到 goods 表中相应的记录上。为此,进货编号、商品编号是 buy 表、goods 表中不可重复的属性。为方便用户操作,程序特在商品编号的文本框:text2 的 Change 事件中做了一个判断,即如果该商品编号存在的话直接显示该商品的其他属性。另外,对于总金额文本框也是由数量和进货价两个文本框的 Change 事件计算入内的。如果是新的进货商,可以将它的信息添加到进货商表。其过程和上面所说的添加到 buy 表基本相同,这里就不做介绍了。(5) 销货登记窗体 本窗体主要功能是对商品进行进销存,首先对员工输入的销货信息进行完整条件的判断,条件符合后进行进销存。然后将进销存信息存入 sell 表,并对 goods 表的数量做相应修改。 具体实现过程为:先在窗体集中定义两个记录集:rs_sell,rs_goods,用来控制两个数据表:sell 表和 goods 表。在销货窗体中,如果用户输入的商品编号已经存在,则该商品的其它属性将随着 text2(即商品编号)的 Change 事件出现在其对应的位置上。而进销存日期和业务员编号已经是程序默认给出的系统时间和登陆员工的编号。在判断没有空缺属性后该商品将顺利添加如库,而且该商品在 goods 表中的数量也将随之做相应的改变,使 goods 表和 sell 表的总和保持原来 goods 表中的数量值。 16(6)退货窗体 本窗体的功能是实现商品退货功能,当人为判断某商品可以退货时即可将该商品退货。其数据库实现为:先将该信息加入 retreat 表,然后从 sell 表中减掉,最后对 goods 表的数量做一下调整即可。其具体实现过程是:先在窗体集中定义三个记录集:rs_sell,rs_goods,rs_retreat 用来控制三个数据表:sell 表、goods 和 retreat 表。在退货窗体中,如果用户输入的销货编号存在,则关于该商品的进销存信息将依次出现在相应的对话框中。退货成功后,该退货信息先添加到退货表,然后将其退货数量从相应的 sell 表中减掉,并添加到 goods 表中。(7)进货统计菜单 进货统计菜单下有 4 个子菜单,分别是今日进货统计、本月进货统计、本季度进货统计、今年进货统计。由于他们的界面非常相似,本程序中使用了一个 SSTab 控件以选项卡的形式在一个窗体中实现以上 4 个子菜单。这样做使窗体显得更加美观。为项目添加了必要的控件之后,开始进行界面设计。先在窗体上添加一个 SSTab控件,单击鼠标右键在快捷菜单中选择”属性”命令。将其选项卡的数目定为4 个,标题分别为:今日进货、本月进货、本季度进货、本年度进货。由于每个选项卡的界面都一样,现以”今日进货”选项卡为例,加入两个 datagrid 控件,两个 Adodc 控件,一个 Label 控件,一个 textbox 控件和 8 个 command 控件。其中两个 Adodc 的数据源连接都是才用的相对路径与 sellsystem 的 buy 表连接的,两个 Adodc 连接的 SQL 语句分别如下:select * from buyselect 生产厂商,sum(总金额) as 各厂商进货总金额 from buy group by 生产厂商。(8)销货统计窗体 进销存统计菜单下有 4 个子菜单,分别是今日销货、本月销货、本季度销货、今年销货。由于它们的界面非常相似,本程序中使用一个 SSTab 控件以选项卡形式在一个窗体中实现 4 个子菜单。其界面设计和窗体说明与进货统计大同小异,也一样一个选项卡为例进行说明,现以”今日销货”为例:加入两个 datagrid 控件,两个 Adodc 控件,一个 Label 控件,一个textbox 控件和 8 个 command 控件。其中两个 Adodc 的数据源连接都是采用的相对路径与 sell 表连接的,两个 Adodc 连接的 SQL 语句分别如下:select * from sellselect 生产厂商,sum(总金额) as 各厂商销货总金额 from sell group by 生产厂商。 (9)查看进货表 其界面的设计比较简单,只是一个 datagrid 控件,一个Adodc 控件(已隐藏)和四个 Command 控件。本窗体的主要设计在于其四个命 17令按纽在进货表为空时不可用。(10)查看进货表 本窗体的主要设计目的是设置一个查询商品库存表的条件 。具体操作为:为查询现存商品表设立了一个简单的查询条件,一个是直接显示现存的全部商品表,一个是按条件对现存商品进行查询,用户可以根据自己需要按商品名称或生产厂商分别进行查找。该窗体的实现是要在窗体集的变量中设置一个记录集 rs_goods,用来控制 goods 表,然后将记录集在打开窗体时的 select 语句设为与本窗体的 text1 和 text2 有关的 SQL 语句。然后让现存商品表显示出来。(11)管理员工表 本窗体的制作目的在于方便对管理员用户的管理, 本节前面曾经提过系统初始化的功能,但其初始化并不能对员工表进行操作,当管理员登陆本系统时,可以访问此窗体,对用户表进行维护。但不能对管理员进行删除操作,此操作已被本人屏蔽。 (12)更换用户功能 在一个商品进销存公司可能会存在员工交接班的现象,为了方便用户交接班的操作顺利进行,在系统管理模块中做了一个更换用户子菜单,该子菜单便顺利的实现了此功能,而且它也方便了管理员的登陆管理。(13)修改密码 为了方便用户使用,在本模块中还设置了一个修改密码窗体,该窗体主要包括一个用户名输入、一个原密码输入和两个新密码输入。此窗体实现的功能是显而易见的,方便了用户的操作,增加了系统使用的安全性。具体做法是:先要求用户将四个必填项填写完整,然后对两个新密码进行相同判断,如果相同,则将记录集 rs_employee 打开,对用户名和原密码进行核对,如果相同,就将老密码替换为新密码。本节总结:对于本商品进销存管理系统功能的实现,重点和难点有以下几处:交易管理模块:在本模块中,对于商品的进货、销货和退货操作时,都要注意其操作过程中商品数量及其它属性的变化,本人在制做此模块时,采用了指导教师的提供给我的思想:进货登记时,将进货信息添加到进货表中。然后对商品库存表的编号进行判断,如果进货信息的商品编号存在,则将商品库存表中相应记录的商品数量做对应调整;如果商品编号不存在,则直接将进货信息添加到商品库存表中。销货登记时,先将商品的销货信息添加到销货表中,然后将商品库存表中响应的商品的数量做相对调整,保证商品数量的一致性。退货登记时将退货 18信息添加到退货表中,然后将退货数量从进销存表中减掉,最后将退货数量加到商品库存表中。在本系统管理员登陆时,显示给管理员的第一个界面:系统初始化也是本系统的又一大功能特色,其实现过程中要严格控制每一个记录集对相应数据表的打开与关闭操作。4. 系统各模块的设计及实现 经过了前面的可行性研究和需求分析,现在可以对我要完成的功能模块的实现做详细的设计。4.1用户控制模块及界面详细设计退出 Splash 窗体后就进入了登录窗体。输入相应的用户名和密码。如果用户的密码输错错误,则不能登录到系统主窗体;如果用户密码正确,则进入系统的 MDI 主窗体。 19代码设计:Private Sub Label3_Click() If Combo1.Text = Then MsgBox 请输入用户名!, vbOKOnly + vbInformation, 注意 Combo1.SetFocus Exit Sub ElseIf Text1.Text = Then MsgBox 请输入密码!, vbOKOnly + vbInformation, 注意 Text1.SetFocus Exit Sub4.2 主窗体 在 MDI 主窗体中,设计了 5 项菜单,分别为“交易管理” 、 “进货统计”“销售统计” 、 “查看数据表” 、 “系统管理” 、管理员权限、进货统计、销货统计、查看数据表、系统管理。部分设计代码如下: Private Sub mnBuyMonth_Click()frmBuyall.Text2.Enabled = FalsefrmBuyall.SSTab1.Tab = 1 20frmBuyall.SSTab1.TabEnabled(0) = FalsefrmBuyall.SSTab1.TabEnabled(1) = TruefrmBuyall.SSTab1.TabEnabled(2) = FalsefrmBuyall.SSTab1.TabEnabled(3) = FalsefrmBuyall.Showstrbuy = select * from buy where 进货年= & inty & and 进货月= & intm & rs_buy.Open strbuy, cnn, adOpenKeyset, adLockPessimisticfrmBuyall.Adodc2.RecordSource = strbuyfrmBuyall.Adodc2.RefreshfrmBuyall.DataGrid2.ReBindIf rs_buy.EOF = True Then frmBuyall.Adodc6.RecordSource = strbuy frmBuyall.Adodc6.Refresh frmBuyall.DataGrid6.ReBind MsgBox 您本月没有进货记录!, vbOKOnly + vbInformation, 注意rs_buy.Closestrfctotal = select 生产厂商,sum(总金额) as 各厂商进货总金额 from buy where 进货年= & inty & and 进货月= & intm & group by 生产厂商rs_fctotal.Open strfctotal, cnn, adOpenKeyset, adLockPessimisticfrmBuyall.Adodc6.RecordSource = strfctotalfrmBuyall.Adodc6.RefreshfrmBuyall.DataGrid6.ReBindrs_fctotal.Closestrtotal = select sum(总金额) as 进货总金额 from buy where 进货年= & inty & and 进货月= & intm & rs_total.Open strtotal, cnn, adOpenKeysetm, adLockPessimisticfrmBuyall.Text2.Text = rs_total.Fields(进货总金额)rs_total.CloseEnd Sub4.3 交易管理模块及界面设计1进货登记:进货登记: 21在些界面的操作中可以进行对所进的商品的信息及生产厂商的相关信息的添加,清空等操作。 其实现的部分代码如下:下面是对进货表进行添加记录操作! str_buy = select * from buy where 进货编号= & Text1.Text & rs_buy.Open str_buy, cnn, adOpenStatic, adLockOptimistic 打开进货表 If rs_buy.EOF = True Then rs_buy.AddNew rs_buy.Fields(进货编号) = Text1.Text rs_buy.Fields(商品名称) = Text3.Text rs_buy.Fields(生产厂商) = Text4.Text rs_buy.Fields(型号) = Text5.Text rs_buy.Fields(数量) = Val(Text6.Text) rs_buy.Fields(进货价) = Val(Text7.Text) rs_buy.Fields(进货年) = Text9.Text rs_buy.Fields(进货月) = Text10.Text rs_buy.Fields(进货日) = Text11.Text rs_buy.Fields(业务员编号) = Text12.Text rs_buy.Fields(总金额) = Val(Text13.Text) rs_buy.Update rs_buy.Close 关闭进货表 Else MsgBox 此进货编号已存在,请重添!, vbOKOnly + vbInformation, 22注意 Text1.Text = Text1.SetFocus rs_buy.Close Exit Sub 关闭进货表 End If下面是对商品库存表进行入库操作! Dim sql As String sql = select * from goods where 商品编号 = & Text2.Text & rs_goods.Open sql, cnn, adOpenStatic, adLockOptimistic If rs_goods.EOF = True Then rs_goods.Close str_goods = select * from goods rs_goods.Open str_goods, cnn, adOpenStatic, adLockOptimistic 打开库存表 rs_goods.AddNew rs_goods.Fields(商品编号) = Text2.Text rs_goods.Fields(商品名称) = Text3.Text rs_goods.Fields(生产厂商) = Text4.Text rs_goods.Fields(型号) = Text5.Text rs_goods.Fields(数量) = Val(Text6.Text) rs_goods.Fields(进货价) = Val(Text7.Text) rs_goods.Fields(销货价) = Val(Text8.Text) rs_goods.Update MsgBox 商品入库成功, vbOKOnly + vbExclamation, rs_goods.Close 关闭库存表 Else numgoods = rs_goods.Fields(数量) rs_goods.Fields(数量) = Val(Text6.Text) + numgoods rs_goods.Update MsgBox 商品入库成功, vbOKOnly + vbExclamation, 关闭库存表 rs_goods.Close End IfEnd Sub2 2销售登记:销售登记: 23对销售的商品进行相关信息的登记,并进行行销售金额的计算。其部分设计代码如下:Private Sub Command1_Click() If Text1.Text = Then MsgBox 请填写销货编号!, vbOKOnly + vbInformation, 注意 Text1.SetFocus Exit Sub ElseIf Text2.Text = Then MsgBox 请填写商品编号!, vbOKOnly + vbInformation, 注意 Text2.SetFocus Exit Sub End If str_goods = select * from goods where 商品编号= & Text2.Text & rs_goods.Open str_goods, cnn, adOpenStatic, adLockOptimistic If rs_goods.EOF = True Then MsgBox 对不起,此商品型号已无货!请选择其他型!, vbOKOnly + vbInformation, 注意 rs_goods.Close Exit Sub3 3 退货登记退货登记: 24对退货的相关信息进行记。如商品名,编号,价格,退货员,数量,金额时间等等进行登记。 其部分实代码如下:Private Sub Command1_Click()If Text1.Text = Then MsgBox 请填写退货编号!, vbOKOnly + vbInformation, 注意 Text1.SetFocus Exit Sub ElseIf Text2.Text = Then MsgBox 请填写销货编号!, vbOKOnly + vbInformation, 注意 Text2.SetFocus Exit Sub ElseIf Text11.Text = Then MsgBox 请填写商品数量!, vbOKOnly + vbInformation, 注意 Text11.SetFocus Exit SubEnd If 下面是对销售表进行操作! str_sell = select * from sell where 销货编号= & Text2.Text & rs_sell.Open str_sell, cnn, adOpenStatic, adLockOptimistic If rs_sell.EOF = True Then MsgBox 对不起,没有销售此商品型号!无法退货!, vbOKOnly + vbInformation, 注意 rs_sell.Close Exit Sub 25 ElseIf rs_sell.Fields(数量) Val(Text11.Text) Then MsgBox 对不起,退货数量过大,无法退货!, vbOKOnly + vbInformation, 注意 rs_sell.Close Exit Sub44 进货统计模块及界面设计主要用于对商品每日,每月,第季度,每年的进货情况进行统计管理,此功能只有以管理员的身份进入时才为可用状态。其部分设计代码如下:Private Sub Form_Load()inty = Year(Date)intm = Month(Date)intd = Day(Date)Dim str As Stringstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & sellsystem.mdb;Adodc1 的相对路径连接Adodc1.ConnectionString = strAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select * from buy where 进货年= & inty & and 进货月= & intm & and 进货日= & intd & Adodc1.Refresh 26Set DataGrid1.DataSource = Adodc1DataGrid1.RefreshAdodc2 的相对路径连接Adodc2.ConnectionString = strAdodc2.CommandType = adCmdTextAdodc2.RecordSource = select * from buy where 进货年= & inty & and 进货月= & intm & Adodc2.RefreshSet DataGrid2.DataSource = Adodc2DataGrid2.Refresh45 销售统计模块及界面设计主要用于对商品每日,每月,第季度,每年的进销存情况进行统计管理,此功能只有以管理员的身份进入时才为可用状态。其部分设计代码如下:Private Sub Form_Load()inty = Year(Date)intm = Month(Date)intd = Day(Date)Text1.Enabled = FalseText2.Enabled = False 27Text3.Enabled = FalseText4.Enabled = FalseDim str As Stringstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & sellsystem.mdb;Adodc1.ConnectionString = strAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select * from sell where 销售年= & inty & and 销售月= & intm & and 销售日= & intd & Adodc1.RefreshSet DataGrid1.DataSource = Adodc1DataGrid1.RefreshAdodc2.ConnectionString = strAdodc2.CommandType = adCmdTextAdodc2.RecordSource = select * from sell where 销售年= & inty & and 销售月= & intm & Adodc2.RefreshSet DataGrid2.DataSource = Adodc2DataGrid2.Refresh4.6 查看数据表功能模块的设计在这个功能模块中,主要有如下几个小功能模块组成:查看货表, 查看现存超市表,查看退超市表,查看销售表,管理员工表等几个功能.主要实现对超市管理中的超市进,存,销进行管理.还有对系统员工的管理.这几个功能都是以表格的形式来显相关的数据的.在查看现成超市表中,采用搜索的功能,在表中填入相关的的关键词,就能查到相关的超市名,超市号,生产商,条码.主要是采用 SQL 语言中的搜索,SELCET 语句进行关
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!