药店销售管理系统.doc

上传人:wux****ua 文档编号:9074731 上传时间:2020-04-03 格式:DOC 页数:30 大小:842KB
返回 下载 相关 举报
药店销售管理系统.doc_第1页
第1页 / 共30页
药店销售管理系统.doc_第2页
第2页 / 共30页
药店销售管理系统.doc_第3页
第3页 / 共30页
点击查看更多>>
资源描述
第一章 绪 论1.1 开发背景及意义在现今的社会中,医药行业是一个发展迅速的行业,不同规模的药店管理机构都要有适合自己业务的软件销售管理系统,这样才能有效的提高工作效率,增加药店的利润,不断地扩大企业的经营规模。而一些小型药店现在并没有适合自己的销售管理系统。药店盲目的采用一些简单的管理软件进行管理,对药店的发展将会产生阻碍作用,所以要想继续发展就必须开发一个适合该药店的销售管理系统。为了提高工作效率、解决现存系统中的问题,我们急需开发一个新的、适合实际情况需要的药店销售管理系统,有了这样一个管理系统,不但能解决现存的销售管理问题,还能有效的减少药店的费用支出。在应用了该销售管理系统后,可以提高工作的准确性,减少不必要的损失;系统的库存信息最低预警可以为药店管理员提供及时进货的药品清单,这样可以更加方便、及时的了解到需要采购的药品,及时进货,避免了药品的缺货现象。此外药品的期限可以及时的进行提醒,可以维护消费者的利益同时维护药店的信誉。从另一个角度考虑,这样还可以增加营业额,提高收入,为进一步发展扩大业务做好充分准备。在应用了该系统后,可以提高全体工作人员的自身素质,在系统的各个模块中,需要不同的工作人员来进行管理,在对现代化的软件系统销售管理和运用的同时会发现许多自身不太了解,为了学习软件的使用而更好的投入工作。1.2 国内外研究现状据研究调查表明,现在国外发达国家现在多采用“医药分离”的模式,即在医院开药,在药店买药。这种模式使得发达国家的药店规模和市场较大,因而他们的药店销售管理系统已经逐渐趋于成熟。中国现在的医药体系还不成熟,正在加紧医药体制的改革。现在中国的药店销售管理系统多采用进销存的模式,最近又出现了很多新的经营方式,如:基于零库存思想的沃尔玛特管理方式。但这些新的经营思想在中国大部分药店的经营中还是难以应用的,因此本药店销售管理系统也是采用了进销存的模式。进销存就是以货物流为基础,以票据流为主线和动力,以金额流作为补充的三种数据流层的关于进货,销售和库存的表述。为了开发更合理更适用的销售管理系统,收集了一些研究资料以及对对药店的调查发现了国内现行的一些药店销售存在的一些问题,下面是列举的几个存在的问题:1药店制度难以执行。不少药店的制度是照搬其他药店的制度,没有制定适合本药店的制度。2. 不同性质的药品未按储存要求存放。3. 销售凭处方销售药品不规范。4. 零售药店仓储面积不足,储存条件简陋,缺乏必要的验收养护设备和防护措施,导致该冷藏的未冷藏,该除湿的未除湿,该分区的未分区存放,无法按条件储存药品,药品质量难以保证。5. 人员管理不到位与培训档案资料不全。6. 很多的药店仍采用人工的方式进行记录库存销售等信息,使得药店很多的信息更新慢,很多药品到期信息无法及时反馈。为了解决这些存在的问题,必须采取一些相应的措施,如:采用计算机快速的记录方式,使得药店的管理更规范,工作效率得到提高;对销售人员进行培训,对数据进行快速的更新,进而及时反馈药品的信息和库存信息。1.3 论文结构本文主要介绍小型药店销售管理系统的开发过程,本系统开发主要采用C/S(Client/Server)模式软件构造技术,前台页面系统采用ASP.NET开发,主要采用了C#语言,后台管理系统采用SQL Server 2000作为数据库系统,进而开发出本系统。下面介绍的是本文的结构。第一章:绪论,主要阐述了本系统开发的背景及意义,国内外对本系统的研究现状。第二章:基本技术介绍,主要阐述了本系统开发方法和工具以及对这些工具的介绍,在本系统中利用了这些工具的哪些优点。第三章:需求分析与总体设计,主要阐述了该系统的需求分析、总体设计以及数据库的总体设计。第四章:系统详细设计,主要阐述了该系统功能实现的关键代码,系统运行成功后的主要界面。第五章:系统测试,第二章 基本技术介绍2.1 系统开发工具及方法该系统采用了Client/Server模式软件构造技术,前台页面系统采用Visual Studio 2005开发,后台管理系统采用SQL Server 2000作为数据库系统,可以运行在Windows 98/2000/XP系统中。目前,网络应用软件运行的模式主要有二类:C/S模式,B/S模式。C/S结构是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。小型药店销售管理系统只需要管理员和员工两种主要人员使用,管理员负责管理所有员工的机器,本系统更是语言C/S模式开发。此外C/S具有以下的优点:应用服务器运行数据负荷较轻,数据的储存管理功能较为透明,数据控制灵活,并且适于在局域网中使用。小型药店销售管理系统中使用的人数相对较少,只是运行在小型的局域网中,而C/S体系结构适用于网速较快的网络环境如:局域网。此外系统的性能不会因为用户的增加而产生速度慢等问题。综上,小型药店销售管理系统采用C/S结构设计方法进行开发。2.3 Visual Studio2005简介Visual studio 2005提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。在开发本系统时每一个界面中都使用了控件,正是因为Visual studio 2005提供了大量的控件,使得开发中可以快捷的创建界面,不需要用代码的形式在创建控件,大大节省了系统开发的时间。此外,它提供了开发 Microsoft Windows(R) 应用程序的最迅速、最简捷的方法。不论是 Microsoft Windows 应用程序的资深专业开发人员还是初学者,Visual studio 2005 都为他们提供了整套工具,以方便开发应用程序。这些优点都促使本系统采用了Visual studio 2005这个开发平台。Visual Studio 2005这个开发平台易于ASP.NET程序的开发,ASP.NET是Microsoft .NET平台的一部分,ASP.NET是一个革命性的编程框架,它实现了企业级Web应用程序的快速开发。它提供了最简便、最具有扩展能力的方式来开发、部署和运行可以将任何浏览器或设备作为目标的Web应用程序。除了常见的Web应用程序,利用ASP.NET还可以创建其他的一些类型,这就使我们的应用程序的范围可以延伸到新的客户和业务合作伙伴。此外对程序员来说,部署服务器应用程序一直是一件很痛苦的事。采用了ASP.NET,程序员根本不必担心这个问题,因为ASP.NET大大简化了部署过程。要部署Web应用程序,只要把它复制到Web服务器上就可以了。正是基于这种开发的便利性,本系统采用了基于Visual Studio 2005开发平台下的ASP.NET技术,在开发系统时无需进行部署Web应用程序,简化了开发的过程。在开发语言上使用了C#(C sharp)语言,C#是一种最新的面向对象的编程语言。它使得程序员可以快速地编写各种基于ASP.NET平台的应用程序,ASP.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域,在本系统中一些药品的价格以及库存购货,销售开单都需要进行计算,因此使用ASP.NET开发平台更简便的实现数据的计算。由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。此外,C#的现代化设计能够消除很多常见的C+编程错误诸如资源回收减轻了程序员内存管理的负担,C#中变量由环境自动初始化,以及C#中的变量类型是安全的。因此,程序员编写与维护那些解决复杂商业问题的程序就更方便了,这样在开发系统时可以减少很多错误的发生,更利于系统的调试。C#还有着比C/C+更强的兼容性,在C#中,每个对象都自动生成为一个COM对象。这些优点使得C#更易于软件的开发,在大学的教学过程中也有着C#课程的教学。综上,本系统的开发采用了基于ASP.NET平台C#语言的开发。2.4 SQL Server 2000数据库简介Microsoft SQL Server 2000是由 Microsoft公司开发的,2000版本在功能和易用性上有很大的增强,并推出了简体中文版,它包括企业版,标准版,开发版和个人版4个版本,使同一个数据库引擎可以在不同的操作系统平台上使用,从运行Windows 9x的便携式电脑,到运行Windows2000 Data Center Server的大型多处理器的服务器。增强的图形用户界面管理工具,使管理更加方便。本系统采用了2000个人版,并且在开发过程中采用数据库提供的方便的建表,以及管理其中角色信息和表与表之间的关系。SQL Server 2000实现了C/S模式,模式数据库计算是一种分布式的数据存储、访问和处理技术,它已成为大多数企业计算的标准。Microsoft SQL Server是C/S应用的完美的例子,因此本系统适宜于采用SQL Server 2000数据库。此外,SQL Server 2000具备企业级数据库功能,可同时管理上千个并发数据库用户,其分布式查询使用户可以引用来自不同数据源的数据,同时具备分布式事务处理系统,保障分布式数据更新的完整性。企业在正常的业务运作过程中需要收集各种数据,包含企业的动态历史记录,数据仓库的目的是合并和组织这些数据,以便可以对其进行分析并用来支持业务决策。而Server 2000提供的强大工具,可帮助您完成创建、使用和维护数据仓库的任务,本系统数据的更新以及销售中的数据必须得到合理管理与统计,此时采用这种技术更有利于。SQL Server2000易于安装、部署和使用, SQL Server 2000的安装向导可帮助用户方便地实现各种方式的安装。正是SQL Server2000具有便于开发企业软件以及适宜开发管理系统和操作简单的特点,采用了SQL Server2000数据库作为后台开发工具。第三章 需求分析与总体设计3.1需求分析随着药店行业的迅速发展,竞争逐渐激烈,对于小型药店来说药店的销售管理越来越重要。作为一个管理系统应该有管理者和员工的合理权限设置,使得药店的经营更加合理化规范化。信息时代的到来使得信息的及时性尤其重要,药品的种类和不断地更新可以加大药店的竞争力,因此药店的销售管理系统就要能够对药品的基本信息进行更新、查询、及时分更新,这样销售人员可以对药品进行查询进而向消费者介绍最新的药品信息。稳定的供应商是药店货源的保证,同时可以根据供应商的信息记录可以使得对货源的质量也有着保证,因此供应商和厂家的信息必须记录。药店的正常运转货源要得到保证,这就必须有着良好的采购进货管理功能,同时为了药品质量的保证,以及在未知药品销量时可以保证药店不至于积存大量的药品,对一些积存的药品进行合理的退货,这对小型的药店尤为重要。作为药店盈利机构,药店的销售是非常重要,同时要求透明化,药店的开单、订单、退货信息都必须合理的记录统计。药品的存货是药店进行正常运行的保证同时合理的库存量更好的应对某些药品需求量的变化,同时记录药品出库信息可以更好的反应药品的销售信息。在仓库中药品的储藏出现的损失,通过记录的信息可以精准核对药品量的信息。药品的储藏要求库存管理中必须记录药品的养护信息,同时在仓库储存中应设置药品的库存下限,以便及时反映药品的信息,为药品进货提供可靠依据。财务管理对每个盈利机构都是至关重要的,对小型药店来说财务管理合理性透明化尤其重要,因此收款、付款管理,以及客户账单查询、供应商账单查询这些功能必须实现。账单作为一种凭据,在一些大型的药店中还可以作为积累积分来吸引顾客的功能,重要的是可以统计药店销售的一种统计,同时作为顾客消费退货的凭证,此时诸如销售开单、销售订单、进货入库等各类报表需要及时的打印。药店的经营必须符合国家GSP(Good Supply Practice)管理规定,这是药店经营企业统一的质量管理规则,根据相关的规定药店必须能够按照GSP规定,必要的时刻要按规定进行打印或者导出各类报表记录。在任何销售行业,退货进货是难免的,当出现退货的情况时,原先的报表要作废同时也要进行记录,这就要求系统有着冲红的功能。药品的储存都是有时间期限的为了维护消费者的利益和药店本身的信誉,药店库存人员必须能够了解到期药品,以便能得到合理的调整药品并及时的反馈药品的信息,将这些药物退回或者清除。为了各行各业健康的发展,国家对每个行业都有着相关的规定,因此药店和供应商都有着许可证期限规定,当供应商的许可证不在有效地时间内,那么供应商提供的货物质量就得不到保证,此时要了解到相关的供应商许可证的信息并能够做出提示信息。了解到小型药店销售管理能够合理的运行必须具备的功能,开发本系统具有的功能就应该能对药店内不同人员的信息角色进行管理。管理人员(可以称作店长)应该能够对店内销售营业员和库存管理人员信息和权限进行管理,同时对管理药店财务,并负责对系统的维护。同时药店管理人员还要对药品的GSP管理和系统的维护进行负责,同时供应商的信息和药店部门的信息管理业需要店长进行管理。在该系统中作为销售人员只要做到对药品的信息进行查询,这样可以对消费者进行介绍多重药品相关的信息,使用户可以有多种选择。作为一个小型的药店,药店中应该有着营业员的职位,营业员可以对药品进行销售管理,包括收银,开单(包括销售开单,客户退货开单等),冲红等相关的作业,这样使得药店的分工合理化。为了更好的管理本系统,仓库管理人员也是不可或缺的,仓库管理人员要对货物进货,退货管理,这就要求仓库管理人员要掌握药物的最低下限信息可以及时的进货,退货。同时不同药物的存放要求等不同也要求仓库管理人员掌握药物的养护信息,仓库管理人员最基本的职责就是管理不同的药物进行出库和入库,在药品的储存期间可能出现损失,这时仓库管理员还要具有报损的职责。作为一个合理的药店管理系统,当药店人员不能正确的使用本系统时应该有相应的提示信息,这也是软件合理化的体现。3.2 总体设计通过需求分析,可以得知该系统应该包括基本信息模块、采购管理模块、销售管理模块、库存管理模块,以及财务管理模块、GSP管理模块、系统维护模块和报表中心模块,系统模块图如3-1所示。药店销售管理系统基本信息模块采购管理模块销售管理模块库存信息模块销售管理模块财务管理模块GSP管理模块报表中心模块系统维护模块图3-1.系统模块图这些模块之间的信息可以交互,基本信息模块存储了药品的基本信息和供应商、厂家、客户以及药店部门的基本信息,因此在进货管理模块中采购收货和采购退货时需要查询基本信息中的供应商信息。销售管理模块中销售订单、开单、退货单都需要查询客户基本信息以及药品的基本信息,此时将查询基本信息模块中的信息。库存信息模块中的药品养护、库存下限信息都需要基本信息模块中的信息。财务管理模块需要查询进货管理模块的采购收货和采购退货信息以及销售模块中的销售信息。基本信息中的以及库存信息管理模块中的信息更新后都需要系统维护模块中的数据备份,进行保存防止数据出现错误。数据报表中心模块中的信息需要进货管理模块中的采购收货、退货信息,销售管理模块中的销售订单、开单、退货信息,以及库存管理模块中的进货、退货信息。在GSP模块中同样需要进货管理、销售管理、和库存管理模块的信息来实现GSP管理规定的信息。这些信息交流使得各个模块之间密切的联系,系统能够正常的运行,完成各种功能,模块间的关系图如图3-2所示。图3-2.模块间的关系图3.2.1 基本信息模块功能设计在基本信息模块中主要完成的功能有用户信息的管理,药店部门信息的管理以及供应商厂家的信息管理,药品的各种信息的管理都可以在基本信息模块中实现。其中在用户信息管理中还包括角色管理,权限管理以及用户基本信息的管理和密码的修改,这些功能中是管理员权限的相关操作,基本信息管理模块如图3-3所示。基本信息管理模块用户信息供应商信息理厂家信息药品信息部门信息储藏条件管理养护方式信息角色管理权限管理修改密码修改资料图3-3.基本信息管理模块3.2.2采购管理模块功能设计药店的进货信息必须得到合理的管理,包括进货管理和退货管理两部分功能,进货管理模块功能如图3-4所示。采购管理模块采购收货采购退货 销售管理模块销售开单销售退单销售订单图3-4.进货管理模块图 3-5.销售管理模块3.2.3 销售管理模块功能设计通过需求分析可以清楚地得知药店的销售管理模块应具备的功能,销售管理模块功能如图3-5所示。 3.2.4 库存管理模块功能设计进货管理模块是库存人员主要负责的,应该实现的功能有出入库记录管理,药品报损和药品养护信息的查询,以及药品下限和库存警报信息的管理,.库存管理模块是其功能模块如图3-6所示。库存管理模块出入库记录单药品报损药品养护药品下限库存警报图3-6.库存管理模块3.2.5财务管理模块功能设计管理员可以通过财务管理模块进行查询一段时期的销售额,同时收银员可以进行直接开单,以及支出进货开单的功能。因此财务管理模块包括了收款、付款管理功能,客户账单查询和供应商账单查询功能,财务管理功能如图3-7所示。财务管理模块收款管理付款管理客户账单查询供应商账单查询图3-7.财务管理模块3.2.6 GSP模块功能设计GSP管理模块主要是实现根据GSP管理规范可以对药品的单独设置了GSP管理模块,GSP管理模块如图3-8所示。GSP管理模块药品采购记录药品购进退货记录药品验收记录药品销售记录药品订单记录药品销售订单记录药品养护记录图3-8.GSP管理模块3.2.7 报表中心模块功能设计 为了方便对一些报表查询统计专门设置了报表中心模块,主要有销售开单报表,销售订单报表,销售退单报表,进货入库报表,进货退货报表,药品养护报表,库存报表,付款单报表,收款单报表,报表中心模块如图3-9所示。报表中心模块销售开单报表销售订单报表销售退单报表采购入库报表采购退货报表药品养护报表库存报表付款单报表收款单报表图3-9.报表中心模块3.2.8 系统维护模块功能设计系统数据库的备份以及服务器的设置都需要管理人员进行管理设置,因此该模块主要完成度功能有数据库备份,选项,服务器设置功能,系统维护模块如图3-10所示。系统维护模块数据库备份选项管理服务器设置图3-10:系统维护模块3.3 数据库总体设计3.3.1 表的设计通过需求分析,可以得知药品、供应商、药店人员的信息必须进行保存更新,采购数据、销售管理数据、库存数据都需要更新,一些数据彼此之间也要进行交互。因此数据库的设计尤为重要。在基本信息模块中药品的相关信息数据需要保存,因此设计Usr_Medicine表来存储药品的基本信息,Usr_Water表存储药品剂型信息,Usr_Type表存储药品类型信息,Usr_Attribute表来记录药品的属性信息,Usr_Matain表来记录药品的养护信息,以及Usr_MatainRecord 表来记录药品的养护记录,Usr_Storage表来记录药品的存储条件信息,以及Usr_Unit来设计药品的基本单位信息。用户模块记录用户的基本信息、角色信息及权限。在数据库设计Usr_User表来记录用户的基本信息,同时设计Usr_Role表和Usr_RoleTask表来记录用户的角色信息进而管理不同用户的权限。供应商、厂家的基本信息需要随时的更新,在数据库中设置Usr_Factory和Usr_Supply表用来存储供应商、厂家的基本信息。用户的部门信息需要进行记录修改等操作因此设计Usr_Department表,为了统计客户的来源,此时需要设计表Usr_Coustom进行储存。在采购管理模块中有收货和退货功能,因此药品的数量信息必须得到保存此时应该有药品的基本信息表和Usr_Mainbase表、Usr_Price、Usr_BaseLower和Usr_In表。Usr_Mainbase用来记录库存中药品的数量信息,Usr_Price用来记录药品的价格信息,Usr_BaseLower表可以记录库存下限信息,Usr_In记录购入的药品的相关信息。销售管理模块中有销售订单、开单、退单三种基本的功能,Usr_Sale表、Usr_SaleDetail表、Usr_SaleD表、Usr_SaleDDetail表、Usr_SaleT表、Usr_SaleTDetail表,分别表示了用户销售的具体信息和销售单的具体信息。库存管理模块可以完成出入库的记录、药品的养护、药品报损、药品下限和库存下限功能,经过Usr_Base表、Usr_BaseInOut表、Usr_Lower表分别记录仓库的基本信息,药品的出入库信息和仓库的最低下线的数据信息。财务管理模块中可以完成收款、付款,客户账单查询和供应商账单查询功能,完成这些功能需要查询药品的基本信息和供应商、客户的基本信息因此要使用Usr_In和Usr_Supply表、Usr_Sale表Usr_Costom表。GSP管理模块和报表中心模块需要查询一些药品的信息和供应商、客户和一些库存的信息,此时要用到其他模块中的数据信息。3.3.2 E-R图ER图可以来描述静态数据结构:实体、联系、实体和联系的属性。下图3-11是图形符号表示。图3-11.图形符号E-R图E-R图可以来描述静态数据结构:实体、联系、实体和联系的属性。本系统包括了收银员、销售员、库存员、管理员、药品、库存等实体。各种实体之间存在可以通过包含、存储、销售等方式实现实体之间的联系。下图3-11为实体E-R图。图3-12.实体E-R图把概念结构设计转化为逻辑结构设计,药品信息实体属性包括编号、药品名称、药品简称、英文名称、药品通用名称、厂家、规格、处方类型、药品属性、储藏条件、养护方式、药品剂型、药品类型、药品分类、基本单位、产地,如下图3-12是药品信息实体图所示。图3-13.药品信息实体属性药品属性实体包括属性编号、属性名称、属性描述,下图3-13是药品属性实体图。图3-14.药品属性实体图管理员实体属性包括用户名、密码、角色、姓名、性别、年龄、职位、地址、办公室电话、家庭电话、手机、电子邮件下图3-14是管理员实体图。图3-15.管理员实体图由于实体较多就不一一列出,只将其中较为代表的属性列出。第四章 系统详细设计4.1 模块功能代码实现4.1.1 基本功能模块代码实现基本功能模块主要完成的是对药品基本信息的存储、更新功能,以及对用户信息的管理。药品信息的存储功能实现主要是通过Save()函数实现的,用户选择更新和添加时会自动调用此函数,以下是Save()主要的代码部分。if(Action=Add)string strSql=insert into Usr_Medicine(MedicineId,ChineseName,EnglishName,ShortName,CommandName,Spec,Pre,Attribute,Water,Type,Sort,Unit,Area,Factory,IsDelete,Remark,Maintain,Storage) values(+ this.txtMedicineNo.Text.Trim().ToString() +,+ this.txtChName.Text.ToString() +,+ this.txtEnName.Text.Trim().ToString() +,+ this.txtShortName.Text.Trim().ToString() +,+ this.txtCommandName.Text.Trim().ToString()+,+ this.txtSpec.Text.Trim().ToString() +,+ this.cboPre.Text.Trim().ToString() +,+ this.cboAttribute.Text.Trim().ToString() +,+ this.cboWater.Text.Trim().ToString() +,+ this.cboType.Text.Trim().ToString() +,+ this.cboSort.Text.Trim().ToString() +,+ this.cboUnit.Text.Trim().ToString() +,+ this.cboPlace.Text.Trim().ToString() +,+ this.txtFactory.Text.Trim().ToString() +,0,+ this.txtRemark.Text.Trim().ToString() +,+ this.cboMaintain.Text.Trim().ToString() +,+ this.cboStorage.Text.Trim().ToString() +);DB.ExecNonSql(strSql);MessageBox.Show(“数据添加成功”,”系统提示” , System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Information;用户选择更新时同样可以用以上代码进行实现,查询功能可以实现模糊查询,可以记录各个控件输入的信息,然后通过查询数据库,最后通过调用ShowData()函数来实现查询显示结果功能。用户的管理主要实现用户基本信息和角色、权限管理功能,在信息的添加、更新时先判断用户是否存在然后在将用户信息存入数据库中,删除用户可以直接调用相关函数直接删除数据库中相应数据。4.1.2 采购管理模块代码实现该模块主要完成采购收获、采购退货的记录功能,该功能的实现主要是通过查询供应商和药品信息后然后通过用户的选择在将采购收货、退货信息保存到数据库中。查询供应商和药品信息功能是通过调用药品基本信息查询信息、供应商信息中的查询功能实现的,用户选择保存和打印采购信息的实现是通过调用Save()函数、Print()函数实现的。Save()函数的实现首先是判断一些必须输入的信息是否为空,然后在将输入的信息(可能是多条信息)进行保存,以下是保存数据的主要代码。sendSQL=insert into Usr_In(InId,CoustomId,InDate,PayType,CheckMan,CheckResult,Amount,Money,Operator,State,Remark) values(+ this.GetInId().Trim()+,+ this.cboSupply.Text.Trim() +, + DateTime.Parse(this.txtDate.Text) + ,+ this.cboPayType.Text.Trim() +,+ this.txtCheckMan.Text.Trim() +,+ this.cboCheck.Text.Trim() +,+ Convert.ToDecimal(this.sbCount.Text.Trim() +,+ Convert.ToDecimal(this.sbSum.Text.Trim() +,+ this.sbUser.Text.Trim() +,1,+ this.txtRemark.Text.Trim() +);DB.ExecNonSql(sendSQL);MessageBox.Show(操作已经成功,收货单:【+ this.GetInId().Trim() +】已经保存!,系统提示,System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Information);4.1.3 销售管理模块代码实现销售管理模块主要实现销售开单、订单、退单的功能,这些功能的实现基本是类似的都是先进行客户信息、药品信息然后记录购买药品数量金额等信息,最后将这些数据存入数据库。销售订单的实现是先判断药品以及客户的必要信息是否成功填入,然后调用Save()函数来实现保存,同时可以调用Print()函数来实现打印功能,打印功能的实现首先是设置打印的一些基本参数,然后调用系统函数进行打印,以下是打印函数实现的主要代码部分。misGoldPrinter.DocumentName=报表中心;Title title = new Title();title.Text = cs.csConst.strPrintSaleCaption;misGoldPrinter.Title = title;if (print)misGoldPrinter.Print();elsemisGoldPrinter.Preview();4.1.4 库存管理模块代码实现库存管理模块实现的功能是实现对药品出入库记录、药品的库存下限提醒、药品的养护方式查询、药品报损以及根据销售信息更新库存信息等功能。实现药品的出入库记录主要是查询功能,通过查询Usr_BaseInOut表中的数据,将查到的结果显示并且可以保存。库存下限功能实现是通过查询药品的下限表将与用户规定的期限的药品显示出来,药品的养护方式、药品报损也是采取同样的方法实现的。更新库存信息功能是根据销售的单据进行更新操作的,首先通过查询销售信息然后通过调用数据更新函数frmBaseManageMent_Load(),以下是数据更新函数的主要代码。TrysendSQL=SELECT Usr_Gathing.GathingId, Usr_Sale.SaleId, Usr_Coustom.ChineseName,Usr_Gathing.Amount, Usr_Gathing.Money, Usr_Gathing.PayType,Usr_Gathing.Remark FROM Usr_Gathing INNER JOIN Usr_Sale ON Usr_Gathing.BillNo = Usr_Sale.SaleId INNER JOIN Usr_Coustom ON Usr_Gathing.CoustomId = Usr_Coustom.CoustomId where state=2;this.setDataSaleList(sendSQL);上述代码主要是更新销售开单信息,将库存中的药品信息进行更新。4.1.5 财务管理模块代码实现财务管理模块主要是实现付款单、收款单、客户、供应商账单查询、打印功能,付款单显示采购付款、退货付款、欠账付款相关信息,收款单显示开单收款、订单收款、进货退货收款相关信息。客户账单查询可以查询某段时间的所有的销售情况,供应商账单显示一段时间进货的情况。付款单中可以选择不同的供应商和客户的信息来查询需要付款的信息,可以将数据进行保存和打印。sendSQL=insert into Usr_Pay(PayId,CoustomId,GathingType,BillNo,PayType,Amount,Money,Remark) values(+ this.GetPayId().Trim() +,+ this.cboCoustom.Text.Trim() +,+ strGathingType.Trim() +,+ this.txtBillNo.Text.Trim() +,+ this.cboPayType.Text.Trim() +,+ this.txtAmount.Text.Trim() +,+ this.txtMoney.Text.Trim() +,+ this.txtRemark.Text.Trim() +);cs.DBController DB=new cs.DBController();DB.ExecNonSql(sendSQL);if(this.rdoBill.Checked=true)sendSQL=update Usr_In set State=2 where InId=+ this.txtBillNo.Text.Trim() +;else if(this.rdoBill1.Checked=true)sendSQL=update Usr_SaleT set State=2 where SaleTId=+ this.txtBillNo.Text.Trim() +;DB.ExecNonSql(sendSQL);收款单采用同样的思路进行设计,完成其功能。供应商账单查询功能的实现根据采购开单和采购订单的不同查询数据库信息然后将查询信息显示,下面是其中的一些关键代码。if (this.txtCoustom.Text.Trim()=)sendSQL=SELECT InId AS 进货单号, CoustomId AS 供应商编号, PayType AS 付款类型,Amount AS 数量, Money AS 金额, Remark AS 备注FROM Usr_In where Indate=+ DateTime.Parse(this.dtpFrom.Value.ToString() + and Indate0)this.sbIn.Text=ds.Tables0.Compute(Sum(金额),).ToString();sendSQL=SELECT IntId AS 退货单号, CoustomId AS 供应商编号, PayType AS 付款类型,Amount AS 数量, Money AS 金额, Remark AS 备注FROM Usr_InT where InTdate=+ DateTime.Parse(this.dtpFrom.Value.ToString() + and InTdate0)this.sbInT.Text=ds.Tables0.Compute(Sum(金额),).ToString();客户账单查询也是采用同样的思路完成的,因而代码相似,不在列出。4.1.6 GSP模块及报表中心模块代码实现此模块实现GSP规定下的一些必要的信息的保存和查询功能,报表中心模块的相关报表主要是打印进货、销售、库存的相应报表信息,所有报表、记录表都是采用同样的思路实现,根据需求不同查询相关的信息后将其显示。因此他们下面是药品验收记录表的关键代码。string sendSQL;sendSQL=SELECT Usr_In.InId AS 采购单号, Usr_Medicine.ChineseName AS 药品名称,Usr_InDetail.LicenceNo AS 批号, Usr_InDetail.Price AS 价格,Usr_InDetail.Amount AS 数量, Usr_InDetail.Money AS 金额,Usr_In.CheckMan as 验货员 FROM Usr_In INNER JOIN Usr_InDetail ON Usr_In.InId = Usr_InDetail.InId INNER JOIN Usr_Medicine ON Usr_InDetail.MedicineId = Usr_Medicine.MedicineId where InDate=+ this.dtpFrom.Value +and InDate0)intCount=Convert.ToDecimal(ds.Tables0.Compute(Sum(数量),);intMoney=Convert.ToDecimal(ds.Tables0.Compute(Sum(金额),);this.sbUser.Text=cs.csConst.LoginUser;4.1.7 系统维护模块代码实现系统维护模块主要完成了数据的备份功能以及服务器的设置,下面是数据备份中的关键代码。this.Cursor=Cursors.WaitCursor;DBBackup.DbBackup(txtDBServer.Text,txtUserName.Text,txtPwd.Text,txtPath.Text);this.Cursor=Cursors.Default;MessageBox.Show(数据库备份成功!);代码中的DbBackup()函数是DBBackup类中的方法,用来备份数据。4.2 数据库详细设计本系统中数据信息、数据库中表的数量较多,因此以下介绍的是本系统中部分表,Usr_Medicine表来存储药品的基本信息,此表基本信息如表3-1所示。Usr_Medicine序号字段名类型长度索引备注1MedicineIdchar8P不能重复2ChineseNameVarchar503EnglishNameVarchar504ShortNameVarchar305CommandNameVarchar506SpecVarchar507PreVarchar508AttribureVarchar50关联药品属性9WaterVarchar50关联药品剂型10TypeVarchar50关联药品类型11SortVarchar50关联药品种类12UnitVarchar30关联药品单位13AreaVarchar5014FactoryVarchar5015IsDeletechar216RemarkVarchar20017MatainVarchar50关联养护方式18StorageVarchar50关联储存方式表3-1.药品基本信息在用户管理中用户的信息是非常重要的包括了角色、密码和其它基本信息,如3-2表是用户信息基本表。Usr_User序号字段名类型长度索引备注1UserNameVarchar20P不能重复2PasswordVarchar503Rolechar2关联角色4NameVarchar205Sexchar26Ageint47PostVarchar208DepartMentVarchar30关联部门9TelMobileVarchar1110TelOfficeVarchar1511TelHomeVarchar1512EmailVarchar5013AddressVarchar10014RemarkVarchar20015IsLoginVarchar1表3-2.用户基本信息采购管理模块中采购信息记录采购药品信息和采购的数量等信息,方便仓库员和管理员进行查询信息,下表3-3是采购收获信息表。Usr_In序号字段名类型长度索引备注1InIdchar22P不能重复2CoustomIdchar6不能重复3InDatedatetime284PayTypechar45CheckManVarchar306CheckResultchar67Amountdecimal98Moneydecimal99OperatorVarchar3010Statechar111RemarkVarchar200表3-3.采购收货信息销售管理模块中销售订单、开单、退单中的数据需要进行存储,方便管理员对药品的销售情况进行统计,同时使得药品销售透明化、规范化,下表3-4是销售开单信息表。Usr_SaleDetail序号字段名类型长度索引备注1SaleIdchar22P不能重复2MedicineIdchar8不能重复3LicenceeNodatetime30不能重复4Pricechar95Amountdecimal96Moneydecimal9表3-4.销售开单信息库存管理模块中需要记录药品存储的位置信息,下表3-5库存药品信息。Usr_Base序号字段名类型长度索引备注1BaseIdint4P不能重复2NameVarchar503LocationVarchar1004RemarkVarchar2005IsDeletechar1表3-5.库存药品信息财务管理模块可以进行收款、付款的处理查询功能,收款的相关数据要保存以便管理员对财务状况及时了解,下表3-6收款信息。Usr_Gathing序号字段名类型长度索引备注1GathingIdchar23P不能重复2GathingDatedatetime83CoustomIdchar6不能重复4GathingTypeVarchar205BillNochar236PayTypeVarchar207Amountdecimal98Moneydecimal99RemarkVarchar200表3-6.收款信息4.3 人机界面设计4.3.1 登陆界面用户在使用系统时有登陆界面,本系统的设计师通过简单地对话框实现的,不同的用户可以通过自己的用户名、密码登陆,若不记得登陆密码时则可以选择取消按钮,下图4-1是登陆界面。图4-1.登陆界面4.3.2 药品信息管理界面管理员以及销售人员可以对药品的基本信息进行修改查询操作,下图4-2是药品基本信息界面。4-2.药品基本信息界面4.3.3 采购进货管理界面在采购管理模块中采购进货可以记录进货的相关信息,若需要还可以打印、导出数据,实现进货管理透明化,下图4-3是采购进货管理界面。图4-3.采购进货管理界面4.3.4 销售订单界面销售管理模块中实现了销售订单、开单、退货的功能,订单主要是记录了相关药品信息、客户信息,下图4-4是销售订单运行界面。图4-4.销售订单界面4.3.5 客户账单查询财务管理模块要对销售信息管理,因此客户账单查询非常重要,可以通过账单的查询反应销售状况,下图4-5是客户账单查询界面。图4-5.客户账单查询界面4.3.6 进货入库报表报表打印可以保证药品的质量,同时可以作为药店销售信息的凭据,进货入库报表可以记录入货的单号及药品和供应商信息,下图4-6是进货入库报表界面。图4-6.进货入库报表界面第五章 系统测试5.1 测试的概述5.1.1 测试的概念及意义测试(Testing)的定义:程序测试是为了发现错误而执行程序的过程。测试的任务与目的可以描述为:目的:发现程序的错误。任务:通过在计算机上执行程序,暴露程序中潜在的错误。另一个预测是相关的术语叫纠错(Debugging)。它的目的与任务可以规定为:目的:定位和纠正错误;任务:消除软件故障,保证程序的可靠运行。测试与纠错的关系,可以用图6-1的数据流图来说明。图中表明,每一次测试都要准备好若干必要的测试数据,与被测试程序一道送入计算机执行。通常把一次程序执行需要的测试数据,称为一个“测试用例(Test Case)。每一个测试用例产生一个相应的“测试结果”。如果它与“期望结果”不想符合,便说明程序中存在错误,需要用纠错来改正。测试评价纠错 程序测试数据 测试结果 错误信息 改正信息 期望结果图6.1 测试与纠错信息流程软
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!