版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1课题背景目前处于经济迅猛发展、信息规模广阔的大数据时代,以互联网为基础提供信息化管理已经是各个行业所需要使用到的管理方法。随着实体药店体制改革不断地向前推进,我国的医药事业得到了迅速的发展,药品种类的增加和药店数量的增加呈现出上升趋势REF_Ref5299\r\h[1]。实体药店在服务及经营管理方面的质量还是会依赖传统信息管理,这不仅浪费了大量的资源,还降低了药店信息管理效率。实体药店的环境规模分为两种:一种是单体模式药店,另外一种就是连锁模式药店。在资源方面上,连锁药店要比单体药店的资源更加丰富。医药行业零售市场竞争力日益激烈,在这样的情况下连锁药店的地位就远超于单体药店的地位,单体药店的优势远远不足于连锁药店的优势。那么单体药店要想在这样的市场环境下站稳脚跟,就要摆脱传统信息管理,选择以互联网技术为基础构建出能够进一步加强管理药店工作效率和改善服务质量的系统软件。与此同时也需要引进创新的经营机制,例如采取药品销售信息化管理措施和采取药品库存预警措施。库存预警能够及时反馈缺乏药品相关信息给工作人员及时处理,促使工作人员避免了药品缺货情况。此外还可以采取药品过期提醒措施,能够维护好消费者权益和药店信誉保障。从站在单体药店的角度上看,以上措施都可以让财力、物力、人力都得到了进一步的提高。1.2研究现状欧洲药店发展都是以单体药店为主,连锁药店出现的几率很低。在德国法律条款《药店法》中明确规定:境内的药店不能超过三家分店,药店不能与医药企业合作。并且位置还必须要在同一服务区中。目的就是为了防止医药企业的经营垄断了单体药店的经营发展和保护好消费者的权益。基于互联网的药店经营模式是在美国出现的,这种经营模式是占了整个医药流通范围的30%REF_Ref958\r\h[2]。对有需求药品者出售处方药及非处方药的模式在英国已经习以为常,这都是跟国外的药店规制体系有关系。因此他们的药店规模和相关市场范围才会比较广阔,应用相关系统软件的趋势已经逐渐成熟REF_Ref5576\r\h[3]。国内的单体药店与国外的单体药店不同,国内的单体药店在面临着与连锁药店的竞争时产生了生存压力。由于近期出现了新的经营方式,大部分单体药店对新的经营模式接受度不高,因此他们仍然应用“采购-入库-销售”模式。单体药店的经营体制和连锁药店的经营体制不同,单体药店的体制比连锁药店的体制灵活许多。不仅如此,单体药店在市场、经营上可以采取弹性策略。除此之外,单体药店所拥有的优势就是经营成本较低。作为我国基本医疗保障的重要元素,单体药店在偏远地区还是占有极大的存在价值REF_Ref1362\r\h[4]。连锁药店大多采用C/S模式系统,即Client-Server(服务器-客户端)。这类模式的缺点就是需要安装与之对应的软件实现对药店信息的管理。由于客户端也是需要处理日常的工作任务,运行起来的程序也比较多,使用的数据库也不是公共化的。因此传统的C/S模式存在着局限性。一旦系统的需求发生了变化,服务器和客户端的程序都需要变更。因此升级程序、维护程序的便利性较低。随着互联网的技术不断发展,C/S模式由B/S模式接替。B/S模式就是Browser/Server(浏览器/服务器)。它不需要像C/S模式在客户端安装复杂的系统软件管理药店信息,只需要在客户端通过浏览器即可实现对药店管理。因为客户在处理信息时使用到的程序中涉及程序事务逻辑数量较少,主要的事务逻辑都集中在服务器端实现。加上对计算机环境的要求性不高,有web浏览器和操作系统即可。因为程序基于在web浏览器上,所以减少了系统开发成本和维护成本。这样就能够实现药店工作人员随时随地登录自己的账号去进行对药店信息管理等操作。使用B/S模式应用在服务器端的数据如果出现了负荷重,那么就能够引起服务器崩溃等问题。因此需要药店里拥有对应的数据库存储服务器。1.3研究内容本文研究的主要内容是以单体药店采用互联网技术信息化管理的基础为前提,从问题角度上设计出比较合理的药店销售管理系统。本系统将进销存业务、会员机制、系统维护等功能聚集一身,大大增强单体药店的经营管理效率。2系统开发工具及技术本系统运用的开发工具是MicrosoftVisualstudioprofessional2015及SQLServer。采用C#语言进行系统编程,使用ASP.NET技术去开发B/S模式下的药店销售管理系统。2.1Visualstudio2015Visualstudio是微软公司推出一套基于组件的软件开发工具,内置了多种面向对象的编程语言。它不仅可以支持跨平台设备开发,还通过对语言、数据库及工具进行改进之后,在这基础上经典应用程序和网站的开发支持更胜一筹。在开发过程中,Visualstudio内置的控件让系统开发人员便捷地去设计程序,实现多种功能。不仅减轻了界面设计的复杂程度。还减少了系统开发人员的编程代码数量,以简洁明了的代码提高应用程序的可靠性。加上所使用的ASP.NET技术可以在此工具和环境下能够便利设计出本系统。因此Visualstudio对实现本系统来说是一个不错的选择工具。2.2SQLServerMicrosoftSQLServer是微软公司开发的一款同时具有高性能、可用性高、安全性高的管理工具REF_Ref6030\r\h[5]。这款开发工具不仅引进了能够帮助各种规模业务获取信息中的最大价值,还强化了商业智能和数据仓库。强化数据仓库目的就是为了更好地去合并数据和组织数据。同时让管理员可以集中监控和集中管理多个数据库应用,提供更多的功能、策略及报表来帮助管理员管理数据库。因此,本系统的数据更新及数据管理都需要这样的技术合理解决所存在的问题。2.3C#语言C#语言是编程人员能够在基于ASP.NET平台上编写各种应用程序的面向对象编程语言。相比于Java语言来说,它拥有比较先进的语法体系。同时简化了C++语言在类及命名空间等方面的操作。除此之外,C#还有着很强的兼容性。正是以上所说的特点促使它成为了构建各个种类组件的首选,面向对象的范围大到高级商业对象,小到系统级应用程序。因此在开发本系统时选择采用C#语言REF_Ref6109\r\h[6]。2.4ASP.NETASP.NET是微软公司推出的一款较为流行的开发平台。不仅如此,它还是建立在动态Web应用程序上的技术。ASP.NET还是.NET框架的一部分,它的目的就是帮助开发人员在开发应用程序时能够将代码数量减少到一半以上,改变前面需要编写多种重复性代码的情况,尽可能用最少的代码实现想要的功能REF_Ref6230\r\h[7]。由此得出ASP.NET的特性为灵活性高、开发效率高。除此之外,ASP.NET还支持三种开发模式开发系统,分别是单页面、视图控制器、事件驱动三种不同模型。单页面模型是最简单的ASP.NET模型。模型视图控制器将Web应用程序分为三大部分:模型、视图、控制器。事件驱动模型是较为传统的模型。因为本系统采用的是在B/S模式下实现的,所以综上所述采用ASP.NET技术来进行开发。2.5ADO.NETADO.NET不仅是一种数据访问技术,还是数据库应用程序与数据源之间的桥梁REF_Ref6403\r\h[8]。在开发系统时为了让客户端能够访问到服务器里的数据库数据,经常要对数据库进行各种操作。ADO.NET还是一组向.Net编程人员公开访问数据的类,并且提供了丰富的组件。ADO.NET的对象模型有6个部分:Connection、Command、DataReader、DataAdapter、DataSet、DataTable。使用以上对象可以建立数据库的连接和管理数据库的连接,从而获取数据并对数据执行更新、删除等操作。2.6CSSCSS用中文说明就是层叠样式表,在网页设计中占领了美化网页领域。它主要是对网页文档内的文字、背景等经过排版方式起到了美化作用。原理就是将每个样式所对应的规则放在网页样式表里,通过在网页中的引用来实现自己想要的效果。CSS的特点主要是可以将相关样式代码分离,实现不同网页引用同一个样式表便于维护。同时可以将浏览器的加载速度提高,相对使用纯<table>布局而言,CSS在与某个标签的搭配上来说效率更高REF_Ref2881\r\h[9]。3系统总体设计3.1需求分析从医药卫生事业改革开放以来,医药行业的发展非常迅猛。因此在医药零售市场上的竞争非常激烈。对于单体药店而言,在销售方面和管理方面上的重视度越来越高。站在单体药店的角度上思考作为销售和管理集一身的系统应该要给予药店员工不同的权限来合理分配,这样就能够使得药店经营上更加系统化、合理化。尤其处于当今大数据时代中,信息的价值、信息的传播和信息及时性显得极其重要。在药品的分类和更新上能够凸显出不同药店间的竞争力度REF_Ref6494\r\h[10]。因此本系统应该要具备能够对药品信息的更新、查询及药品过期提醒功能。这样药店员工可以在向顾客销售的情况下能够及时查询到药品信息状态。药品的批发也是属于单体药店里的重要部分,批发来源于有稳定的合作关系即稳定的供应商。那么药店的药品数量和货源就能够有保障。因此在该系统中也需要有对供应商信息管理功能。这样的处理方式就会减少不必要的麻烦。货源的供应已经有所保障之后,剩余的就是货源的运转流程。在整个过程中涉及到的是:首先采购进货确定药品的数量及质量,接着把清点好的药品放入仓库,然后将有质量损坏的药品出库。因此,在这整个过程中采购是相当重要。在保证药品的质量和未知药品销售量如何的情况下能够使得药店不会囤积过多的药品,减少了成本。并且能够将囤积过久的药品可以进行退货处理。综上所述,系统中不能缺少采购管理模块。作为药店的发展指标,销售药品是整个药店经营的核心。既然是核心,那么要求这整个过程都是需要完全合理透明化。药店销售药品时,要分别记录非处方销售和处方销售REF_Ref6628\r\h[11]。处方销售时要记录处方单号。非处方销售时要记录好销售药品的信息。这样一来,药品销售信息的统计极其重要REF_Ref6732\r\h[12]。因为单体药店要根据日销售来查询药店的销售额,所以系统中也少不了销售管理模块。药品数量的存放是保证了药店运行的因素。记录药品的出库能够同时反应出两个信息:一个是销售信息,一个是药品质量上的提醒。例如损坏等。因为有了药品的存放,那么也就有了仓库。在仓库中的药品存放出现的损失也可以通过记录的相关信息查询到药店的损失量。库存量的出现应对着药品的需求量,需要设置药品库存量预警。库存量预警的意思就是当某种药品销量大或因其他原因出现了库存量少于特定的库存预警值就能够提醒药店员工及时查看药品信息并且进行药品进货。会员机制可以给药店经营状态带来一定的收益和好处,通过消费的示范效应从而使得药店的口碑让众人得知。示范效应就是针对人类的消费行为得出的一种解释。会员机制的出现可以更多地吸引消费者,给予消费者一定的购买药品优惠。具体机制实施为药店员工向顾客销售药品时推荐免费办理会员,消费者只需提供手机号、姓名等信息就可以成为会员REF_Ref4092\r\h[13]。药店里的药品存放不止是在空间上的存放有注意事项,还要注意到时间期限。这关系到消费者的利益和药店的声誉,因此药店员工要能够及时了解到快过期的药品信息,这样就可以采取对应的措施,合理去调整药品并且反馈好药品信息将药品以过期等原因进行出库及销毁。因此该系统还要具备有药品过期提醒功能。3.2功能分析从需求分析上了解到本药店销售管理系统能够合理去实现必须具备的功能,在开发功能时要从权限的角度上去考虑药店员工的权限能够对哪些模块进行管理。因此本系统用户角色分为操作员和管理员。管理员一般是药店店长,对药店内的员工、提供货源的供应商、所在的仓库、管理系统的维护、药品的信息和种类进行管理。除此之外还需要管理统计药店在运作时间上的所有业务信息,业务信息包括采购、退货、库存、入库、出库、销售六大类。操作员的权限在于采购信息管理、库存管理、销售管理、会员管理、系统管理。操作员包含了销售人员和仓库管理人员的权限,可以销售药品,查询药品销售记录。与此同时,还能让顾客加入会员机制享受购买药品的优惠和查询顾客是否为本店会员。也可以采购药品并将药品清点完后将药品相关信息入库和进行采购药品退货及药品出库。3.3系统功能模块设计3.3.1总体概要设计图需求分析出来的结果得知本系统包括采购管理、库存管理、销售管理、会员管理、系统管理、基础资料管理、药品信息管理、信息统计管理几大模块。如图1所示:图1总体概要设计图以上模块与模块之间有交互作用,基础资料管理包含了对供应商的管理、药品类别管理、仓库管理。药品信息管理包含了添加药品等功能。在药品采购、入库、出库、销售时都需要去查询到以上模块的信息才能够去进行下一步的操作。销售管理需要知道会员管理中的会员信息、知道药品信息管理中的药品相关信息及供应商才能够把药品销售给顾客,给予顾客最有力的购物体验。本系统根据角色分为管理员和操作员,两个角色的功能模块都有所不同,在以不同角色进入系统时的流程都不一样。具体如图2所示:图2功能模块流程图3.3.2采购管理功能模块采购管理主要由操作员负责,操作员可以对需要采购的药品添加相关信息,对需要退货的药品添加相关信息。还可以查询药品信息。除此之外,操作员对采购后的药品或退货成功的药品进行查询、修改、删除等操作。如图3所示:图3采购管理功能模块图3.3.3库存管理功能模块库存管理主要由操作员可以对记录采购信息的药品进行药品入库等操作,对损坏过期的药品可以进行出库等操作。待出库入库成功后,可以在当前库存查询库存信息。如图4所示:图4库存管理功能模块图3.3.4销售管理功能模块销售管理主要由操作员对药品进行销售给顾客,也可以查询自己销售过的药品信息。管理员可以对销售信息进行金额统计、销售信息的查询及删除。如图5所示:图5销售管理功能模块图3.3.5会员管理功能模块会员管理主要是操作员在对药品进行销售的过程中,激发顾客购买欲望然后给顾客介绍会员机制让顾客加入会员。除此之外,操作员可以对会员信息进行修改、删除、查询。如图6所示:图6会员管理功能模块图3.3.6系统管理功能模块系统管理在操作员和管理员的界面中都存在,系统管理包含对密码的修改、员工信息的添加、删除、修改、查询。如图7所示:图7系统管理功能模块图3.3.7基础资料管理功能模块基础资料管理主要包括供应商管理、药品种类管理、仓库管理。管理员可以对相应模块所拥有的信息进行增删查改。如图8所示:图8基础资料管理功能模块图3.3.8药品信息管理功能模块管理员可以在药品信息管理功能模块中进行添加药品信息,对药品信息进行修改、查询、删除。如图9所示:图9药品信息管理功能模块图3.3.9信息统计管理功能模块信息统计管理中有采购统计、采购退货统计、药品出库统计、药品入库统计、药品销售统计、药品库存统计。管理员在这个模块中可以按照日期来查询相关信息,也可以删除错误的信息。如图10所示:图10信息统计管理功能模块图3.4数据库设计及过程通过需求分析及功能分析模块能够清楚知道这整个系统所涉及到的信息管理,都要必须进行一个保存和更新的操作。因此数据库的设计是任何一个系统进行开发时的基础。以下是E-R图和逻辑结构设计的说明:3.4.1E-R图E-R图是在构思系统结构时经常采用到的方法,它包含实体、属性、联系三大对象REF_Ref6935\r\h[14]。为了把用户的数据准确地描述出来,需要从用户的角度去思考如何分析数据来进行建立数据模型。E-R图在药品信息这个实体中,药品信息所包含属性有:药品编号、药品种类、药品名称、药品规格、供应商名字、生产日期、有效日期、销售价、销量、是否为处方药、批号、备注、进货价、库存量、仓库名字。如图11所示:图11药品信息实体属性图在用户这个实体中,用户所包含的属性有:序号、账号(员工代号)、密码、职位、姓名、性别、出生年月、联系方式、备注。如图12所示:图12用户实体属性图在药品种类实体中,药品种类所包含的属性有:类别编号、种类名、备注。如图13所示:图13药品种类实体属性图在销售这个实体中,销售所包含的属性有:销售编号、药品名称、数量、销售价、总金额、应付金额、销售日期、是否为处方药、处方单号、药品编号、会员名字、供应商名字、批号、药品规格、药品种类。如图14所示:图14销售实体属性图在采购这个实体中,采购所包含的属性有:采购编号、采购日期、药品编号、采购数量、总金额、员工代号、备注、药品名称、药品种类、供应商名字、进货价、药品规格、仓库名字、库存状态。如图15所示:图15采购实体属性图在采购退货这个实体中,它所包含的属性有:采购编号、退货日期、药品编号、退货数量、退货金额、员工代号、退货原因、药品名称、供应商名字、退货单价、药品规格、仓库名字、药品种类、库存状态。如图16所示:图16采购退货实体属性图在出库这个实体中,它所包含的属性有:出库单号、药品编号、出库日期、出库原因、出库数量、药品名称、药品种类、出库总金额、员工代号、出库单价、供应商名字。如图17所示:图17出库实体属性图在会员这个实体中,它所包含的属性有:姓名、手机号、出生年月、序号、折扣。如图18所示:图18会员实体属性图在仓库这个实体中,它所包含的属性有:仓库名字、仓库编号、仓库地址、仓库电话。如图19所示:图19仓库实体属性图在入库这个实体中,它所包含的属性有:药品名称、药品种类、价格、入库日期、员工代号、入库数量、药品编号、药品规格、仓库名字、备注。如图20所示:图20入库实体属性图在库存这个实体中,它所包含的属性有:仓库编号、药品名称、药品种类、价格、库存量、库存预警、仓库名字、采购日期、员工代号。如图21所示:图21库存实体属性图在供应商这个实体中,它所包含的属性有:供应商编号、供应商名字、厂商地址、对接人、备注、联系方式。如图22所示:图22供应商实体属性图本系统包含了药品、用户、仓库、供应商、会员等实体,那么这些实体之间可以通过关系词来实现实体与实体之间的联系。如图23所示:图23整体E-R图3.4.2逻辑结构设计采购表用来存储采购药品信息,方便操作员更新、查询相关信息和方便管理员进行删除、修改相关信息。如表1所示:表1采购表字段名数据类型数据类型长度允许为空说明CgbhInt否采购编号(主键)ypbhInt否药品编号(主键)CgrqDATE是采购日期slInt否采购数量JgFloat53是总金额YhmVARCHAR50否员工代号BzNVARCHAR50是备注YpmcNVARCHAR50否药品名称zlmNVARCHAR50否药品种类gysmzNVARCHAR50否供应商名字jhjFloat53否进货价YpggNVARCHAR50是药品规格CkmzNVARCHAR50是仓库名字ZtInt否库存状态采购退货表存储药品退货信息,能够让操作员和管理员对信息及时了解并做出对应的措施。如表2所示:表2采购退货表字段名数据类型数据类型长度允许为空说明cgbhInt否采购编号(主键)ypbhInt否药品编号(主键)thrqDATE是退货日期thslInt是退货数量thjgFLOAT53是退货金额thyhmVARCHAR50否员工代号thbzNVARCHAR50是退货原因ypmcNVARCHAR50否药品名称thzlmNVARCHAR50否药品种类thgysmzNVARCHAR50否供应商名字thjhjFLOAT53否退货单价ypggNVARCHAR50是药品规格CkmzNVARCHAR50是仓库名字ZtInt否库存状态出库表是存储药品出库信息,方便药店员工在进行出库完成后可以及时清点药品数量。如表3所示:表3出库表字段名数据类型数据类型长度允许为空说明ckdhInt否出库单号(主键)ypbhInt否药品编号(主键)ypmcNVARCHAR50否药品名称(主键)ckyyNVARCHAR50是出库原因ckjeFloat53否出库总金额CkslInt是出库数量yhmVARCHAR50否员工代号CkrqDate否出库日期jhjFLOAT53否出库单价zlmNVARCHAR50否药品种类gysmzNVARCHAR50否供应商名字药品种类表是为了存储药品种类的信息,管理员可对药品种类信息进行更新、删除等操作。如表4所示:表4药品种类表字段名数据类型数据类型长度允许为空说明lbbhInt否类别编号(主键)ZlmNVARCHAR50否种类名(主键)bzNVARCHARMax是备注药品信息表存储药品基本信息,管理员可以对药品信息进行更新、删除等操作。如表5所示:表5药品信息表字段名数据类型数据类型长度允许为空说明ypbhInt否药品编号(主键)gysmzNVARCHAR50否供应商名字(主键)ypmcNVARCHAR50否药品名称ypggNVARCHAR50否药品规格zlmNVARCHAR50否药品种类scrqDATETIME否生产日期yxrqDATETIME否有效日期xsjFLOAT53否销售价xlInt是销量cfyNVARCHAR50否是否为处方药phNVARCHAR50否批号bzNVARCHARMax是备注jhjFloat53是进货价kclInt否库存量ckmzNVARCHAR50是仓库名字销售表存储销售出去的药品信息,操作员可以对相关信息进行查询、删除操作。同时管理员也可以对相关信息进行更新、删除。如表6所示:表6销售表字段名数据类型数据类型长度允许为空说明xsbhInt否销售编号(主键)ypmcNVARCHAR50否药品名称(主键)ypbhInt否药品编号(主键)xsjInt否销售价jeFloat53是总金额zhjFloat53是应付金额xsrqDATETIME是销售日期cfyNCHAR10是是否为处方药cfdhVARCHAR50是处方单号slInt否数量hymzNVARCHAR50是会员名字gysmzNVARCHAR50是供应商名字phNVARCHAR50是批号ypggNVARCHAR50是药品规格zlmNVARCHAR50是药品种类会员表主要存储操作员在销售药品时记录顾客新加入会员信息及查询老会员信息。如表7所示:表7会员表字段名数据类型数据类型长度允许为空说明nameNVARCHAR50否姓名(主键)idInt否序号(主键)srNVARCHAR50是出生年月sjhNVARCHAR50否手机号zkFLOAT53是折扣用户表存储操作员和管理员的基本信息,方便管理员查询。如表8所示:表8用户表字段名数据类型数据类型长度允许为空说明idInt否序号(主键)yhmVARCHAR50否账号(主键)passwVARCHAR50否密码titleNCHAR10否职位nameNCHAR20否姓名sexNCHAR10否性别csnyDATE否出生年月lxfsNVARCHAR50否联系方式bzNTEXT否备注仓库表用来存储仓库基本信息,方便管理员增删查改。如表9所示:表9仓库表字段名数据类型数据类型长度允许为空说明ckbhInt否仓库编号(主键)ckmzNVARCHAR50否仓库名字(主键)dhNVARCHAR50是仓库电话DzNVARCHAR50是仓库地址入库表存储药品入库相关信息,方便操作员和管理员能够进行查询。如表10所示:表10入库表字段名数据类型数据类型长度允许为空说明ypmcNVARCHAR50否药品名称(主键)ypbhInt否药品编号(主键)ckmzNVARCHAR50否仓库名字(主键)rkrqDATE是入库日期yhmVARCHAR50否员工代号rkslInt是入库数量zlmNVARCHAR50否药品种类ypggNVARCHAR50是药品规格jgFLOAT53是价格bzNVARCHAR50是备注库存表存储药品相关信息及对应的库存量。操作员可以查看当前的库存量,管理员可以对库存进行统计和删除。如表11所示:表11库存表字段名数据类型数据类型长度允许为空说明ckmzNVARCHAR50否仓库名字(主键)ypmcNVARCHAR50否药品名称(主键)zlmNVARCHAR50否药品种类jgFLOAT53是价格kclInt否库存量kcyjInt否库存预警ckbhInt否仓库编号cgrqDATE是采购日期yhmVARCHAR50否员工代号供应商表存储供应商的基本信息,管理员可以对其进行增删查改。如表12所示:表12供应商表字段名数据类型数据类型长度允许为空说明gysbhInt否供应商编号(主键)gysmzNVARCHAR50否供应商名字(主键)gyslxfsNVARCHAR50否联系方式csdzNVARCHAR50否厂商地址djrNVARCHAR50是对接人bzNVARCHAR50是备注4系统优化技术与系统功能的实现4.1数据库的连接技术在开发系统过程中,功能模块都需要涉及到数据库的连接。为了使代码量减少以及在后期修改的时候能够快速方便理解代码的情况下,通常都会创建一个类文件去放置连接数据库的相关代码。基于以上考虑,本系统创建了名为DataBaselink.cs文件用来放置数据库连接代码,具体核心代码如图24所示:图24数据库连接代码在敲以上代码的时候,先要使用命名空间System.Data.SqlClient及System.Data。前者是描述了在托管空间里访问数据库的类集合,后者是提供了通过ADO.NET生成的一组组件,可以有效管理数据。不仅如此,还使用了Connection连接数据对象,指定用于连接和管理数据库。4.2触发器在系统中库存管理这个功能就使用到了SQLServer数据库里的触发器,用来管理库存量的增加、减少。触发器是一种比较特殊的存储过程,是为了DML和DDL事件而执行的。即当用户对数据表进行更新、删除、插入等操作的时候自动触发的程序REF_Ref5160\r\h[15]。在开发过程中,采用了DML触发器。即当用户往表里插入数据时,库存量会随着操作进行相对应的措施。因此在药品信息表中添加了触发器。具体核心代码如图25所示:图25触发器代码该触发器的作用是在用户对药品信息进行库存操作时临时重建库存表的内容。目的就是能够及时更新有关库存数据。4.3登录功能的实现图26管理员登录界面图27操作员登录界面图26的登录界面和图27的登录界面都采用了输入验证码的方式来增加系统的安全性。具体核心代码如图28所示:图28验证码代码验证码采用了Random随机函数,但是在ASP.NET中它是属于一个有规律的随机数生成器。默认是使用系统时钟来生成的,在这个系统中采用了参数方法,因此可以根据当前时间采用Int32数值。This.Label1.Text=validateN.Next(4).ToString()这串代码的意思就是返回一个小于指定的数值且是非负数的随机数。比如在括号中指定了4,那么在页面刷新的时候会看见出现的数值最大的只有3。4.4查询药品功能的实现图29查询药品功能界面图29为查询药品功能的布局界面,这里实现了能够让药店员工快速查找药品相关信息并且知道药品的保质期以及过期提醒。这能够让药店员工大大增强了对信息的管理效率。具体核心代码如图30至图32所示:图30查询药品代码图31查询药品代码首先执行SQL语句模糊查询表相关的信息,判断输入的值是否存在。对GridView1进行一个数据源获取之后再绑定数据。图32控件页码代码首先设置当前页的索引,接着从数据库里查询对应的表信息。判断数据表中是否存在数据,如果没有自动增加一条空白数据行,反之则显示对应的表信息。4.5当前库存功能的实现图33当前库存界面图33就是当前库存模块的界面,主要是用来显示当前库存量的信息。当药品的库存数量低于库存预警的数量时就会使GridView指定的行背景颜色变成红色。而药品的库存量高于库存预警数量时,对应的不会显示红色。具体核心代码如图34所示:图34库存预警代码采用if语句来执行代码,首先判断当前行是不是数据绑定行。其中DataRow是数据绑定行,DataControlRowType是GridView行的类型集合。如果判断是数据绑定行,那么DataRowView就会取指定的数据行、数据集中的值。值就对应数据表M_kcb(库存表)中的kcl和kcyj这两个字段,然后将它们进行比较。当条件生成,那么就会出现行背景为红色,条件不成立就会没有颜色显示。4.6销售药品功能的实现图35销售药品界面图35为销售药品界面,此功能采用了自动计算金额及销售功能。自动计算金额和销售功能的具体核心代码如图36至图41所示:图36自动计算金额代码图37自动计算金额代码图38销售功能代码图39销售功能代码图40销售功能代码图41销售功能代码自动计算金额是编写了自定义BindJS方法,在这个方法里,首先用if语句判断条件不能为空。定义变量和运算符赋值且进行字符串转换;为了使GridView每行销售数据能够计算总金额。定义double类型count,获取该数据表中的总金额然后保留两位小数。在销售药品这个模块中,需要显示购买药品的信息。因此,采用了临时缓存表的方法:先初始化一个全局变量对象DSXS.xsDataTable,dt=ViewState["data"]asDSXS.xsDataTable;DSXS.xsRowdr=dt.NewRow()asDSXS.xsRow;这串代码是声明临时缓存。定义变量之后把控件赋值给变量,接着还需要去声明SQL变量,最后进行数据绑定。4.7添加药品功能的实现图42添加药品界面图42为添加药品界面,涉及主要的功能为添加及下拉框绑定数据源。具体核心代码如图43所示:图43下拉框绑定数据源代码IsPostBack属性的作用为判断页面是第一次向服务器传递数据还是为了网页响应回传加载。Session对象是用来存储登录人员账号信息。下拉框的数据源来自数据库里的数据表,接着进行数据库绑定和下拉框两个属性值的绑定。使用占位符函数Format编写查询语句,根据药品信息表中的药品编号查询药品,促使系统维护性高。接着判断相关数据表里是否有相同的数据。创建好数据库对象、定义SQL变量、sqlcommand对象,接着判断数据库是否关闭,如果关闭就打开数据库。判断ExecuteNonQuery方法参数是否大于0,大于0就是添加成功,小于0就是添加失败。最后数据库在执行完代码时候关闭连接。具体核心代码如图44至图45所示:图44查询药品代码图45判断代码4.8修改会员功能的实现图46修改会员界面图46为修改会员界面,对会员信息进行修改。具体核心代码如图47所示:图47修改会员代码先用if语句判断获取的值是否为空,如果值不等于空,那么就从DataBaselink类文件中调出并执行SQL修改语句。修改成功后显示弹窗。4.9删除会员功能的实现图48删除会员界面图48为删除会员界面,对会员信息进行删除。具体核心代码如图49所示:图49删除会员代码在if判断语句中判断按钮执行名称是否为SC,是SC就取出当前行数据的主键值,从databaselink这个类文件调出相关数据并执行SQL删除语句。接着从定义方法DataTable中获取数据并执行SQL查询语句。5系统测试5.1测试的目的及意义系统开发完成之后通常在上市之前都会进行系统测试,目的就是为了检查系统开发是否真正能够运行。运行的过程有没有出现报错情况。还有对功能的测试,查看功能实现的效果是否符合系统需求分析。在用户使用过程中的体验是否感觉有差异,如有差异就需要找出问题并完善。5.2功能模块测试5.2.1登录模块测试在操作员和管理员登录界面上都输入用户名和密码为o001和admin,第一次输入错误密码为123456,第二次输入与用户名一样的密码。用户登录测试信息如表13所示:表13用户登录测试表测试目的操作员和管理员是否成功登录系统测试过程1.点击VS里的运行按钮,进入到操作员的登录界面进行登录。2.在操作员登录界面切换到管理员登录界面进行登录。测试对象第一个测试对象1.操作员用户名:o001密码:1234562.管理员用户名:admin密码:123456第二个测试对象1.操作员用户名:o001密码:o0012.管理员用户名:admin密码:admin预测结果第一个对象预测结果登录失败第二个对象预测结果登录成功并且跳转到各自的系统界面测试结果第一个对象测试结果登录失败弹出弹窗第二个对象测试结果登录成功并且跳转到各自的系统界面具体实例运行结果截图如下所示:当以操作员和管理员的身份登录时输错密码的结果为图50所示:图50测试输错密码结果图当以操作员的角色登录进去之后的系统页面为图51所示:图51管理员测试登录成功进入的页面当以管理员角色登录进去之后的系统页面为图52所示:图52管理员测试登录成功进入的页面5.2.2销售药品模块测试操作员销售药品时,可以有非处方销售和处方销售,还有一次性购买不同药品和会员销售几种情况。销售药品测试表如表14所示:表14销售药品测试表测试目的能够根据非处方销售情况、处方销售情况、一次性购买不同药品、会员购物的情况成功销售药品。测试过程将药品相关信息选择并填好,写好顾客购买数量,然后核对好销售信息并将信息录入到数据库。测试对象非处方销售情况处方销售情况一次性购买不同种药品会员购物预测结果非处方销售情况销售成功处方销售情况一次性购买不同种药品会员购物测试结果非处方销售情况计算好正确的总金额,信息录入到数据库中并显示弹窗销售成功。处方销售情况一次性购买不同种药品会员购物具体实例运行结果截图如下所示:非处方销售药品的测试为图53至图54所示:图53非处方销售药品图图54非处方销售药品测试成功图处方销售药品的测试如图55至图56所示:图55测试处方销售药品图图56处方销售药品测试成功图一次性购买不同的药品测试如图57至图58所示:图57测试一次性购买两种药品图图58一次性购买两种药品测试成功图会员购物的测试如图59至图60所示:图59测试会员购物图图60会员购物测试成功图5.2.3库存预警模块测试当库存量小于库存预警数时,显示出来的GridView控件的行背景颜色自动变成红色。测试信息如表15所示:表15库存预警测试表测试目的在库存量小于库存预警数时,GridView控件对应的行数自动变成红色。当库存量大于库存预警数时对应的行背景颜色消失。测试过程在添加出库模块中把药品的库存量输入的时候要小于库存预警数。在当前库存模块查看结果。在添加入库模块里把药品的入库数量输入的数量大于库存预警数量,再去当前库存查看结果。测试对象第一个测试对象库存量小于库存预警数第二个测试对象库存量大于库存预警数预测结果第一个对象预测结果Gridview控件中所对应的行背景颜色显示红色第二个对象预测结果Gridview控件中所对应的行背景颜色消失测试结果第一个对象测试结果Gridview控件中所对应的行背景颜色显示红色第二个对象测试结果Gridview控件中所对应的行背景颜色消失具体实例运行结果截图如图61所示:图61库存预警测试成功图5.2.4药品过期提醒模块测试当系统时间超过药品有效日期时,查询药品界面中的Gridview控件对应的行背景色变为红色。当系统时间没有超过药品有效日期时,查询药品界面中的Gridview控件对应的行背景色消失。测试信息如表16所示:表16药品过期提醒测试表测试目的当系统时间超过药品有效日期时,药品信息管理的Gridview控件对应的行背景色变为红色。当系统时间没有超过药品有效日期时,药品信息管理的Gridview控件对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年共青团入团考试必考试题与答案
- 公职人员考试时事政治题库附答案2025年
- 2026年公开遴选和公开选调公务员笔试题库含答案解析
- 2026年文学概论网上试题及答案
- 2026年共青团考试考点题库附标准答案
- 心理学备考试题库及答案
- 社区护理考试题库及答案
- 初中数学期末几何证明卷及答案
- 2026北师大三下说课教学课件
- 企业海外工程税务筹划专业培训考核大纲
- DB5301∕T 102-2024 应用软件定制开发成本测算指南
- 消毒公司企业管理制度
- 广东东莞公开招聘农村(村务)工作者笔试题含答案2024年
- 电力一把手讲安全
- 实验室危化品应急预案
- (高清版)TDT 1031.6-2011 土地复垦方案编制规程 第6部分:建设项目
- 洪涝灾害灾区预防性消毒技术指南
- 手足外科植皮护理查房
- 临床血液学和血液学检验-血象和骨髓象检验课件
- 交通信号灯控制器设计报告
- YY/T 0597-2006施夹钳
评论
0/150
提交评论