已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
多级仓库管理系统的设计与实现 目 录一、 引 言1(一) 课题来源1(二) 开发工具的选择1(三) 本文所做工作2二、 数据库概论2(一) 数据库的发展21. 数据库的发展32. 数据库技术3(二) 数据库理论基础41. 数据库模型42. 数据库体系结构43. 数据的独立性4(三) 语言基础51. SQL简介52. SQL查询53. SQL数据更新6三、 数据库开发工具6(一) Visual Basic 6.0 简介61. Data View(数据视图)窗口62. Data Environment Designer(数据环境设计器)7(二) Visual Basic 6.0 控件71. ADO数据访问组件72. 数据绑定控件8四、 仓储药房管理系统的分析与设计8(一) 需求分析8(二) 总体设计9(三) 系统具体功能实现10(四) 数据库设计16致 谢18参考文献18多级仓库管理系统的设计与实现摘 要 本系统主要完成对药房仓库的进、销、存管理,包括药品入库、出库、库存,制订采购计划,以及系统用户管理等五个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改、报表等功能。且系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。本系统采用SQL Sever 2000作为数据库管理系统,以SQL Sever 2000桌面引擎作为数据库服务器,并使用当前优秀的开发工具Visual Basic 6.0开发系统程序。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。关键字: 数据库,SQL语言,Visual Basic 6.0,数据库组件,仓库管理一、 引 言 (一) 课题来源随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。因此,在计算机飞速发展的今天,将计算机这一信息处理利器应用于仓库的日常管理已是势必所然,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理带来了明显的经济效益和社会效益8。主要体现在:一:极大提高了仓库工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。二:基于仓库管理的全面自动化,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业收入。三:仓库的管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统已变得十分心要。通过对仓库管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今仓库管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。(二) 开发工具的选择 目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:Microsoft公司的Visual Basic 6.0版Microsoft公司的Visual C+6.0版Borland公司的Delphi 6.0版其中,Visual Basic 6.0是一个非常理想选择。自1991年以来Microsoft公司陆续推出Visual Basic 1.0到Visual Basic 6.0等版本,Visual Basic 已经成为了使用者最多的一种程序设计语言,它的应用非常广泛,可以开发科学计算、数据库管理、客户服务器模式、Internet/Tntranet等多个领域的应用程序。Visual Basic是可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,可以广泛地用于各种应用程序设计。在Visual Basic 6.0 的集成开发环境中,用户可以设计程序代码、运行程序、进行程序错误的调试等,可视化的开发方法降低了应用程序开发的难度。Visual Basic 6.0的基础编程语言是BASIC语言,VB语言已经得到了扩展,可以通过判断和循环结构轻松的控制程序,也可以轻松的处理VB的对象和控件。使用Visual Basic 6.0 ,其友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持高效的程序开发和程序运行,备受广大程序开发人员的好评。尤其是Visual Basic 对数据库应用的强大支持,大大提高了数据库应用软件开发的效率,缩短了开发周期,深受广大数据库应用程序设计人员的喜爱。Visual Basic 为数据库应用开发人员提供了丰富的数据库开发组件,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快4。(三) 本文所做工作引言部分介绍了本系统的课题来源以及对数据库开发工具的选择。第二章介绍了数据库的发展,关系数据库,数据库体系结构,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。第三章系统介绍了Visual Basic 6.0及其部分控件。第四章是本文的主体,介绍了系统的总体设计过程。总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向 二、 数据库概论(一) 数据库的发展数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性5。数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护多媒体应用程序上。通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣,将直接影响数据处理的效率2。1. 数据库的发展数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性 ,数据不一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段。进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管理。当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统。但这并不能最终解决问题。在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不高,为数据库技术的产生提供了良好的物质条件2。2. 数据库技术从文件系统发展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,人们关注的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取代,数据占据了中心位置。数据结构的设计成为信息系统首先关心的问题,而利用这些数据的应用程序设计则退居到以既定的数据结构为基础的外围地位。目前世界上已有数百万个数据库系统在运行,其应用已经深入到人类社会生活的各个领域,从企业管理、银行业务、资源分配、经济预测一直到信息检索、档案管理、普查统计等。并在通信网络基础上,建立了许多国际性的联机检索系统。我国20世纪90年代初在全国范围内装备了12个以数据库技术为基础的大型计算机系统,这些系分布在邮电、计委、银行、电力、铁路、气象、民航、情报、公安、军事、航天和财税等行业。数据库技术还在不断的发展,并且不断地与其它计算机技术相互渗透。数据库技术与网络通信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技术相结合,产生了面向对象数据库系统。在数据库技术中有四个名词,其概念应该分清。(1)数据库(database,DB):DB是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。(2)数据库管理系统(Database Management System,DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型DBMS。(3)数据库系统(Database System,DBS):DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。(4)数据库技术:这是一门研究数据库的结构、存储、管理和使用的软件学科。数据库技术是操作系统的文件系统基础上发展起来的。而DBMS本身要在操作系统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科2。(二) 数据库理论基础1. 数据库模型在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型” 。要领模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这其中一著名的模型就是“实体联系模型” 。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。 这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型” 。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。2. 数据库体系结构数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”,最早是在1971年通过的DBTG报告中提出,后来收入在1975年的美国ANSI/SPARC报告中。虽然现在DBMS的产品多种多样,在不同的操作系统支持下工作,但是大多数系统在总的体系结构上都具有三级模式的结构特征。从某个角度看到的数据特性称为“数据视图”(data view)。外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级结构之间提供两个层次的映象(mappings):外模式/模式映象,模式/内模式映象。此处模式是概念模式的简称2。3. 数据的独立性由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。(1)物理数据独立性如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性。(2)逻辑数据独立性如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。(三) 语言基础1. SQL简介用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言SQL。SQL 的全称是Structured Query Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作2。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。SQL语言可以完成许多功能,例如: 查询数据 在数据库表格中插入、修改和删除记录 建立、修改和删除数据对象 控制对数据和数据对象的存取 确保数据库的一致性和完整性等2. SQL查询数据查询是关系运算理论在SQL语言中的主要体现,SELECT 语句是SQL查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。SELECT语句的完整句法如下:SELECT 目标表的列名或列表达式序列FROM 基本表和(或)视图序列WHERE 行条件表达式GROUP BY 列名序列HAVING 组条件表达式ORDER BY列名 ASCDEAC3. SQL数据更新使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。数据插入往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:INSERT INTO 基本表名(列表名)VALUES(元组值)数据删除往数据库的基本表中删除数据使用的是DELETE语句,其句法如下:DELETE FROM 基本表名 WHERE 条件表达式在些作一点说明,删除语句实际上是“SELECT * FROM 基本表名 WHERE 条件表达式”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:UPDATE基本表名SET列名=值表达式,列名=值表达式WHERE条件表达式三、 数据库开发工具(一) Visual Basic 6.0 简介在使用以前版本的Visual Basic(或简称VB)开发应用程序时,程序开发人员通常需要同时打开两个应用程序Visual Basic和一个数据库管理程序(例如Access)。现在,这些本来应该由数据库设计人员完成的任务已经成为Visual Basic集成环境的一个部分,而且,在设计完成上述任务时,VB6.0提供的一些数据工具在某些方面比数据库本身提供的工具还要好用得多。例如,我们在使用Microsoft SQL Server6.5提供的数据库工具进行数据库结构设计时,就会发现,要更改某个已经建成的数据库表结构是一件非常麻烦的事情。但利用VB6.0提供的数据视图(Data View)却象使用Access数据库一样方便。下面,我就根据自己的应用体会,谈谈VB6.0的新增数据库工具的特点。1. Data View(数据视图)窗口Data View窗口是VB6.0工作区的第一个组成元素,就象属性(Properities)窗口和工具栏一样,它可以依附在VB6.0的工作区的边界上。Data View的功能与VB中的可视化数据管理器(VisData)有点相似。可以从工具栏或“视图”菜单打开Data View。Data View窗口显示当前为数据库建立的所有连接,以及加入到数据库中的数据环境(Data Enviroment)连接。有了Data View,我们就可以创建并修改表和视图、数据库视图以及存储过程和触发器等。这样,我们在开发应用程序时,就不需要在VB和数据库管理程序之间来回切换,而是可以随时利用这个窗口建立应用程序所需的各种数据连接和数据环境,并对数据库表和查询等进行创建和修改。同时,还可以使用VB6.0所提供的其他工具,很方便地把浏览窗口中的数据字段拖到查询设计器(Query Designer)和数据报表设计器(Data Report Designer)窗口中,从而很容易地建立一个查询或报表。2. Data Environment Designer(数据环境设计器)Data Environment是VB6.0提出的一个新概念,它可以将许多单独使用的对象和控件组合成一个单独的环境,建成后的这个数据环境可用来访问任何数据库、查询或加入其中的存储过程。这样,我们就不用再担心程序中有多处地方用到了某个数据库的引用,只需作一处改动,应用程序中的其他有关地方也会作出相应变动。这就给我们开发应用程序带来极大的方便。从某种角度看,Data Environment的作用相当于一个通用的Data控件,它可以在任何情况下使用,可以连接到所有的数据库、表以及只含一个查询或表的对象上,而不仅仅局限于连接到某个查询或表上。数据环境设计器为我们提供了一种可以很容易访问VB工程中数据的方式。在以前的版本中,在设计时使用 ActiveX UserConnection 设计器创建远程数据对象(Remote Data Objects)(RDO)。现在,我们可以在设计时使用数据环境设计器创建ADO对象。数据环境设计器除了支持UserConnection设计器的所有功能外,还支持:1) Connection、Command 和Multiple Connection(多连接,即在一个数据环境中访问多个数据源)对象;2) OLE DB数据源和 ODBC 数据源。3) 拖放功能,即从数据环境设计器中拖动字段和表到一个窗体或数据报表 ActiveX(Data Report ActiveX)设计器中,在窗体中自动地创建数据绑定控件。4)执行包含在数据环境中、作为编程的运行时方法的command。5)对绑定到窗体中控件的数据环境进行编程访问。6)关联 Command 对象创建一个关系层次结构的能力,或对 Command 对象分组创建一个分组层次结构的能力,以及创建合计的能力和手工绑定数据识别控件到一个 Command 对象中的 Field 对象的能力。7)数据环境扩展性对象模型,该模型允许您创建外接程序。这些外接程序可以通过编程操作 Visual Basic 工程中的任何 DataEnvironment 对象。(二) Visual Basic 6.0 控件用VB 6.0开发数据库应用,重点是和各种数据库组件打交道,当然也要使用其它的一些组件,现在就我在系统设计中所使用的重要组件给与简单介绍。1. ADO数据访问组件ADO数据对象(Active Data Objects)实际是一种提供访问各种数据类型的链接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口中,可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。ADO使您的客户端应用程序能够通过OLE DB提供访问和操作在数据库服务器中的数据。ADO支持用于建立C/S和Web的应用程序的主要功能。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO同时具有远程数据服务(RDS)功能,通过RDS可以在一次往返过程中实现将数据从服务器移动到客户端应用程序和Web页、在客户端对数据进行处然后将更新结果返回服务器的操作。利用ADO数据访问组件,可以只使用ADO结构与数据库取得联系并对其中的数据进行操作,而在这些过程中完全不需要使用BDE。大多数的ADO连接和数据集组件都是与基于BDE的连接和数据集组件相类似的。TADOConnection组件与基于BDE的应用程序中的Tdatabase组件类似。TADOTable与Ttable,TADOQuery与Tquery,以及TADOStoreProc和TstoredProc之间都具有这种类似的对应关系。使用这些ADO组件的方式与我们常使用的数据访问组件(基于BDE)都有许多相同之处。TTADODataSet没有直接的BDE对应组件,但它提供了许多与Ttable和Tquery相同的功能。同样,TADOCommand也没有相对应的BDE组件,它是在Delphi/ADO环境中完成特定功能的组件。VB 6.0通过ADO数据集访问组件,可以不借助BDE数据引擎而是通过微软的OLEDB来访问更为广泛的数据库中的数据。ADO数据集访问组件与常用的数据访问组件是并列的关系3。2. 数据绑定控件数据控件本身没有提供数据显示的功能,因此在VB中专门提供了一些实现数据控件同具有数据感知的部分控件相连接的控件,这些控件用来显示数据库记录集中的数据,称这些控件为数据绑定控件。数据控件能够方便的通过属性与数据源连接,而数据绑定控件也是通过属性“绑定”到数据控件上,实现与数据库的连接,用于数据的显示、编辑和查询等数据处理。常用的数据绑定控件有文本框(textbox)、组合框(combobox)等标准控件以及数据列表(datalist)、数据网络(datagrid)等ActiveX控件.四、 仓储药房管理系统的分析与设计仓储药房在日常的经营过程中,会涉及到大量的信息处理,如药品信息、库存信息、客户购买信息、采购计划等,使用一套符合仓储药房营运特点的管理系统来处理这些信息,不仅可以节约大量人力物力,而且可以提高管理和服务质量。(一) 需求分析通过与用户进行全面、深入的交流,了解了用户对整个系统期望具有的功能,并分析用户行业营运特点,得出本仓库管理系统主要具有以下功能:系统用户管理:仓储药房的使用人员涉及前台销售员、收银员、取药员、采购员以及系统高级管理员,系统用户管理完成对各类使用人员系统使用帐号的添加、修改、删除、查询。 药品信息管理:管理药品的基本信息,包括添加、修改、删除和查询。 库存信息管理:管理药品的入库,库存量修改与查询,制定库存报表。 前台销售管理:管理客户购物车的创建、添加、修改和查询,已经根据用户要求查询指定药品信息。 购买结算管理:根据客户购物车结算购药费用,并可对购物车进行修改。 取药管理:客户结算之后,取药人员根据客户购物车从库房为用户取药,并完成购物车的注销操作。 制定采购计划:采购人员根据药品库存量和药品销售情况制定采购计划。 销售报表管理:根据每月药品的销售情况擦产生药品销售报表,药房高级管理人员可以根据报表调整销售策略。(二) 总体设计 根据对系统功能分析和仓储药房的管理特点,经过模块化的分析得到如图4-1所示的仓储药房管理系统的功能模块结构图。系统用户添加 系统用户删除 系统用户管理 仓 储 药 房 管 理 系 统客户购物车创建修改用户口令 库存信息管理药品信息添加药品信息编辑药品信息查询药品信息管理药 品 入 库制定库存报表库存信息修改查询用户口令前台销售管理购物车项目编辑库存信息管理购物车项目查询 客户购物车编辑 药品结算与收费 购买结算管理制定销售报表制定采购计划客户购物车注销 客户取药管理药房高级管理 图 4-1 仓储药房系统功能模块结构图(三) 系统具体功能实现在实现各个功能模块时,采用先模块后系统集成的方式,即各个系统功能模块分别独立设计和调试,在创建系统住窗体时才将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计和调试。在访问数据库时采用了VB 6.0 新增的数据环境设计器来实现。在实现各个独立功能模块之前,首先在数据环境设计器中创建访问数据库需要的命令对象。在数据环境设计器中创建的命令对象可在各个功能模块中被直接使用,例如,StockData 为创建的一个数据环境命令对象,该对象返回的记录集名称则为rsStockData,该记录做为数据环境对象的一个属性在窗体的各个模块中直接使用。采用数据环境设计器,可以大大减少代码的编写,从而提高系统开发效率。本系统共由13个窗体模块组成,分别是系统登录窗体、系统主窗体、系统用户管理窗体、修改口令窗体、药品基本信息管理窗体、库存管理窗体、药品入库窗体、创建购物车窗体、显示库存数据窗体、药品销售窗体、购药结算窗体、取药管理窗体以及制订采购计划窗体,下面选取了部分功能比较复杂的窗体进行介绍(1) 系统登录窗体如图4-2所示,功能:在启动药房管理系统之前,显示登录对话框,要求操作员输入编号和登录口令,只有经过系统管理员授权的操作员才能够使用该系统。图 4-2 系统登录窗体实现“登录身份验证”代码如下:Private Sub cmdOk_Click() 静态常量intLogTimes用于保存用户请求验证的次数 Static intLogTimes As Integer intLogTimes = intLogTimes + 1 保存登录次数 If intLogTimes MaxLogTimes Then 超过允许的登录次数,显示提示信息 MsgBox 你已经超过允许的登录验证次数! & vbCr _ & 应用程序将结束!, vbCritical, 登录验证 End 结束应用程序 Else Drug_Store.rsSysUsers.Open 打开纪录集 With Drug_Store.rsSysUsers 检验用户名和口令的合法性 If .RecordCount 0 Then .MoveFirst .Find 编号= & Trim(txtLog(0) & If .EOF Then MsgBox 编号: & Trim(txtLog(0) _ & 不是系统用户编号,请修改编号重试!, vbCritical, 登录验证 txtLog(0).SetFocus txtLog(0).SelStart = 0 txtLog(0).SelLength = Len(txtLog(0) ElseIf .Fields(口令) Trim(txtLog(1) Then MsgBox 口令错误,请重新输入口令!, vbCritical, 登录验证 txtLog(1).SetFocus txtLog(1) = Else CurrentUserNumber = .Fields(编号) CurrentUserPassword = .Fields(口令) CurrentUserStatus = .Fields(权限) MsgBox 欢迎使用仓储药房管理系统!, vbInformation, 登录成功 Unload Me SystemMain.Show End If End If End With Drug_Store.rsSysUsers.Close 关闭纪录集 End IfEnd Sub(2) 系统用户管理窗体如图4-3所示,功能:系统用户管理包括用户数据(包括编号、口令和权限)的添加、修改和查询等操作,系统管理员可管理系统中所有用户数据,而其他用户则只能修改自己的口令 图 4-3 系统用户窗体(3) 药品基本信息管理窗体如图4-4所示,功能:该窗体完成药品信息记录的添加、修改、删除等操作。 图 4-4 药品基本信息管理窗体实现“记录导航功能”代码如下:Private Sub cmdMove_Click(Index As Integer) With Drug_Store.rsSysUsers Select Case Index Case 0 使第一个记录成为当前记录 If .RecordCount 0 And Not .BOF Then .MoveFirst Case 1 使上一个记录成为当前记录 If .RecordCount 0 And Not .BOF Then .MovePrevious If .BOF Then .MoveFirst End If Case 2 使下一个记录成为当前记录 If .RecordCount 0 And Not .EOF Then .MoveNext If .EOF Then .MoveLast End If Case 3 使最后一个记录成为当前记录 If .RecordCount 0 And Not .EOF Then .MoveLast End Select If .BOF And .EOF Then txtNews = 记录:无 Else txtNews = 记录: & .AbsolutePosition & / & .RecordCount End If End WithEnd Sub(4) 库存管理窗体如图4-5所示,功能:库存数据包括药品编号、库存量和库存下限,在库存管理窗体中为了直观,还同时显示药品名称,所以库存数据管理需要访问“药品信息”和“库存数据”数据表获得药品名称、药品编号、库存量和库存下限。库存数据管理具体可分为库存数据查看、修改或删除以及药品入库,在显示库存信息时,药品名称和编号不允许修改,只能修改库存量和库存下限,而在药品入库时,则需显示药品名称或编号和库存量。单击记录导航条中的向前向后按钮可分别移动到第一条、前一条、后一条和最后一条记录,实现了记录导航功能。在窗体的底部,使用了一个数据网格来显示当前所有库存药品数据,选中或取消复选框,可显示或隐藏当前全部库存数据的数据网格。在入库状态下实现保存功能时,如果当前库存数据中没有指定编号的库存记录,则向库存数据表中添加一条新记录,如果有指定药品编号的库存记录,则使用输入的库存量加上原来的库存作为新的库存量。如果当前不是入库状态,则直接修改当前框中记录即可。实现“数据网格的显示与隐藏”:Private Sub Check1_Click() If Check1.Value = 0 Then dgShowAll.Visible = False Else dgShowAll.Visible = True dgShowAll.Width = Me.ScaleWidth - dgShowAll.Left - 300 dgShowAll.Height = Me.ScaleHeight - dgShowAll.Top - 200 End IfEnd Sub 图4-5 库存管理窗体(5) 创建购物车窗体及药品销售窗体分别如图4-64-7所示,功能:每进入一个客户,创建购物车窗体就为其创建一个保存购药信息的数据表,该表保存客户所购药品的编号和数量,在创建购物车的同时,在“购物车”记录数据表中加入购物车的记录,包括购物车编号、客户名、日期和结算等信息。购物车的编号和客户名称可唯一标识该购物车,编号采用自动生成方式,以字母T打头,加日期的六位数字和五位标识号组成,如T05042400001。在窗体加载时,需自动产生一个购物车编号,此时系统会检查“购物车记录”数据表中是否有记录,如果有则用最大的编号加1得到新的购物车编号,否则,用标号00001以及6位数字组成购物车编号。客户购药管理(即销售管理)包括打开和关闭购物车、向购物车添加项目以及购物车项目的修改或删除操作,在实现管理时需要使用到“药品信息”、“购物车记录”以及购物车数据表。当用户从购物车编号列表中选择购物车时,对应的客户姓名可自动显示在“客户姓名”文本框中,而且当用户在“编号”文本框中输入药品编号时,在药品列表中可自动显示出与之匹配的药品信息,这就实现了药品筛选功能。本窗体还实现了自动填写药品编号功能,即在药品列表中单击时,对应药品的编号自动填写到“编号”文本框中。 图4-6 创建购物车窗体 图 4-7 药品销售窗体实现“购物车创建操作”代码:Private Sub cmdOk_Click() On Error GoTo DoError Dim strSQL As String, objCom As Command If Trim(txtUser) = Then MsgBox 请输入客户姓名!, vbCritical, 创建购物车 txtUser = txtUser.SetFocus Else With Drug_Store.rsShoppingCars .AddNew .Fields(编号) = txtNumber .Fields(客户名) = txtUser .Fields(日期) = Date & & Format(Time, hh:nn) .Update strSQL = Create Table & txtNumber _ & ( 编号 nchar(6) primary key, 数量 Smallmoney not null) Set objCom = New Command Set objCom.ActiveConnection = Drug_Store.DataCon objCom.CommandText = strSQL objCom.CommandType = adCmdText objCom.Execute MsgBox txtUser & 购物车创建成功!编号: & txtNumber, _ vbInformation, 创建购物车 Set objCom = Nothing End With End If Exit SubDoError: MsgBox Err.DescriptionEnd SubPrivate Sub cmdRefresh_Click() Dim strNum As String With Drug_Store.rsShoppingCars If .State = adStateClosed Then .Open If .RecordCount 1 Then strNum = Format(Date, yymmdd) & 00001 Else .MoveLast strNum = Right(.Fields(编号), 5) strNum = Format(Val(strNum) + 1, 00000) strNum = Format(Date, yymmdd) & strNum End If End With txtNumber = T & strNum txtUser = txtUser.SetFocus(6)系统主窗体如图4-8所示,系统主窗体一般通过菜单系统或者是命令按钮将系统的各个功能模块集成到一起,本系统中使用菜单系统来集成系统各个功能模块。主窗体启动后,根据访问用户的权限隐藏该用户无权使用的系统功能菜单,从而实现按用户权限启用系统功能。系统用户被分为系统管理员、销售员、收银员、取药员和采购员,其权限代码分别为0、1、2、3、4。系统管理员可以使用系统所有功能,取药员可以使用口令修改和取药管理功能,采购员可使用口令修改和制订采购计划功能。在执行主窗体退出操作时,会首先请用户确认,然后检查是否有未关闭的子窗体,在关闭所有子窗体之后才允许关闭系统主窗体。 图 4-8 系统主窗体(四) 数据库设计本系统使用SQL Server 2000作为数据库管理系统,系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块,而数据库设计则是分析和创建保存管理系统数据的数据库结构设计,两者对整个系统的开发具有同等重要的关键作用5。数据库的设计步骤:第一步,绘制系统流图。系统数据流图根据用户日常工作流程,绘制出系统的各个操作节点,对每一个操作节点,绘制出该操作相关联的数据。然后根据数据流图分析总结出系统数据字典,即总结出系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消化性溃疡的社区护理
- 护理职业形象塑造
- 机绣工班组安全考核试卷含答案
- 稀土注液收液工操作规程水平考核试卷含答案
- 绝缘子制造工岗前技术管理考核试卷含答案
- 乳制品充灌工操作测试考核试卷含答案
- 信息通信网络终端维修员安全文明能力考核试卷含答案
- 音像制品和电子出版物复制员操作水平考核试卷含答案
- 空调器零部件制作工达标强化考核试卷含答案
- 联碱洗盐工岗前安全综合考核试卷含答案
- 珠海市2025广东横琴粤澳深度合作区执行委员会招26人笔试历年参考题库典型考点附带答案详解
- 2026左炔诺孕酮宫内缓释系统临床应用的中国专家共识
- 施工现场防物体打击专项施工方案
- 2026年初级社会工作者《社会工作综合能力》通关模拟卷及参考答案详解(突破训练)
- 小学语文综合性学习课题设计
- 武术协会财会制度
- 中国CSCO肝癌诊疗指南2025
- 货运运输生产值班制度
- 政务中心消防安全培训课件
- 多肽合成培训
- 2026年湖南单招文化素质考试模拟题含答案语数英合卷
评论
0/150
提交评论