毕业设计论文Delphi医药管理系统设计.doc
毕业设计任务书设计课题 医药管理系统 学 校 年 级 专 业 计算机应用技术姓 名 学 号 指导教师 2011-10-19完成目录第一章 引言1.1 总体概述1.2 开发背景1.3 开发环境第二章 药店管理的调查与分析2.1可行性分析2.2初步调查2.3系统分析第三章 数据库设计3.1数据库概述3.2实体关系图(E-R图)3.3数据表设计3.4数据表之间的关系3.5 MS Access 2000数据库管理系统第四章 功能模块设计4.1 主功能4.2 子模块设计第五章 程序设计5.1 Delphi的特点5.2 程序设计第六章 测试与安装6.1程序的调试6.2 程序测试第七章 结束语参考文献致 谢附 录附.1 程序自动连接数据库代码附.2 实现导出Excel表格代码摘 要医院药品管理系统是典型的管理信息系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。前者要求建立起数据一致性和完整性强、数据安全性好的数据库。后者要求应用程序功能完备,易使用等特点。通过对医院的药品管理的实际调查,明确其完整的业务流程,以进行系统分析、系统设计、系统实施。在分析医院药品管理的具体情况之后,鉴于用户需求,以及数据量的大小,文件的安全等原因,决定采用Microsoft Access 2000数据库系统作为药店管理系统的后台数据库。由于Borland公司的Delphi 5.0工具,面向对象可视化编程的特点,有利于系统的开发,所以决定用其作为主要开发工具。本文详细说明了一个医院药品管理的业务流程,分析了其数据流程,明确了数据表之间的联系,详细说明了主要的程序逻辑。并以图表的方式直观的说明,使读者易于理解。关键词:管理信息系统, Delphi, Microsoft Access,面向对象, 可视化编程第一章 引言1.1 总体概述当今世界是信息高速发展的世界,也是竞争异常激烈的世界。要想在高科技迅猛发展的今天,在激烈的竞争中求得生存和发展,能否获得必须的信息就成为能否成功的关键。现如今计算机行业正蓬勃向前发展,信息化深入到社会的各行各业,使企业管理发生了前所未有的变化,与此同时,计算机管理信息系统又是获得信息的重要手段之一。计算机管理信息系统的优势在于能够迅速、准确地反映出用户的需要,及时方便的进行各种检索。医院的药品管理由于涉及到人民的生命安全,由国家严格控制,是一门特殊的行业。供应上要有合法的可经营凭证,药品的出售更要对消费者负责。药品的有效期限等问题必须要严格控制。药品销售记录,库存记录是医院药品管理的基础。要建立现代化的医院药品管理系统,计算机是建设的基础。1.2 开发背景以前,医院药品管理的所有相关操作的程序都是由手工来完成的,利用这种方式当医院需要管理的药品数据量也很少时,用人工方式处理或许还可以接受,但随着现在医疗体系的不断改善,药品种类的不断增加,以往的那种靠手工记录各类信息,单据等的办法已远远不能满足医院药品管理的要求。计算机应用于进货管理、库存管理、报警管理、盘点管理、用户管理。不仅可以是经营者以最少的劳动和最短的时间取得足够的、可靠的、准确的信息。而且可以使他们从简单的数据统计、收集、汇总等重复繁琐的事物工作中解脱出来。药品的过期问题也得以更加及时准确的处理。所以开发一个医院药品管理系统的软件是非常必要的。1.3 开发环境该医院药品管理系统是在锦州市经济开发区医院的要求下开发的,医院原有的药品管理系统太过庞杂。作为一个经济开发区内的社区医院,原本应用的是一套是用于国家3级甲等医院使用的整体管理软件,医院员工在操作过程中经常遇到各种必须添加却没有相关信息的内容。所以经医院领导研究决定,开发一套适用于该医院现有设备水平和对药品管理系统需求的软件。第二章 药店管理的调查与分析2.1可行性分析计算机应用于管理是由历史的,经过了多年的经验积累总结,实践证明计算机应用于管理起作用是巨大的,不仅可以使各类工作人员以较少的劳动和最短的时间取得足够的、可靠的、准确的信息,而且可以使他们从简单的、繁琐的数据的收集,汇总、统计中解脱出来。2.1.1运行环境本系统采用单机用户操作方式,系统运行环境包括硬件,操作系统,关系数据库管理系统等软件。(1)硬件需求:CPU:PentiumII 300以上。硬盘空间:20MB。内 存:64 MB。显 示 器:15''以上彩显 。(2)操作系统:Windows 98,Windows 2000等。 (3)关系数据库:Access。2.1.2 技术可行性分析(1)Windows 98和Windows 2000 Windows 98是Windows 95的增强的升级版本。Windows 95是通向32位桌面操作系统的最容易的途径,在此基础上进一步创新的Windows 98将使电脑更易于操作,更可靠,更快捷,并且与Internet紧密结合。它定义了许多新颖优异的网络性能,例如支持功能强大的新硬件技术和娱乐平台等,同时对老的基于Windows的应用程序和技术保持最良好的支持。对于公司来说,Windows 98将提供新的易管理特征,帮助降低成本费用。Windows 2000集中体现在可靠性、易管理性、安全性、网络性,以及性能上是当今功能最强大的32位桌面操作系统。它有类似于Windows 95和Windows 98的图形用户界面更方便使用,而多线程,多任务结构的设计使运行基于32位Windows 应用程序比其它操作系统更可靠、更安全,同时还支持基于MS-DOS和基于16位Windows的应用的多重引导。(2)数据库的概念与用途 数据库的概念什么是数据库呢?当人们从不同的角度来描述这一概念时就有不同的定义当然是描述性的。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合(该定义侧重于数据的组织)。更有甚者称数据库是一个数据仓库。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是按照数据结构来组织、存储和管理数据的仓库。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。例如:企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在一张表中,这张表就可以看成是一个数据库。有了这个数据仓库我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种数据库,使其可以利用计算机实现财务、仓库、生产的自动化管理。 数据库的优点 使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。特别是近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强。数据库在我国正得到愈来愈广泛的应用,必将成为经济管理的有力工具。 数据库结构与数据库种类数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。由关系数据结构组成的数据库系统被称为关系数据库系统。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分类、合并、连接或选取等运算来实现数据的管理。Microsoft Access就是这类数据库管理系统的典型代表。对于一个实际的应用问题(如人事管理问题),有时需要多个关系才能实现。用Microsoft Access建立起来的一个关系称为一个数据库(或称数据库文件),而把对应多个关系建立起来的多个数据库称为数据库系统。Microsoft Access的另一个重要功能是通过建立命令文件来实现对数据库的使用和管理,对于一个数据库系统相应的命令序列文件,称为该数据库的应用系统。因此,可以概括地说,一个关系称为一个数据库,若干个数据库可以构成一个数据库系统。数据库系统可以派生出各种不同类型的辅助文件和建立它的应用系统。(3)Delphi的优点Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。 Delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。 Object Pascal语言是在Pascal语言的基础上发展起来的,简单易学。Delphi提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,如DesktopDataBase Expert等。除此之外,还允许用户挂接其它的应用程序开发工具,如Borland公司的资源编辑器(Resourse Workshop)。 在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。2.2初步调查医院的药品管理是医院整体管理的一个重要组成部分。由于药品的特殊性,关系到人民生命安全,在药品管理的统计上不能出现任何差错。而药品的种类繁多,进货时间和有效期间各不相同,药品的盘点和过期预警是医院药品管理必不可少的组成部分。它的特点主要是信息集中,内容变化小,处理量比较大,时间性强等。 2.2.1医院概况锦州市经济开发区医院,是附属于锦州市经济开发区的小型门诊医院。规模较小,病人数量不大,成立至今只有4年。原本采用手工方式记录药品管理信息,初期药品种类较少,可以应付。随着开发区规模的扩大,医院的病人数量增加,对药品的需求也随之增加。加上医院成立之出进货的部分药品快要达到有效期限,传统的手工的管理模式越来越不能适应对药品管理的需求。医院迫切需要一个简单、易操作的药品管理系统。在此系统开发应用之前,医院应用了一家3级甲等医院使用的医院整体管理系统。医生在微机上开出药方,将药品信息直接传送到药房,并且对病人的信息进行记录。由于开发区的经费有限,无力为每一位门诊医生都配备一台电脑和建立一套完整的网络解决方案。所以现行的系统几乎处于瘫痪状态,药品管理仍旧采用手工操作模式。在锦州市经济开发区医院院长的大力支持和倡导之下,进行了医院的药品管理软件的开发。2.2.2用户需求通过调研,了解医院药品管理的业务流程,并向用户咨询和讨论,得出用户需求如下:(1)药品供货单位信息的记录、查询、统计。(2)库存药品信息的记录、查询、统计。(3)药品盘点、药品报警系统可以查询失效和库存出现异常的药品。(4)用户界面友好,操作灵活、简便,运行速度快;2.3系统分析药品管理其主要业务见业务流程图(图2.1)。由药房主任根据药品的库存情况,计划产生进货单给供应商。检验供应商的合法经营凭证。购买药品,验收进行质量审核,检查包装,标签,说明书。合格入库。药品的贮存需要用特定的设施和设备进行分类养护。入库时要根据不同的药品类型记录药品的详细信息。医生开出处方给病人,病人凭借处方取药房领取药品。其库存记录,出库记录。汇总产生的库存报表,出库报表交与药房主任以便计划和进货。2.3.1旧系统的缺陷传统方式下,经营者以电话方式质询药品信息,手工统计汇总日报表等统计报表,其主要缺点如下:(1)信息记录工作量大手工记录并统计汇总,不仅工作量大,而且速度较慢,无法高效工作。(2)信息误差大手工记录由于工作量大,难免出现错记、遗漏,已记录的数据在统计汇总中,也难免发生错误。这些都难以满足现代化管理中用数字说话。无法实现科学化管理、现代化管理的要求。(3)计划性差在传统的管理方式下,因为种类多、数量多无法准确的了解已经缺少的药品信息,造成供求关系的脱节,而无有效的组织计划,而计算机可以提供准确的库存信息,实现计划进货。(4)无过期预警机制药品的有效期限得不到及时有效的监控。在药品的数量、种类很大以后,很可能因为人工的误操作导致过期药品仍旧留在库存中。2.3.2新系统的设计目标(1)使经营者及时准确的获得药品信息,减少数据的重复、冗余。(2)使经营者有准确的库存信息,进行计划进货,合理经营。(3)提供友好的用户操作界面,尽量减少用户的录入工作量。提高信息处理速度和准确性。快速查询,自动预警,盘点管理,使计算准确性达到100%。(4)通过用户管理和数据备份等方法,确保系统信息的安全性和可靠性。图2.1 业务流程图第三章 数据库设计3.1数据库概述数据库就是一个关于某一特定主题或目标的信息集合。它把大量数据按照一定结构进行存储,集中管理和统一使用这些数据,实现数据共享。数据库技术在数据管理和数据使用等方面具有“数据存储结构化”,“数据冗余小”,“数据资源共享”,“程序与数据独立性高”,“数据操作语言高级”,“易学易用”等优点。一个或多个数据表集合就形成了一个数据库。进行数据库的设计的首要任务是考虑信息需求,也就是数据库要存入的数据。创建数据库并非仅仅为了存储数据,更主要目的是从中提取有用信息。因此,还需要考虑数据的存储方式,目的,用途及性能要求。3.2实体关系图(E-R图)实体关系图也叫E-R图,是用图形的方法介绍各个外部实体,及其之间关系。医院药品管理的实体关系图(图3.1)。其中有4个外部实体,分别是供应商、药品、库存和设备。外部实体供应商有5种属性:名称、代码、地址、电话、联系人。外部实体药品有4种属性:品名、厂家、价格、生产批号。供应商与药品之间存在供应与被供应的关系,关系供应有种类和数量两种属性。药品与库存之间存在存放与被存放的关系,关系存放有种类和数量两种属性。药品与设备之间存在养护与被养护的关系,关系养护有种类和数量两种属性。设备与库存之间存在放置与被放置的关系,关系放置有种类和数量两种属性。图3.1 实体关系图3.3数据表设计3.3.1供货单位表供货单位表(表3.1),表名:供货单位表,数据库记录供货单位基本信息的表。供货单位名:供货单位的名称。供货单位编码:供货单位在系统中代号为编码。供货单位地址: 供货单位的地址。供货单位电话:供货单位的电话。供货单位联系人:供货单位的联系人姓名。供货单位备注:供货单位的备注信息。表3.1字段名类型长度备注供货单位名称文本30供货单位编码文本15索引供货单位地址文本30供货单位电话文本20供货单位联系人文本12供货单位备注备注603.3.2药品库存表药品库存表(表3.2),表名: 药品库存表,数据库记录药品库存基本信息的表。 入库编号:药品入库的编号。 库存数量:药品在仓库中的数量。表3.2字段名类型长度备注供货单位名称数字30供货单位编码数字15索引3.3.3药品信息表药品信息表(表3.3),表名: 药品信息表,数据库记录药品信息的表。药品名称:药品的名称。药品代码:药品在系统中代号为药品代码。剂型名称:药品的剂型名称。分类名称:药品的种类名称。规格:药品包装的规格。 进货计量单位:药品的进货计量单位。批发计量单位:药品的批发计量单位。零售计量单位:药品的零售计量单位。库存下限:一种药品的库存下限。库存上限:一种药品的库存上限。表3.3 字段名类型长度备注药品名称文本20药品代码文本10索引剂型名称文本20分类名称文本20零售计量单位文本10进货计量单位文本10批发计量单位文本10库存下限数字10库存上限数字103.3.4药品入库表药品入库表(表3.4),表名: 药品入库表,数据库记录药品入库信息的表。入库编号:药品入库自动生成的编号。药品代码:药品在系统中代号为药品代码。药品规格:药品的封装规格。药品批号:药品的生产批号。药品产地:药品的产地。入库数量:入库药品数量。进货价:药品的进货价格。零售价:药品的零售价格。批发价:药品的批发价格。入库日期:药品的入库日期。失效日期:药品的失效日期,用来预警药品过期。供货单位编码:供货单位在系统中代号为编码。经手人:药品入库的经手人。表3.4 字段名类型长度备注入库编号自动编号20药品代码文本10索引药品规格文本10药品批号文本15药品产地文本30入库数量数字10进货价货币10零售价货币10批发价货币10入库日期日期/时间20失效日期日期/时间20供货单位编码文本10经手人文本203.3.5药品出库表药品出库表(表3.5),表名: 药品出库表,数据库记录药品出库信息的表。出库编号:药品出库时的编号。出库数量:出库药品数量。出库单价:单个药品的出库价格。出库计量单位:出库时药品的计量单位。出库金额:出库时药品的总价格。出库日期:药品的出库日期。出库利润:出库时药品的总利润。经手人:药品出库的经手人。表3.5 字段名类型长度备注出库编号自动编号20索引出库数量文本10出库单价货币10出库计量单位文本15出库金额货币10出库日期日期/时间20出库利润货币10经手人文本203.3.6药品分类表药品分类表(表3.6),表名: 药品分类表,数据库记录药品分类信息的表。分类代码:药品分类在系统中代号为分类代码。分类名称:药品分类的名称。表3.6 字段名类型长度备注分类代码文本10索引分类代码文本103.3.7药品剂型表药品剂型表(表3.7),表名: 药品剂型表,数据库记录药品剂型信息的表。剂型代码:药品剂型在系统中代号为剂型代码。剂型名称:药品剂型的名称。表3.7字段名类型长度备注剂型代码文本10索引剂型代码文本103.4数据表之间的关系 Microsoft Access 提供了数据库中的数据表通过外键连接约束,和主键约束,检验值约束,默认值约束,计算列约束来提供数据安全性检验,保护数据。主键约束就是在关系中,主键值不允许为空,也不允许出现重复,即关系要满足实体完整性规则。外键约束就是一种在关系之间的依赖关系,即关系要满足实体的参照完整性规则。本系统外键连接约束和主键约束图(图3.2)。图3.2外键连接约束和主键约束图3.5 MS Access 2000数据库管理系统MS Access 2000是一项全面完整的数据库与分析产品。从借助浏览器实现的数据库查询功能到内容丰富的扩展标记语言(XML)支持特性均可有力地证明,MS Access 2000无谓为全面支持Web功能的数据库解决方案。与此同时,MS Access 2000还在可伸缩性与可靠性方面保持着多项基准测试纪录,而这两方面特性又都是企业数据库系统在激烈市场竞争中克敌致胜的关键所在。无论以应用程序开发速度还是以事务处理运行速度来衡量,MS Access 2000都堪称最为快捷的数据库系统,而这恰恰是该产品成为灵活企业首选解决方案的原因所在。 3.5.1 安全性借助基于角色的安全特性和网络加密功能确保您的应用程序能够在任何网络环境下均处于安全状态。针对敏感而脆弱的基于Web电子商务应用, MS Access 2000推出了重要的新安全增强,这些增强不但提供了业界最高等级的安全性,而且简化了达到这一安全等级的操作。首先,MS Access 2000的安装完全利用了Windows 2000的集成安全性,因而具有更高等级的默认安全性。这使得在生产环境中锁定服务器的操作更为简单和快捷。MS Access 2000还推出了一组复杂的新安全特性:强大而灵活的基于角色的服务器、数据库和应用程序配置安全性;集成的安全性审核工具可以跟踪18个不同的安全事件及其子事件;精密的文件和网络加密支持,包括SSL(安全套接字层)。MS Access 2000已经通过美国政府C2级安全性认证,具备目前业界最高等级的安全性。3.5.2 纯文本搜索可同时对结构化和非结构化数据进行使用与管理,并能够在Microsoft Office文档间执行搜索操作。 3.5.3 高度可用性借助日志传送、在线备份和故障群集实现业务应用程序可用性的最大化目标。 3.5.4 可用性通过增强的故障转移群集、日志传送和新增的备份策略,SQL SERVER 2000 达到了最大的可用性。 3.5.5 索引化视图通过存储查询结果并缩短响应时间的方式从现有硬件设备中挖掘出系统性能。3.5.6 复制特性您可借助MS Access 2000实现与异类系统间的合并、事务处理与快照复制特性。得到简化的数据库管理,自动调节与维护特性使管理人员得以集中精力从事其它关键性任务。获得提高的开发工作效率。用户定义功能、层叠式引用完整性和集成化Transact SQL调试程序可帮助您针对相关代码加以重复利用,从而实现简化开发过程的目的。 3.5.7 数据转换服务实现从不同来源析取、转换和调用数据之路由操作的自动化。 对比MS Access 2000 和其他的数据库管理系统,MS Access 2000具有可靠的安全性,最快的存储速度,高度的兼容性,最佳的性价比,因此,应用MS Access 2000作为后台数据库为系统的开发提供了强有力的支持,并对以后软件的运行提供了坚实的基础。第四章 功能模块设计所谓功能模块设计,就是说将整个系统模块化。在这里我们还要给出模块化的定义。所谓模块化,简单地说就是把系统划分为若干个模块,每个模块完成一个特定的功能,然后将这些模块汇集起来组成一个整体(即系统),用以完成指定功能的一种方法。在软件系统设计中,模块是指这样一组程序语句,它包括输入输出和逻辑处理功能、内部信息及其运行环境。采用模块化设计原理可以使整个系统设计简易,结构清晰,可读性、可维护性增强,提高系统的可行性,同时也有助于信息系统开发的组织和管理。4.1 主功能系统各个模块所要完成的主功能是:计算机应用于进货管理、库存管理、报警管理、盘点管理、用户管理。使经营者以最少的劳动和最短的时间取得足够的、可靠的、准确的信息。而且可以使他们从简单的数据统计、收集、汇总等重复繁琐的事物工作中解脱出来。药品的盘点、药品过期等问题也得以更加及时准确的处理。经营者可以赋予员工不同得权限等级来管理这一系统。4.2 子模块设计4.2.1本系统共分为10个主要功能模块:本药店管理信息系统分为五个功能模块,每个功能模块由若干子项见药店管理信息系统功能模块图(图4.1)(1)药品信息模块(2)库存管理模块(3)库存查询模块(4)药品预警模块(5)用户管理模块(6)帮助4.2.2药品信息模块(1)药品分类:按照药品的封装方式,将不同的药品类型录入数据库中,供药品目录模块调用、查询。(2)药品剂型:按照药品的剂型信息,将不同的药品剂型录入数据库中,供药品目录模块调用、查询。(3)进货单位:记录进货单位的详细资料,用户录入进货过程中进货单位的各种原始信息。(4)药品目录:在此维护药品的原始信息,可对其进行添加,删除,修改的操作。4.2.3库存管理模块(1)入库管理:入库信息的录入,由用户录入进货过程中产生的各种原始信息,并把他们保存在数据库中。可对其进行添加,删除,修改的操作。(2)出库管理:出库信息的录入,由用户录入进货过程中产生的各种原始信息,并把他们保存在数据库中。可对其进行添加,删除,修改的操作。4.2.3库存查询模块(1)入库查询:在入库过程中,产生的各种原始信息,可以在此查询。历史的入库信息,也可以在此查询。(2) 出库查询:在出库过程中,产生的各种原始信息,可以在此查询。历史的出库信息,也可以在此查询。(3)库存查询:可以在此查询库存中各种药品的原始信息。4.2.4药品预警模块(1)报警管理:药品数量在数据库中的达到库存下限、库存上限,药品的有效期达到药品的有效期限,系统会显示出这类药品。(2)药品盘点:针对库存异常、超过有效期的药品进行盘点管理。4.2.4用户管理模块权限设置按实际功能模块划分。针对不同的用户,超级用户可以设定不同的权限给其他管理者。图4.1 功能模块图第五章 程序设计5.1 Delphi的特点Delphi是非常强大灵活的应用程序开发工具,它将可视化界面与面向对象的Pascal语言结合在一起,使用Delphi可在极短时间里建立起快速、直观、强大的Windows应用程序。Delphi的特点主要包括:(1)强大的集成开发环境(IDE)。IDE在传统的集成开发工具(编辑器、编译器、调试器)基础上增加了可视化功能,以建立用户程序界面,并自动产生支持代码,同时IDE不是静态工具,可以通过使用开放工具API无限扩展。(2)面向对象。Delphi强大却简单的底层编程语言(Object Pascal)支持封装、继承、多态等面向对象特性,允许将数据和代码合并为一个类,建立新的继承类,并将派生类作为双亲类。(3)完全的编译器和链接器。Delphi可以产生真正独立的本地可执行代码,可以建立动态链接库,使用动态链接库可以扩展Delphi应用,动态链接库可以提供给其它工具所开发的程序。(4)丰富的构件库。用构件开发程序是Delphi的可视化特性,同时面向对象使Delphi的构件库增加了灵活性,可根据用户需要扩充或改变构件的功能,只需从存储的构件库中派生出一个新的构件即可重新编码。(5)支持OLE和ActiveX。OLE是一个标准,允许建立在COM(Component Object Model 构件对象模型)上的对象链接嵌入,现在OLE已发展为多种技术(OLE控制、OLE服务器、OLE容器),ActiveX是各类OLE技术的总称。Delphi对OLE以及ActiveX的支持,可使用户的应用程序进入商业软件的面向对象领域。(6)模板类型使编程更加简便。Delphi定义了4种模板类型:窗体、应用、构件和代码,窗体、应用和构件模板允许用户使用定制化的对象集合,代码模板减少了编程的重复输入。(7)强有力的异常处理机制。不象其它语言编程时需考虑错误检测和资源保护,Delphi采用“异常”的概念解决纠错问题,使错误处理更加简洁、全面。(8)强大的数据库应用开发能力。使用Delphi提供的数据库开发工具可以方便而快速地建立强大的数据库应用程序,Delphi提供的数据库工具包括:数据访问构件、数据控制构件、数据库窗体专家、数据库桌面等。(9)支持多媒体。用Delphi配备的Media Player(媒体播放机)部件可以快速建立多媒体应用。(10)支持多线程。进程进一步划分为线程,每一个线程可为同一进程创建一个或多个线程。5.2程序设计5.2.1 用户登入程序流程程序开始运行,立即进入LOGO界面,设计持续时间3秒,3秒之后退出, LOGO界面自动消失,出现用户登入界面,等待用户输入用户名和密码。此时如果用户点击取消,则立即终止程序,退出系统。如果用户单击确定按钮,则按用户所输入的用户名在系统中,查询该用户的密码,并与用户输入的密码进行比对,如果正确,则调入程序主界面frmmain窗口。如果用户输入的用户名没找到或输入的密码不正确则提示错误。等待用户重新输入。其主要程序流程,见用户登入程序流程图(图5.1)。图5.1 用户登入程序流程图5.2.2 用户管理 每个用户成功登入系统以后,都获得相应的权限。可以对某些模块进行操作,用户对模块的操作权限由超级用户设定。拥有用户管理权限的用户即是超级用户。用户权限用判断ListItem.SubItems.Strings1='允许'来实现。举例(用户管理模块) if ListItem.SubItems.Strings1='允许' / 可以进行用户管理操作then mnuUsers.Enabled:=Trueelse mnuUsers.Enabled:=False; 其主要程序流程,见用户管理流程图(图5.2)。图5.1 用户管理流程图5.2.3功能模块设计此系统中绝大部分功能模块主要由“添加”、“删除”、“更改”、“查询”等按钮的OnClick事件来进行操作。为了不产生大量重复代码,此程序中使用了“Copy快速按钮的OnClick事件编程”。方法简述如下:在已设计好的包含有TDBGrid控件(设名为DBGrid1)的窗体中,增加一个TDBEdit控件(设名为DBEdit1),其DataSources属性设为与DBGrid1的DataSources属性相同,对DBGrid1控件的OnColEnter事件编程,使DBEdit1的DataField属性值等于DBGrid1控件的被选择字段的字段名。再在窗体中增加两个快速按钮:Copy和Paste,图形可选Delphi子目录下ImagesButtons子目录里的Copy.bmp和Paste.bmp。功能模块样式见功能模块例图 5.3功能模块例图 5.3对Copy快速按钮的OnClick事件编程:DBEdit1.CopyToClipboard;对Paste快速按钮的OnClick事件编程:DBEdit1.PasteFromClipboard;DBGrid1.SelectedField.AsString:=DBEdit1.Text;(1) 添加信息程序添加信息程序,主要通过Delphi的命令按钮控件“添加”的OnClick事件实现。添加信息程序实现起来比较简单,只要把要添加的基本信息输入计算机,利用Delphi的命令按钮控件“添加”的OnClick事件逐条添加,然后利用命令按钮控件“添加”的OnClick事件使信息自动存入后台数据库中,如果输入信息中,数据库的索引字段是空的,则系统会弹出ShowMessage “索引字段不能为空,请输入正确的信息”。如果输入的信息已经添加,则系统会弹出“该键值已经存在,请另外指定一个键值”。添加信息程序流程图见图5.4图5.4添加、修改信息程序流程图更改药品信息程序,只要把药品的基本信息输入计算机,利用Delphi的命令按钮控件“更改”的OnClick事件逐条更改,使信息自动存入后台数据库中,如果输入信息中,数据库的索引字段是空的,则系统会弹出ShowMessage “索引字段不能为空,请输入正确的信息”。如果该药品信息已经添加,则系统会弹出“该键值已经存在,请另外指定一个键值”。 “添加”、“修改”功能流程图,见图5.3添加、修改信息程序流程图删除药品信息,利用Delphi的命令按钮控件“删除”的OnClick事件,将后台数据库中的无用的资料删除,然后利用命令按钮控件“保存”的OnClick事件使信息自动在后台数据库中删除掉。“删除” 功能流程图,见图5.5删除信息程序流程图图5.5删除信息程序流程图5.2.4药品预警模块设计对药品进行过期报警、盘点管理的模块。药品的过期报警主要采用对比库存盘点查询表“系统日期”和“失效日期”的方法来实现。药品预警模块流程图见图5.6,部分代码如下:procedure TfrmYpPd.btnYpPFJQueryClick(Sender: TObject);var strSQL1,strSQL2: String;begin strSQL1:='#'+CDate(dtFrom.Date)+'#' strSQL2:='#'+CDate(dtTo.Date)+'#' with qrYpPD do begin Close; SQL.Clear; SQL.Add('select *'); SQL.Add('from 库存盘点查询表'); SQL.Add('where 失效日期 >= '+strSQL1+' and 失效日期 <= '+strSQL2); SQL.Add('order by 失效日期 ASC;'); Open; end;end;药品库存报警主要采用对比库存盘点查询表的“库存数量”和“库存上限”及“库存下限”来实现。部分代码如下:procedure TfrmYpPd.btnModifyKcSLClick(Sender: TObject);var iYpdm: String;begin if ed