用Visual Basic开发进销存管理系统(三稿).doc_第1页
用Visual Basic开发进销存管理系统(三稿).doc_第2页
用Visual Basic开发进销存管理系统(三稿).doc_第3页
用Visual Basic开发进销存管理系统(三稿).doc_第4页
用Visual Basic开发进销存管理系统(三稿).doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要随着当今世界计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业进销存管理势在必行。本系统结合公司实际的进销存制度,通过对本公司的供应商、顾客、商品、进货、销售、代销等信息的管理,从而达到进货、销售和库存的全面信息管理。经过实际的需求分析,采用了Microsoft的Visual FoxPro6.0作为开发工具而开发出来的企业进销存管理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成进货、销售、库存管理的全过程,包括操作员的增添与修改,进货、销售商品的录入、统计与查询,以及库存的统计等。经过实际使用证明,本文所设计的企业进销存管理系统可以满足企业进货、销售管理方面的需要。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案【关键字】进货管理, 销售管理, 库存管理, delphi, sql server 2000数据库目 录第一章 数据库基础3 1.1数据库基础知识3 1.2数据库开发的基本步骤6第二章 访问visual basic数据库8 2.1 ADO的对象模型8 2.1基本数据库管理9第三章 数据库开发16 3.1数据库的设计16 3.2系统功能设计20 3.3创建库存盘点窗口23 3.4创建产品管理窗口24 3.5创建库存查询窗口27 3.6实现退出功能29第四章 系统的改进与扩展29参考文献29第一章 数据库基础1.1 数据库基础知识 进行VISUAL BASIC数据库开发,首先要了解与之相关的数据库基本知识,这样进行项目开发就有了切入点。1.1.1 数据库的基本概念 数据库技术的内涵,包括4个紧密相关的概念:数据、数据库、数据库系统和数据库管理系统。 这里指的数据并不是日常讲到的狭义的数字。我们定义的数据是描述事物的符号记录。它既包括平时所讲的数字,还包括文字、影音、图形等形式。 我们所说的数据库是指长期存储在计算机内、有组织的、可共享的数据的集合。数据库中的数据按一定的时间模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户所共享。 数据管理系统(DBMS)是一个软件系统。它负责将收集并抽取的大量的数据进行科学的组织,并将其存储在数据库中,高效地进行处理。它是数据库管理系统的核心,是为数据库的建立、使用和维护而配置的软件。它建立在操作系统的基础上,是位于操作系统和用户之间的一层数据管理软件,负责对数据库进行统一的管理和控制。用户发出的或应用程序中的各种操作数据库的数据命令,都要通过数据库管理系统来执行。数据库管理系统还承担着数据库的维护工作,能够按照数据库管理员规定的要求,保证数据库的安全性和完整性。其在计算机系统中的地位如图1-1所示。数据库系统是将计算机引入数据库系统而构成的。一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。我们所要讲的数据库就是数据库系统的简称,这也在一方面证明了计算机在数据库技术中举足轻重的作用。数据库管理应用系统层应用开发工具软件层翻译系统层硬件层 图1-1 数据库管理系统1.1.2 关系数据库 计算机不可能直接处理现实中的具体事物,所以必须通过人将现实中的具体事物转换成计算机可以处理的事件信息,这就用到了数据模型。 数据模型主要包括3种常用的模型,即网络模型、层次模型和关系模型。网络模型和层次模型又称为非关系模型。虽然非关系模型在现在还有一定的应用,但关系模型数据库应用越来越广泛。现在几乎所有的数据库管理系统都支持关系模型,非关系系统的产品也大都加上了关系接口。1、关系模型的数据结构关系模型的数据结构表如表1-1所示。一个关系数据模型的逻辑结构就是一张二维表,由若干行和列组成。根据上面的表格来分析一下它的主要组成。元组(记录):表中的一行就是一个元组,即一个记录。属性:表中的一列就是一个属性。像在表1-1中,就有学号、姓名、所在班级、籍贯和年龄5个属性。表1-1 关系数据库学号姓名所在班级籍贯年龄1001李列01山西221002张三02河北231030王星05上海21l 主码(关键字):表中的一个属性可以确定惟一的一个元组。即通过这个属性可以找到惟一的元组。如表1-1中,姓名、籍贯、年龄均可以相同,但学号惟一,学号就是主码。l 域:属性的取值范围。如所在学院的域就是学校有的院系,籍贯的域是中国的省市。l 分量:元组中一个属性值。如重庆即是主码为12004元组中的一个分量。l 关系模式:对关系的描述。表示为关系名(属性1,属性2,属性3,属性N)表1-1的关系就可以描述如下:学生(学号,姓名,班级,籍贯,年龄)要注意的是,关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件,这些规范条件中最为基本的一条就是关系的每一个分量必须是一个不可分割的数据项,也就是说表中不可以再有表。2、关系数据模型的操作与完整约束关系的完整性约束条件包括3大类,即实体完整性、参照完整性和用户定义的完整性。在满足关系的完整性约束的前提下,可以对关系数据模型进行操作。操作包括查询、插入、修改、更新等。关系数据模型作为当前的一种主流的数据模型,其优点主要有:l 与非关系模型不同,它是建立在严格的数学概念的基础之上的。l 关系模型的概念单一。无论实体不是实体之间的联系都用关系来表示。对数据的检索结果也是关系(即表)。所以,数据结构简单、清晰,用户易掌握。l 关系模型的存取路径对用户透明。当然,关系数据模型也不可避免地有缺点存在,如在开发数据库管理系统时必须对用户的查询进行优化等。1.1.3 ER图 建模最常用的方法就是“实体联系”实体(entity-relationship approach),两个实体型之间的联系可分为3类:l 一对一联系l 一对多联系l 多对多联系 可以用图形来表示实体型之间的联系,如图1-2所示。实体模型A实体模型A实体模型A 1 1 m联系联系联系1 n n实体模型B实体模型B实体模型B图1-2 两个实体之间的联系1、ER图概念实体联系模型简称ER图。它是描述概念世界,建立概念模型的实用工具。ER图包括以下3个要素:l 实体型用矩形框表示,框内标注实体名称。l 属性用椭圆形表示,并用连线与实体连接起来。l 联系用菱形表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在边线上注明联系类型。如果联系具有属性,则这些属性也要用无向边与该项连接起来。ER图设计过程实际是对数据进行归纳、分析,把企业的全部用户按他们对数据和功能需求进行分组。然后从局部入手,对每一类用户,建立局部ER模型,再综合成总体ER模型。2、设计局部ER图(1) 确定实体和属性。(2) 确定联系类型。依据需求分析结果,考查任意两个实体类型之间是否存在联系,若有联系,要进一步确定联系的类型(1:1,1:M,N:M)。在确定联系时应特别注意两点:一是不要丢掉联系的属性;二是尽量取消冗余的联系,即取消可以从其他联系导出的联系。(3) 画出局部ER图。3、综合成ER图(1)局部ER图的合并。为了减小合并工作的复杂性,先两两合并。合并从公共实体类型开始,最后再加入独立的局部结构。(2)消除冲突。一般有3种类型的冲突,即属性冲突、命名冲突、结构冲突。具体调整手段可以考虑以下几种:l 对同一个实体的属性取各个分ER图相同实体属性的并集;l 根据综合应用的需要,把属性转变为实体,或者把实体变为属性;l 实体联系要根据应用语义进行综合调整。4、用ER图来设计学生选课概念模型实例 学生有学号、姓名、性别、年龄、系别属性;课程有课程号、课程名称、学分属性。 学生和课程之间有选择课关系,该关系是一个多对多的关系。 学生关系ER图如图1-3所示。学 生学 号性 别姓 名班 级年 龄图1-3 学生关系E-R图1.2 数据库开发的基本步骤 数据库技术作为当前一项衡量国家信息化程度的标准被大力推行,尤其在我国信息化刚刚赴的阶段,数据库更是被大力发展。目前在我国从事信息事业的人员中有70%的人员从事着与数据库相关的工作。由此可见数据库在我国的发展前景。 数据库是集数据库基本知识和数据库设计技术、计算机基础知识和程度设计方法、软件工程的原理和方法及应用领域的知识为一身的一项综合的学科,涉及了多学科、多领域。计算机在其中只是作为工具出现的,这在一定程度上使得科学地设计数据库与实现数据库及其应用成为了日益引人注目的课题。 从全局出发,数据库的开发过程分为以下6个阶段:(1) 需求分析;(2) 概念结构设计;(3) 逻辑结构设计;(4) 物理结构设计;(5) 数据库实施;(6) 数据库运行和维护。下面就分别简要介绍各个部分的基本工作和其作用,使读者对数据库的开发有一个整体的把握。1. 需要分析阶段进行数据库设计首先必须准确了解与分析用户的需求(包括数据与处理)。对于初学者来讲,可能认为数据库就是用语言来编程,在计算机上编程是数据库设计的关键。其实不然,需求分析才是整个设计过程的基础,是最困难、最耗费时间的一步。它是数据库开发的基础,这方面工作的充分与否决定了在构造上的构造速度与质量。需求分析做得不好,甚至会导致后续工作无法进行而使整个数据库设计失败。2. 概念结构设计阶段概念结构设计是整个数据库设计的又一个关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。3. 逻辑结构设计阶段逻辑结构设计是将概念结构转换为DBMS所支持的数据模型,并对其进行优化。4. 数据库物理结构设计阶段数据库物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存储方法)。5. 数据库实施阶段在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,依据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据库,并进行试运行。6. 数据库运行的维护阶段数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、修改和调整。第二章 访问visual basic数据库常见的访问数据库的方法有使用ADO、DAO、RDO控件等。目前,由于ADO具有灵活而又有效的访问数据库的方式,故成为比较常用的访问数据库的方法和手段。 在visual basic与数据库连接后,就可以使用数据库查询语言SQL对数据库进行增加、删除、查询等操作了。2.1 ADO的对象模型ACTIVE DATA OBJECTS,简称ADO,是微软软件体系中处理关系数据库和非关系数据库的常用技术,ADO技术方式是DAO和RDO方式的继承者。ADO的对象模型如图2-1所示,它可以轻松地实现本地和远程数据库的访问过程,并且可以把数据对象绑定到指定的内置控件和ACTIVEX控件上,创建DHTML应用程序等。connectionerrorsrecordsetcommanderrorparametersfieldsparameterfield 图2-1 ADO的对象模型 从图2-1中可以看出,ADO中对象的组成一共有3个,它们是ADO顶层的对象,具体的功能如表2-1所示。表2-1 ADO顶层对象功能 对象名称功能Connection连接数据库的对象,指定对象的数据源,建立数据库的连接Command操作数据库的指令,可以接收SQL指令、表的操作指令和存储过程的指令,一般用来执行SQL查询,增加、删除和在线更新数据recordset得到表中的结果或者COMMAND操作后的结果,通常是一个表或者是几个记录的集合 总而言之,ADO技术在实际的应用中有如下的很多优点:(1) 毫不费力地定位记录,并使用过滤器和书签;(2) 提供排序、自动分页和持久性等功能,并能在与数据源断开时工作;(3) 可在多层之间相当高效地汇集记录集,不过只有COM对象才能使用ADO记录集。2.2 基本数据库管理 SQL的英文全称是STRUCTURE QUERY LANGUAGE,即结构化查询语言。作为一种数据库的查询和编程语言,它可以对数据库中的数据进行组织、管理和检索。它集数据查询(DATA QUERY)、数据操纵(DATA MANIPULATION)、数据定义(DATA DEFINIITION)和数据控制(DATA CONTROL)等功能于一言已经为广大的用户所接受,成为一种通用的数据库语言。 针对数据库的基本管理进行分析,基本数据库管理包括表管理、记录管理、索引管理和视图管理。 下面分别介绍与SQL语言有关的技术,并用VISUAL BASIC.NET实现这些技术。2.2.1 自制的实现工具 对于数据库的实现,VISUAL BASIC.NET可以有多种方法。比如用VISUAL BASIC.NET中自带的查询工具。这里用到的是我们自己制作的一个小程序,程序虽小,但是功能还是比较全的。它可以实现基本数据库管理的诸多操作,也可以丰富大家的编程经验。 下面介绍它的制作方法。1. 界面设计 首先向窗体中添加以下控件: BUTTON控件 COMBOBOX控件 TEXTBOX控件 LABEL控件 向COMBOBOX控件中添加项目,单击属性对话框的ITEMS属性后面的 ,显示添加对话框,并添加几个ITEM。 这里所添加的项目都是后面要讲到的。修改其他控件的属性,如表2-2所示。 表2-2控件属性控件名称属性属性值Formtext“SQL语言的基本操作”AcceptbuttonCndgoTextboxText(空)NameTxtsqlcomLabelText“现已成功地连接到数据库,您可以使用SQL语句了”ComboboxNameCmbtypebuttonNameCmdgoText“执行” 技巧: 每个窗体都有一个ACCEPTBUTTON和一个CANCELBUTTON。执行时,按ENTER键可以自动触发ACCEPTBUTTON,按ESC键可以自动触发CANCELBUTTON。2. 代码实现 下面添加代码。(1)引入名称空间。Imports system.data.oledb(2)在类中定义与数据库的连接。Private conn as new oledbconnection()(3)建立数据库连接。将LABEL控件的TEXT属性设置为“现已成功地连接到数据库,您可以使用SQL语句了”。之所以这样设置,是因为打算在窗体一经显示就已经连接到了数据库上。出于这个目的,将连接数据库的任务交给了form_load事件。 在事件中添加代码:Private sub form1_load(by val sender as system.object, by val e as system.eventargs) Handles_my base.load连接到数据库Conn.connectionstring=_ “provider=Microsoft.jet.oledb.4.0;daga source=sql test.mdb”为combobox设定初始状态Cmb type.selectedindex=0为文本框设定初始状态Txtsqlcom.text=”create table(约束条件, )” End sub说明:运行这个程序要求先在同级目录下建立一个数据库,名字为SQLTEST.MDB。(4)实现TEXTBOX中的内容与COMBOBOX中的内容的随机变化。这个功能是在事件cmbtype_selectedindexchanged中实现的。实现的代码如下:Private sub cmbtype_selectedindexchanged(by val sender as system.object,By val e as_system.eventargs)handles cmbtype.selectedindexchanged With txtsqlcom Select case cmbtype.selectedindexCase 0 建立新的表 .text=”create table(约束条件)”Case 1 对表进行修改 .text=”alter tableadd完整性约束dropmodify;” Case 2 删除基本表 .text=”drop table” Case 3 添加新的记录 .text=”insert into(属性列,)values(常量,)” Case 4 更新数据 .text=”updateset=,where 条件” Case 5 删除记录 .text=”delete fromwhere 条件” Case 6 新建索引 .text=”create uniquecluster indexon(,)” Case 7 删除索引 .text=”drop indexon” 注意:在SQL的标准语法中,删除索引为DROP INDEX 但在ODBC中,语法如上 Case 8 新建一个视图 .text=”create view(,)as with check ooption” Case 9 删除视图 .text=”drop view”End select End withEnd sub 注意: 在文本框中所加的文本都是在后面要讲到的基本数据库管理的命令格式。为了方便用户,我们将操作的格式与COMBOBOX中的功能匹配地显示到文本框中。(5)数据库的基本管理是通过单击“执行”按钮来控制的。“执行”按钮的主要功能是启动操作。 下面添加“执行”按钮代码:Dim com as new oledbcommand()Com.connection=connCmandtext=txtsqlcom.textConn.open()打开连接Com.executenonquery()执行SQL语句的操作Conn.close()关闭连接对于用户的操作,不可能所有命令的格式和内容都正确或被系统接受,还有可能会出现各种各样的错误。出于纠错的考虑,我们加入了异常处理。也就是说,运行可执行的命令,将返回成功信息;执行不可执行的命令,则返回错误信息。 修改上面的代码:Private sub cmdgo_click(by val sender as system.object,by val e as system.eventargs)_handles cmdgo.clickTry 如果发生异常则弹出对话框显示 Dim com as new oledbcommand() Com.connection=conn Cmandtext=txtSQLcom.text Conn.open() 打开连接 Com.executenonquery() 执行语句的操作 Conn.close() 关闭连接 Messagebox.show(_ “您的操作已经成功地执行!”,“恭喜!”,_ Messageboxbuttons.ok,rmation_ )Catch Conn.close() 此时连接一定要关闭 Messagebox.show(_ Err.description,”警告”,_ Messageboxbuttons.ok,messageboxicon.warning) Exit subEnd tryEnd sub 技巧: ERR对象有一个属性DESCRIPTION,它可以描述错误发生的类型,这在程序中可以很大地方使用户,也减少了编程者大量的工作。 为了检验异常处理代码的效果,我们运行程序,直接“执行”按钮,就会看到错误信息显示。3. 源代码下面是自制小软件完整的源代码,供大家参考。Imports system.data.oledb引入对数据库进行操纵的名字空间Public class form1 Inherits system.windows.forms.form以下省略windows form designer 产生的代码Windows form designer generated code Private conn as new oledbconnection() 定义与数据库的连接 Private sub form 1_load(by val sender as system.object,by val e as system.eventargs)Handles mybase.load连接到数据库Conn.connectionstring=_ “provider=Microsoft.jet.oledb.4.0;data source=sqltest.mdb”为combobox设定初始状态Cmbtype.selectedindex=0为文本框设定初始状态Txtsqlcom.text=”create table(约束条件,)”End subPrivate sub cmdgo_click(byval sender as system.object,byval e as system.eventargs) Handles cmdgo.click Try 如果发生异常则弹出对话框显示 Dim com as new oledbcommand() Com.connection=conn Cmandtext=txtsqlcom.text Conn.open() 打开连接 Com.executenonquery() 执行SQL语句的操作 Conn.close() 关闭连接 Messagebox.show(_“您的操作已经成功地执行!”,“恭喜!”,_Messageboxbuttons.ok,rmation_)Catch Conn.close() 此时连接一定要关闭Messagebox.show(_ Err.description,“警告”,_ Messageboxbuttons.ok,messageboxicon.warning)Exit sub End tryEnd subPrivage sub cmbtype_selectedindexchanged(bybal sender as system.object,byval e as system.eventargs)handles cmbtype.selectedindexchanged With txtsqlcomSelect case cmbtype.selectedindex Case 0 .text=”create table(约束条件,)” Case 1 对表进行修改 .text=”alter tableadd完整性约束dropmodify;” Case 2 删除基本表 .text=”drop table” Case 3 添加新的记录 .text=”insert into(属性列,)values(常量,)” Case 4 更新数据 .text=”updateset=,where 条件” Case 5 删除记录 .text=”delete fromwhere 条件” Case 6 新建索引 .text=”createuniqueclusterindexon(,)” Case 7 删除索引 .text=”drop indexon” 注意:在SQL的标准语法中,删除索引为drop index 但在ODBC中,语法如上 Case 8 新建一个视图 .text=”create vies(,)as with check option Case 9 删除视图 .text=”drop view” End select End with End subEnd class第三章 数据库建立3.1 数据库的设计在这个安全中,设计了一个名称为PurchaseandSale的数据库。根据系统功能的需要,在其中总共设计了6个数据表,分别如下: Products表 用于存储产品的基本信息以及相应的库存数量; Supplier表 用于存储供应商的基本信息; Customer表 用于存储客户的基本信息; Users表 用于存储系统用户的基本信息; Purchase表用于存储采购的记录的基本信息; Sale表 用于存储销售记录的基本信息。1Productort 数据表结构Product数据 表主要用于存储企业的产品或原材料信息,比如物品的名称、产地、规格、单位等。另外,根据销售记录和采购记录计算得出的每种商品的库存数量也存放在Products数据表库存字段。 Products数据表的结构如表3-1所示。表3-1 Product数据表结构字段名数据类型长度是否允许为空说明商品名称Nvarchar255否主键 ,惟一标识产品记录产地Nvarchar40是规格 Nvarchar50是包装Nvarchar50是单位Nchar19是库存Int4是 产品库存量,系统计算得出,默认为02.Supplier数据表结构 Suppliers数据表主要用于存储企业的供应商信息,比如供应商的编号、供应商的名称、供应商的地址、联系方式、开户银行和银行账号等。表3-2Suppliers数据表结构字段名数据类型长度是否允许为空说明供应商简称nvarchar10否主键,惟一标识供应商记录供应商全称nvarchar100是供应商单位全称地址nvarchar100是邮政编码Nchar6是电话numeric9是传真Numeric9是联系人Nvarchar30是联系人电话Numeric9是开户银行Nvarchar100是银行账号Numeric13是企业网址Nvarchar50是3.1.1 各数据表的关系实际进销存业务的一些数据是在多个业务活动中共享的,比如采购单中的商品必须在Product数据表中有相关记录,所以在本课题中也对上述的6个数据表设置了对应的关系 。具体关系主要表现在以下几个方面: 采购单、销售单中的经手人必须是企业中的合法员工,本课题中要求经手人必须是在Users数据表中有相应记录; 采购单、销售单中的产品必须在Products数据表中有相应的记录。如果采购一种新商品,必须先在Products数据表中增加这种商品的信息; 采购单中的供应商必是Suppliers数据表中的有相应的记录。如果采购中发展了新供应商,必须先在Suppliers数据表中增加这家供应商的信息; 销售中的客户必须是Customer数据表中有相应的记录。如果销售中发展了新客户,必须 先在Customer数据表中增加这家客户的信息。这些关系可以在SQL Server中用关系图工具设计和查看,结果如图4-1所示。3.1.2 数据表的创建下面介绍在Microsoft SQL Server2000中如何创建数据库PurchaseandSale。具体操作步骤如下 :(1)打开Microsoft SQL Server2000企业管理器,单击左窗格中的加号图标,一直将树形结构展开,直到出现数据库服务上的文件夹列表,如图3-2所示。(2)用鼠标右键单击“数据库”图标,在出现的快捷菜单中选择“新建数据库”项,出现如图3-3所示的“数据库属性“对话框。(3)在“名称“文本框中输入需要新建的数据库的名称,这里是PurchaseandSale,然后单击”确定“按钮。这样就创建了一个新的数据库,但是这只是建立了一个空的数据表。这一步需要在这个数据库中创建需要的6个数据表。 为了演示创建数据表的方法,这里用两种不同的方法创建数据表Product,其他的表可以用类似的方法创建。1、利用数据表设计工具创建数据表ProductsMicrosoft SQL Server2000提供了数据表设计窗口,来帮助用户快捷地创建需要的数据表。创建Products数据表的步骤如下:(1)在Microsoft SQL Server 2000窗口在左侧空格中用鼠标右键单击“数据库“列表项下面的”PurchaseandSale“图标,在弹出的快捷落单中依次选择”新建“”表“选项,出现如图3-4所示的窗口。(2)在“列名“文本框中输入数据库的字段名,第一个字段名为”商品名称“;在”数据类型“下拉列表框中选择或输入需要的数据类型,这里是”nvarchar”;在“长度”文本框中输入需要的字条长度,这里输入255;在“允许空”复选框中选择是否允许这个字段为空,此处因为商品名称是商品记录的主键,所以不允许此字段为空,取消对这个复选框的选择。(3)按照上一步的方法设定其他字段。 (4)单击工具栏上的保存图标按钮,弹出如图3-5所示的“选择名称”出对话框。这个对话框要求输入新建数据表的名称。此时输入“Product“,然后单击”确定“。这样,就通过数据表设计工具窗口建立了一个数据表Product。2、利用SQL脚本创建数据表Products另外还有一种更快速建立数据表的方法,就是利用Microsoft SQL Server 2000提供的查询分析器打开建表的SQL脚本,然后直接运行这个脚本,系统会自动按照脚本的要求建立数据库中的所有数据表。具体的操作步骤如下;(1)打开Microsoft SQL Server 2000提供的SQL查询分析器,界面如图3-6所示。(2)在查询分析器的菜单中依次选择“文件“”打开“选项,出现如图3-7所示的”打开查询文件“对话框。(3)在对话框中选择光盘中提供的PurchaseandSale数据库对应的脚本文件PurchaseandSale。sql,然后单击“打开“按钮,返回SQL查询分析器,如图3-8所示。(4)这时,SQL查询分析器中就装载了生成PurchaseandSale数据库中数据表的SQL脚本文件。单击工具栏上的“执行查询”命令图标,或者使用快捷键F5,系统会开(5)自动按照SQL脚本文件的要求建立数据库中的所在脯。数据表创建完成后,SQL查询分析器的下方窗格会提示“命令已成功完成”。这样,用户不需要自己设置数据库和数据表的任何属性和字段,就可以通过SQL脚本文件生成需要的数据库和数据表。3.1.3 主键和外键的创建在用光盘中提供的SQL脚本生成数据表的时候,SQL脚本中包含了数据表之间的关系和主键及外键的信息,所以这种方法创建的数据表就不再需要自行创建主键和外键了。在用数据表设计窗口设计的数据表中,并不会自动包含这些信息,所以需要用户手动创建。1、主键的创建根据数据表的结构清单,product数据表主键的步骤如下:(1)在SQL Serevr企业管理器中用鼠标右键单击“Product”数据表,在弹出的快捷菜单中选择“设计表”命令,打开数据表设计窗口。(2)选择Product数据表的“商品名称”字段,然后单击工具栏上的设置主键图标按钮“商品名称”字段就被设置为数据表的主键,同时自动取消对“允许空”复选框的选取。其他几个数据表的主键也赖以按照类似的方法创建。2、外键的创建Purchase 数据表中的商品名称、经手人和供应商字段都是这个数据表的外键。所谓的外键,就是这个字段是另一个数据表的主键。外键字段的聚会是受限制的,只有两种可能:一个是主键所在的表中已经有的记录;另一个为空,表示这个字段的值未知或现在不确定。Purchase数据表中的商品名称字段为这个数据表的外键,对应于Products数据表中的主键商品的名称字段已经存在的取值,或者取空值。设置外键的方法和设置主键的方法不太一样。下面用设置Purchase数据表的商品名称字段为例来说明设置方法。(1)在Purchase数据表的数据表设计窗口中选择商品名称字段,然后单击工具栏的“管理关系”工具图标按钮,弹出如图4-9所示的“属性”对话框,并且默认为“关系”选项卡。(2)在对话框的“选定的关系”下拉列表中列出了数据表中当前存在的主键外键关系。如果需要新建一个关系,单击“新建”按钮,然后在“关系名”文本框中输入关系名称,这里输入“FK_purchase_product”,然后在”主键表“下拉列表中选择”Products“数据表的”商品名称“字段,这是主键表中的主键字段。在“外键表“下拉列表中选择“Purchase”数据表的”商品名称“字段,这是外键对应的表和字段,如图4-10所示。(3)在下面的复选框中根据需要设置,一般都采用默认设置,然后单击“关闭“按钮即可。这样,每次在Purchase数据表中插入记录时,系统都会自动在Products数据表中商品名称字段,以决定是否接受输入的记录。数据表清单中设计的其他几个外键也可以按照类似的方法创建完成。3.2系统功能设计进销存管理系统充分发挥信息技术的优势,通过集中式的信息数据库,将企业的进、销、存等经营业务有机地结合起来,达到数据共享、降低成本、提高效率、改进服务的目的,进而提高企业的生产效率和管理水平。根据需求分析,设计的进销存管理系统的模块组织结构如图3-11所示。进销存管理系统日常业务库存管理统计查询基础信息系统设置退出系统采购单供应商管理产品管理客户管理库存查询密码设置采购查询关于系统销售查询销售单库存盘点下面对各模块的设计功能进行说明。 采购单:日常业务中需要频繁使用的功能,主要是对每笔采购入库进行记录,自动生成对应的采购凭证。采购单中的商品名称、供应商务经手人字段分别对应Products、数据表、Suppliers数据表和Users数据表的相关字段,所以这里需要检验用户输入的合法性。为了管理的方便和规范,每笔采购单对应一个唯一采购单票号。某时刻界面如图3-12所示。 销售单:日常业务中需要频繁使用的功能,主要是对每笔销售出库业务进行记录,自动生成对应的销售凭证。销售单中的商品名称、客户和经手人字段分别对应Product数据表、Customer数据表和Users数据表中的相关字段,所以这里需要检验用户输入的合法性。为了管理的方便和规范,每笔销售单对应一个唯一采销售单票号。 库存盘点:管理中的重要业务活动,主要是根据采购记录和销售记录对库存商品盘点,更新每种商品的库存量,为制定采购计划提供依据。计算库时需要检索第一种商品的采购记录,汇总得到此种商品总共的采购数量,然后检索这种商品的销售记录,汇总得到此种商品总的销售数量,最后用总采购数量和部销售数量相减即可。 产品管理:库存管理中辅助业务,主要是当有产品或者商品的属性数据改变时,需要在这里进行更新。 库存:统计查询功能中的一个模块,提供了对库存商品按照多种字段进行模糊查询的功能。库存查询的初始界面如图3-13所示。 采购查询:统计查询功能中的一个模块,提供了对采购记录的多种字段的复合式功能。 销售查询:统计查询功能中的一个模块,提供了对销售记录的多种字段的复合式功能。 供应商管理:基础信息维护中的一个模块,主要用于对供应商信息进行查询和维护。为了方便对多个供应商的管理和比较,本课题中将此功能用Tab页的形式实现,既方便对单个供应商信息的查看和编辑,又利于对供应商总体的评价和比较。某时刻运行界面如图3-14所示。 客户管理:基础信息维护中的一个模块,主要用于对企业客户信息的查询和维护。为了方便对多个客户的管理和比较,本课题中也将此功能和Tab页的形式实现,既方便对单个客户信息的查看和纺织,又利于对客户总体的评价和比较。 密码设置:系统设置听一个模块,主要用于为系统中现有的用户提供字码更改功能。 关于系统:系统设置中的一个模块,主要用于说明本系统的版本版权等信息。为了用户使用本系统的方便,该模块中还提供了计算机系统信息的显示功能。 退出系统:用于退出本系统。为了防止用户的误操作,退出系统之前需要用户确认退出的操作。整个系统运行的流程图大致如图3-15所示。工作人员工作人员工作人员工作人员客户供应商查询结果采购单销售单数据库3.3 创建库存盘点窗口菜单中的第项是库存盘点。所谓的库存盘点就是根据销售记录和采购记录计算出Product数据表中每种商品或产品的库存数量。由于企业中采购和销售活动非常频繁,而且销售的商品种类需要考虑到实际库存大于零,因此库存盘点功能也是十分常用和重要的。创建库存盘点窗口的步骤如下:(1)按照前述方法在应用程序工程中加入一个Windows窗口frmKCPD。(2)设置frmKCPD窗口的Ico属性为System.ico,BorderStyle属性为Fixed Dialog,StartUpPosition属性为屏幕中心。(3)从工具箱中拖动一个Adodc控件到窗体中,命名为adoKCPD。按照前述方法设置其链接属性使其连接到PurchaseandSale数据库并检索Product

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论