药店系统样例.doc_第1页
药店系统样例.doc_第2页
药店系统样例.doc_第3页
药店系统样例.doc_第4页
药店系统样例.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

药店管理信息系统设计与开发 作者 谢 敏 引 言随着计算机信息技术的飞速发展,各级各类企事业单位相继上管理信息系统,实现了办公自动化。自从“医药分家”制度的推行后,近年来药店盲目扩张,疏于管理;药店坐堂人员专业知识欠缺;药品分类管理存在误区,将处方药和非处方药混放在一起,更有甚者,为扩大销售额,不凭处方销售处方药。药品市场经营混乱,假药、劣药和过期药屡屡冲击市场,致使群众甚为不安。开发药店管理信息系统,一方面,便于药监部门通过“监、帮、促”,加大实施贯彻药品经营质量管理规范(GSP)和药品分类管理工作的力度与步伐;另一方面,有利于加强药店自身基础建设,建立现代化科学的管理模式,实现药店管理的高效率和规范化;提高工作的效益;树立牢固质量意识,保证医药市场药品的质量;提高坐堂人员的专业知识和素质,提供周到的服务,使顾客受惠,保障顾客的身体健康。开发一套既方便又成本低廉的药店管理信息系统显得及时而又必要。基于GSP的要求,本系统实现了药店对药品进、销、存进行微机化、统一化管理。本文以本人参与设计和实现药店管理信息系统为基础, 通过对药店管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今药店管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。系统分析该阶段即回答药店管理信息系统 “做什么”的问题,明确系统需求以及形成系统目标的逻辑模型。还包括绘制描述概念世界的“ER图”、“数据流程图”及“功能结构图”,下面详细的介绍一下这些内容。2.1系统需求分析通过对药店进行实地调查之后,药店管理信息系统需求体现在以下四方面:(1)系统设计必须符合药品经营质量管理规范(GSP),GSP规范是药店标准和国际化管理的准则和方向。(2)顾客的需求:确保所购药品的安全性及购药的方便性和即时性。(3)药店一般工作人员的需求:系统操作的简便性和准确性。(4)药店管理决策人员的需求:及时提供准确的决策数据。如药品的库存和销售统计数据,利润报表等。2.2系统目标与要求针对上述需求,经分析确定该系统的目标和性能要求是:系统目标:及时采集药店经营管理和相关的各种信息,科学地处理和分析这些信息,合理地调度药店的资源(资产、药品、人力、运能、储能),提高工作效率,加快资金周转,降低经营成本,科学地减少库存,减少资金占压,增加经济效益,提高顾客的满意度,增强药店市场竞争力。系统性能要求:(1)实用性好;(2)可靠性高;(3)操作便利性;(4)整体性强;(5)具有先进性;(6)适应性强;(7)灵活性较高;(8)性能/价格比高;(9)界面傻瓜式;2.3 ER图在明确2.1、2.2的基础上,对原有系统的数据进行分析,结合新系统的目标要求,绘制ER图,对现实世界进行抽象。系统的ER图如下:1支付mmmmm应收账款客户1购买m订单n出库m送货送货单入库nmm1药品库供应商m1mn出库退药退药单图2-1 E-R图在该数据库中,设计了三个实体,分别是库存、客户和供应商以及两个联系类型入库和出库。在本系统中库存是核心,没有了库存其它的也就没有什么意义了。员工记录的添加是考虑到责任问题,也就是说,在库存管理的实际运用中,出现了责任不清的现象,特别是由于仓库的进出药品数量都比较大时产生了一系列问题,所以在设计数据库时,特别考虑到这一点,加入了员工记录这一实体(在这里就不详细标出局部ER图了)。供应商信息的添加主要出于对药品来源问题的思考。通过添加供应商信息可比较清楚地了解药品的进货渠道,从药品的质量到供应商的信誉都可进行了解,同时可以为以后的药品进购提供有用的信息。2.4系统功能要求根据系统需求、目标以及性能要求,分析得出系统在功能上有如下要求:药品销售的功能包括:药品零售,药品批发销售浏览;存货管理的功能包括:药品入库,药品退药,药品报损,库存限量,库存盘点、存货浏览;药品管理的功能包括:药品浏览,新增药品,药品修改,药品调价;数据统计的功能包括:销售统计,库存统计代码维护的功能包括:员工管理,部门管理,往来单位,更换密码,用户管理,备份数据还原数据;系统的功能结构图如下:药品零售处方药销售药品销售浏览处方药销售浏览药品入库药品退药药品报损库存限量库存盘点存货浏览药品零售统计处方药销售统计库存统计单据查询药品浏览新增药品药品修改药品调价员工管理部门管理往来单位更换密码用户管理备份数据系统帮助关于程序更换用户退出程序药品销售存货管理数据统计药品管理GSP管理代码维护帮助退出药店管理信息系统图2-2 系统功能结构图2.5数据流程分析在系统中采用数据流图(DFD)这种半形式化的描述方式表达实体与功能模块之间的关系。它是一种功能模型,以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能。经过对系统的分析得到以下数据流程图:审核请求 订单记录送货单库存统计药品批发药品入库供应商客户订购单订购单退药单 库存数据库存数据库存数据审核 库存数据药店销售统计药品零售 销售记录 库存记录图2-3 数据流程图3.系统设计在系统分析的基础上,此阶段的任务就是要把 “做什么”(what)的逻辑模型变换为“怎么做”(how)的物理模型,即确定系统物理实施方案,包括总体设计和详细设计两部分。这是系统实现的关键环节。3.1系统总体设计总体设计是全局性的设计,它包括数据库设计和各功能处理模块设计。3.1.1数据库设计目前,由于大型关系数据库产品不仅提供了丰富的功能,支持标准的语言,而且还具有保证数据库完整性、安全性和完成并发控制等功能,因而越来越成为数据库产品中的宠儿。基于此,在开发药店管理信息系统时我们选择关系数据库产品SQLServer数据库。药店管理系统管理药品的进、销、存、退货,以及各项信息的统计。因此,设计总店数据库时,所有对库存产生影响的变动如购进、销售、报损、报溢等都必须有相应的数据表与之对应。鉴于此,数据库应包含以下信息表:(1) 药品信息表:包括ID、药品编号、名称、简码、条码、规格、生产厂家、批准文号、最高限量、最低限量、批发价、零售价、主治、剂型、分类等字段。(2) 库存信息表:包括库存编号、药品编号、数量、购进单价、购进金额、盘店数量等字段。(3) 入库表:包括库存编号、药品编号、入库时间、操作人等字段。(4) 出库表:包括库存编号、药品编号、出库时间、操作人等字段。(5) 员工信息表:包括员工ID、姓名、员工编号、职务、年龄、雇佣日期、性别、学历、住址、身份证号、联系方式、简码、所属部门等。(6) 供应商信息表:包括供应商ID、简码、名称、法人、电话、地址、联系人等字段。通过对上述六张数据表的操作可以较好地完成系统设计的各项功能。数据库结构表如下:表3-1 药品信息表:(ypzdk)字段名数据类型长度IDNumeric9名称Varchar50编号Char16条码Varchar15简码Varchar10单位Varchar4规格Varchar20生产厂家Varchar50批准文号Varchar30最高限量Int4最低限量Int4批发价Decimal9零售价Decimal9主治Text16剂型Varchar10分类varchar10表3-2 员工表:(ygb)字段名数据类型长度YgidNumeric9姓名Varchar10员工编号Char3职务Varchar10年龄Smallint2雇佣日期Datetime8性别Char2学历Varchar10住址Varchar100身份证号Char18联系方式Varchar100简码Varchar10备注Varchar100所属部门char3表3-3 登陆记录表:(oper)字段名数据类型长度登陆时间datetime8退出时间datetime8useridint4operidbight8表3-4用户表:(user1)字段名数据类型长度UseridNumeric9UsernameVarchar10PasswordVarchar10OperVarchar10ableInt4表3-5 公司表:(company)字段名数据类型长度clientidNumeric9简码Varchar10名称Varchar50法人Varchar16电话Char20地址Varchar50备注Varchar100类型Varchar10出入Tinyint1联系人varchar10表3-6 药品变动明细表:(cr)字段名数据类型长度CridNumeric9YpidNumeric9编号Char16出库单位Int4入库单位Int4数量Int4单价Decimal9金额Decimal9操作人Varchar12开票人Int4是否审核Bit1日期Datetime8成本金额Decimal9类型Varchar10出入bit1表3-7处方药变动明细表:(cfycr)字段名数据类型长度CridNumeric9YpidNumeric9编号Char16出库单位Int4入库单位Int4数量Int4单价Decimal9金额Decimal9操作人Varchar12开票人Int4是否审核Bit1日期Datetime8成本金额Decimal9类型Varchar10出入bit1医生Varchar10顾客Varchar10表3-8 部门表:(partment)字段名数据类型长度部门编号Char3部门名称Varchar50简码varchar10表3-9 库存表:(kc)字段名数据类型长度KcidNumeric9YpidNumeric9数量Int4购进单价Decimal9购进金额Decimal9盘点数量int43.1.2主要功能处理模块设计系统的总体设计中最重要的就是系统模块化设计。模块化是指“自顶向下、逐步求精” 把系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按一定方法组织起来,成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。尽量做到高内聚低耦合,提高模块的独立性,是设计高质量系统的基础。为此要主要以下三个因素:1 明确系统的功能内容。2 掌握正确的划分方法。3 遵循科学的划分原则。一、药品销售模块设计药品销售药品零售处方药销售药品信息表库存表价格表销售浏览销售表主菜单 子模块调用 数据库调用 数据库调用数据库调用图3-4 药品销售模块设计图药品销售模块设计说明书:所属子模块:药品销售系统调用子模块:药品零售模块处方药处理模块销售浏览模块调用数据库文件:药品信息表其索引文件 价格表其索引文件 库存表及其索引文件二、药品管理模块设计主菜单药品管理子模块调用药品浏览新增药品药品修改药品调价数据库调用药品信息表药品字典表图3-5 药品管理模块设计图药品管理模块设计说明书:所属子模块:药店管理系统调用子模块:药品浏览模块新增处理模块药品修改模块药品调价模块调用数据库文件:药品信息表其索引文件 药品字典表其索引文件三、存货管理模块设计主菜单存货管理子模块调用药品入库药品退药药品报损库存限量库存盘店存货浏览数据库调用库存表药品信息表入库表图3-6 存货管理模块设计图存货管理模块设计说明书:所属子模块:存货管理系统调用子模块:药品入库模块药品退货模块药品报损模块库存限量模块库存盘点模块存货浏览模块调用数据库文件:药品信息表及索引文件 入库表及索引文件 出库表及索引文件 库存表及其索引文件四、数据统计模块设计主菜单数据统计子模块调用销售统计库存统计单据查询数据库调用库存表子模块调用库存变动明细库存变动统计数据库调用库存表数据库调用库存表图3-7 数据统计模块设计图数据统计模块设计说明书:所属子模块:数据统计调用子模块:销售统计模块库存统计模块单据查询模块调用数据库文件:库存表及其索引文件。五、代码维护模块设计主菜单代码维护子模块调用员工管理部门管理往来单位更换密码用户管理备份数据数据库调用数据库调用数据库调用数据库调用数据库调用数据库调用员工表药品字典供应商表用户表用户表图3-8 代码维护模块设计图数据统计模块设计说明书:所属子模块:代码维护调用子模块:员工管理模块部门管理模块往来单位模块更换密码模块用户管理模块备份数据模块调用数据库文件:员工表及其索引文件用户表 供应商表药品字典3.2详细设计在前面的总体设计中,已将系统划分为多个模块,并将它们按照一定的原则组装起来,同时确定了每个功能及模块之间的外部接口。现在所要做的就是确定每个模块具体细节,包括编码设计、输入输出设计和界面设计。3.2.1 编码设计现在,部分的药品包装上已经有了国际通用的EAN码,用以表示不同国别、厂家的药品。由于我们开发的是单机系统,所以就采用药品的首字母进行药品简码的设计。比如,土霉素的简码就是TMS,这样的简码法可能会出现重码,于是我们将简码和药品名组合起来作为关键字来决定一条记录。3.2.2 输入输出设计 为了方便药店工作人员的操作,零售药销售单据、处方药销售单据、入库单、退药单、销售统计单、利润报表等所有的输入与输出都采用屏幕表格输入方式,输出采用屏幕显示或打印输出方式3.2.3用户界面设计界面设计包括系统启动界面、密码登录界面和多级菜单界面3步,其中多级菜单的设计是用户界面设计的主体。具有设计良好菜单的信息系统可以使用户将注意力集中在使用应用程序上而不是操作数据库上。用户界面设计的初始界面实际上就是一个多级菜单系统。菜单设计实质是对系统做一个轮廓性的设计,其设计依据主要来自于用户对系统的要求及系统所能实现的功能。对界面设计来说,将菜单设计到子系统的功能模块级。用户界面主要包括药品销售、药品管理、存货管理、数据统计、代码维护5个子系统,每个子系统依用户需求应实现录入、修改、删除等功能。另外,为了方便用户使用,系统还提供了帮助功能。系统窗体模块组成图如下:图3-9 系统窗体模块组成图各子系统的功能界面在此就不一一给出了,但要强调地是设计友好的用户界面的体会:友好的用户界面很大程度上体现在表单界面的设计上。在表单中多采用命令按钮、单选按钮组、复选框、编辑框、组合框、下拉列表框及微调控件以及与功能对应的图片等,使用户界面非常直观,操作简单、快捷,一改过去那种单纯的人机对话式的繁琐操作方法。这也使数据录入十分方便,在本系统中,除了“药品增加”表单中有几个记录要用户输入外,其他几乎无需用户输入中文及规范数字,全部使用弹出式菜单、单选按钮组、复选框、数码增减器等进行中文和数据的选择录入。这不但使录入规范化,避免了错误录入,而且还提高了工作效率。追求真正意义上的“傻瓜式”界面。4. 设计的难点和主要窗体模块的实现4.1数据模块窗体设置在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工作,而且要保证这些数据源的确是相同的也需花一番功夫。这是我们在系统实现在碰到的最大困难,那么,能不能将这些数据源集中管理,做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?所以,我们打算采用数据模块(DataModule)来解决这个问题。简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。 但我们在开发这个系统时,开始使用了一下数据模块,但在使用过程中却碰到了一些问题。并且考虑这个系统使用到的TADOCommand控件比较多,如果使用数据控件可能会带来管理上的麻烦,如弄混各个数据控件的作用。还考虑到使用动态生成ADOCommand可能会更节省资源。所以在本系统中,独立出一块专门放数据控件的FORM,方便管理各个模块的数据访问。详见以下图所示:图4-10 数据模块窗体图4.2药品浏览及药品字典维护窗体模块的实现在本模块,引入了第三方控件ehlib,fr,snc.ehlib是个数据感觉控件包,包含DBGridEh等10多个控件,其中现在图中所看到的Grid就是DBGridEh,调用了药品信息表(ypzdk)。包括添加、修改、删除、打印、退出等功能:详见图所示:图4-11 药品浏览及药品字典维护窗体图4.3新增药品窗体模块的实现这是药品管理的内容,它包括药品的修改、增加、删除等,下面列出的是新增药品窗体模块图图4-12 药品浏览及药品字典维护窗体图4.4药品入库窗体模块的实现此模块调用药品信息表(ypzdk)和库存表(KC),以简码形式在Grid中的药品简码里直接调用出ypzdk表里的药品的名称、简码、编号,以方便输入。如果选中打印入库单,进行存盘的时候,就会调用报表,而这个报表管理员可以自己进行修改,方便以后升级。药品报损窗体模块与该模块差不多,其中差别在于,药品堆积,难卖的时候,为进行促销活动,对药品进行打折让利活动的时候,对药品进行报损,修改这批药品在库存当中的价格。而库存盘点在性质上跟报损类似,只是在药品管理库存的过程中处理的手段不同。这里就不一一指出了,药品入库窗体模块图如下:图4-13 药品入库窗体图4.5药品销售窗体模块的实现药品销售是药店管理面向顾客的窗口,所以在这个模块要求更严格,代码也是最多的。在访问了很多Delphi网站后,才找到SNC控件,也就是下面图中可以看到的实付金额和找钱这两个控件。这种控件形象生动,让顾客看地清楚明白,知道自己付了多少钱,找回来多少钱。这里也相应的调用了YPZDK和CR表。在此期间如果顾客买的药是处方药,就会跳出警告窗口,并进入到处方药销售窗体模块里。详见以下图所示:图4-14 药品零售窗体图图4-15 处方药销售窗体图4.6药品销售统计窗体模块的实现针对非处方药药品零售的统计,调用CR表,按一定时间段,对药品零售进行统计,查看销售金额和利润,以方便决策人进行决策。详见以下图所示:图4-16 药品销售统计窗体图4.7库存统计窗体模块的实现库存统计是对库存的药品进行统计,可以查看库存变动明细和库存变动统计,使决策者清楚明白的知道哪些药好销售,哪些不好销售。把库存的费用和损失降到最低点。下图分别是库存统计初始图和统计结果表:图4-17库存统计初始窗体图图4-18库存统计结果窗体图4.8用户管理窗体模块的实现针对不同用户进行授权管理,销售员只能管理销售管理这一块,具有销售管理权限,其他功能模块都使用不了,如经理黄晨冰却具有除模板编辑以外的所有权限。 详见图所示:图4-19用户管理窗体图4.9备份、还原数据窗体模块的实现对系统进行数据备份和数据恢复。数据恢复可以恢复到上次原来的数据状态。下面是数据还原系列图:图4-20数据还原窗体图1图4-21数据还原窗体图25. 结论与展望本系统是一个面向小型药店,具有一定实用性的管理信息系统。它主要完成对药店库存的一系列管理,包括入库、退药、库存以及员工和供应商信息管理。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本系统采用当前流行的面向对象的开发工具Delphi来完成整个系统的设计,在数据库的设计上利用了SQL的快速性和实用性。 本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成,系统可以自动识别用户不同的输入。在药品入库、退药和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。在用户管理方面,系统较好地实现了用户添加,用户注销和密码修改等各项功能。 系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由5个人组队自学Delphi设计的,有关Delphi许多细节问题都要靠整个团队一起去摸索,但由于精力和水平的限制,并没有完全地理解Delphi的强大功能,所以我们的设计还存在着许多不足之处。如:系统程序的稳定性和反馈测试还不完善,系统测试的时间很短,所以还会存在少许问题; 报表打印功能尚不够全面完善; 在一些数据输入时没有及时的进行数据格式校验,不能保证数据输入的绝对正确性。 由于时间关系,系统还有不够完善的地方。如没有实现多条记录的连锁删除和添加以及数据的导入功能。 以上这些都是需要完善的地方,今后我们会不断地补充和完善。 通过本次毕业设计我们学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。参考文选:1郑荣贵、黄平、谷会东.Delphi 6.0数据库开发与应用.中科多媒体电子出版社.2002 2伍俊良.Delphi 6控件应用实例教程.北京希望电子出版社.20023卢国俊.Delphi 6数据库开发.电子工业出版社.20024边萌.Delphi 编程起步.机械工业出版社,20025伍俊良.Delphi 6课程设计案例精编.中国水利水电出版社.20026丁宝康.数据库原理.经济科学出版社.20007陆丽娜.软件工程.经济科学出版社.20008网冠科技.Delphi 6.0 网络及数据库时尚编程百例.机械工业出版社.2002.49何玉洁.数据库基础及应用技术.清华大学出版社.2002.610王立峰、延伟东、章华.软件工程理论与实践.清华

温馨提示

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

评论

0/150

提交评论