医药进销存管理系统.docx
- 文档编号:25199807
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:25
- 大小:285.13KB
医药进销存管理系统.docx
《医药进销存管理系统.docx》由会员分享,可在线阅读,更多相关《医药进销存管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
医药进销存管理系统
1引言
现在的主要经营企业需要利用现代信息技术来使企业能够拥有高效,快速的市场反应。
这样才能在第一时间内改变经营的策略,特别是一些私营企业,在日益增长的竞争中存活下来。
所以就要建立一个功能齐备的医药进销存管理系统。
这样可以进行很好的订单管理,药品信息管理,出货记录管理,库存状况管理。
通过开发这个药品管理系统可以使药品进销存管理工作系统化,规范化,自动化,从而达到提高管理效率的目的。
对于这给系统我们要采用现有的软硬件环境和先进的开发方案,这样开发出来的系统才会具有可行性和较长时间的存活能力。
这个系统不仅要满足日益增长的管理需求,还要达到操作过程中的直观,方便,实用,安全等要求。
系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于以后没有参与技术开发的技术维护人员补充,维护;这个系统应具备数据库维护功能,及时根据用户需求进行数据的添加,删除,修改,补充等操作。
1.1项目设计的背景及意义
现在的计算机技术水平已经发展到了一个非常高的高度,计算机技术在对系统管理方面应用也越来越普及了,利用计算机实现各个系统的管理显得越来越重要。
在一些大中型管理部门来说,日常事务都需要通过利用计算机来高效率完成管理,这个现象是日常事务规范化的、适应现代管理制度要求的必要条件;而药店药品信息管理是一项麻烦、复杂而又十分细致、要紧的工作,药品的数量之庞大、药品单价的变化迅速、供应商的不同,一般不允许出较大的错误,如果实行手工记录操作,每天进货的情况和进货时间以及库存状况等等大量的表格需要手工填制,这肯定就会耗费药品管理的大量工作人员的时间和精力,这样下去医药管理的成本将会一直提高。
如果利用计算机技术进行这些管理工作,不仅可以保证各种核算准确无误、快速记录、药品信息明确,而且还可以利用计算机对各种有关医药的信息进行统计,帮助财务部门或其他方面的核算和财务处理,同时计算机技术具有手工管理所无法比的优点,比如:
查询迅速方便、数据可靠性高、数据存储量大、保密性好、使用寿命长、系统成本低等。
这些优点能够极大地提高药品信息管理的效率,也是管理行业的科学化、正规化管理,与世界接轨的重要条件。
出于以上的原因的考虑,有很多从事软件开发的人员,在药品管理方面做了很大的研究。
目前这一领域也以良好的发展姿态而不断进步,已经有了一些类似的管理系统,但经过软件开发人员不断的完善,大致的系统都具备了如下功能药店药库的药品进、销、存等业务,以及入库、出库和库存管理,药品信息管理主要管理药库中所有药品的进出和内部统计计算,为药品会计提供基础数据。
该内容主要是药品信息管理的库存管理、药品信息管理、订单管理和出库状况管理等模块的结合实现,使用C#技术加以实现。
通用此课题以及我们在以往学习SQL数据库的基础上,灵活运用C#和结构化查询语言SQLServer2005,开发出能供应使用的药品管理信息的系统。
应用所学的有关知识,更深入地学习MicrosoftVisualStudio2008平台和SQLServer2005数据库技术应用,将所学的书面知识和实际应用结合起来,以达到学以致用的目的。
1.2药品管理系统概述
药品进销存管理系统是针对药店的销售和库存而开发的。
使用药品进销存管理系统能够改变药店的工作方式,能够有效地提高服务的水平和销售的速度,能够提高客户对药店管理的满意度和信任度。
使用药品进销存管理系统,在销售药品时能够清晰明了,可以实现药店内部的现代化管理。
药品进销存管理系统充分使用计算机管理信息技术,建立数据库,对药品的进销存过程进行详细分析,实现了对药品的入库、出库、销售和库存的科学管理以及对药品信息的增、删、、补改操作。
该系统主要包括以下几大模块:
登陆模块、订单模块、药品信息模块、库存状况模块、出货记录模块和供应商管理模块等。
2相关技术
2.1开发应用技术简介
本药品管理系统为C/S结构,采用C#作为前台开发语言,因为C#必须执行在.NetFramework上,这也是其跨平台的基础。
C#在面向对象上比C和C++先进很多,所以复用性很高。
VisualStudio2008作为系统开发工具。
后台数据库采用SQLServer2005数据库,因为它的灵活性、安全性和易用性为数据库编程提供了良好的条件。
2.2运行环境
由于计算机发展迅速,为将来升级的考虑,这里所提供的硬件设备要比能够运行该系统所需要的最低硬件标准高出一些。
1软件环境:
操作系统采用WindowsXP或Windows2003以上;
开发工具:
VisualStudio2008;
后台数据库:
MicrosoftSQLServer2005;
2硬件环境:
CPU:
IntelPentium(R)4以上;内存:
512M;硬盘:
80G;网卡:
100M。
3系统需求分析
3.1需求分析
3.1.1用户需求
这个药店进销存管理系统是帮助用户完成日常繁重业务的工具。
借助计算机管理系统,使他们凌乱的工作变得井井有条,保证他们遵守规范,减轻他们在报告,统计,记录时出现的负担。
管理员登录以后可以很清晰的看到各种项目列表和可以实现的功能,订单功能就是进货的一种体现,通过订单和供应商达成一种协议;药品信息功能就是药品的管理与销售,一些新上架的药品可以被添加,一些过期的药品要删除,药品的售价,数量,供应商等等信息;库存状况功能就是药品在仓库里的管理过程;出货记录功能是记录了销售的过程,在销售完以后还存在一些售后服务的问题,以及可以记录下哪个药品畅销;供应商管理功能是可以增加新的供应商,与以前的供应商比较价格低廉的一方;新会员注册功能是给予新的会员,是他们拥有一些打折的特权;修改密码是给用户修改密码用的。
系统从普通用户的角度出发,使用C/S结构,对于页面的美观清晰也需要做一番苦功。
在登录及各个模块的功能做到最好的人性化和审美的结合。
面对医药行业的高速发展及其发展过程中出现的各种情况,医药门店进销存管理系统在实施后应能够达到以下目标:
1实现信息共享,相互之间信息传递准确、快捷、顺畅。
2全面自动化管理,可随时掌握药品的库存、销售等情况。
3能够快速、准确地处理药品进、销、存等多种业务模式。
4系统界面友好美观,数据存储安全可靠,查询灵活方便,操作简单易行。
5系统维护方便、安全、可靠,并且能够满足实用性。
先进性的要求。
3.1.2功能需求
登录功能模块:
由于是限定药店使用,登陆功能里有注册和修改密码设置。
用户登陆时得先将用户名和密码输入后才能够使登陆按钮有效,输入后会提示密码的对错。
如果密码正确,提示登录成功后直接进入系统;密码错误,则提示用户名或密码错误,要求重新输入。
订单管理功能模块:
第一是新建订单管理功能,订单单管理即是需要管理所有的订单,并以列表的形式显示出来;该功能要实现添加订单,完成药品入库,并在把入库信息显示出来,并能根据要求进行入库单修改或废除。
第二是删除订单管理功能,删除订单管理即是需要管理所有的采购退货信息,并以列表的形式显示出来;该功能要实现采购退货,完成药品采购退货,并在把退货信息显示出来,并能根据要求进行退货单修改或废除
药品信息管理模块:
第一是上架管理功能,管理员可以对上架的药品进行管理,在药品上架的时候把上架信息记录下来留作依据。
如果上架药品需要修改的,可以在上架单列表中把单子选中出来进行修改,甚至删除。
方便药品上架时的更改需要。
第二是下架管理功能,管理员可以对过期的药品进行管理,在药品过期的时候把过期信息记录下来留作依据。
如果下架架药品需要修改的,可以在下架单列表中把单子选中出来进行修改,甚至删除。
方便药品下架时的更改需要。
第三是药品信息查询统计,对药品上架信息按照选择的查询条件进行查询,而且能够按照统计条件进行统计并以直观的图形和列表形式显示。
库存管理模块:
第一是销售管理功能,销售管理即是需要管理所有的销售单,并以列表的形式显示出来;该功能要实现添加销售单,完成药品销售。
第二是药品销售查询统计,对药品销售信息按照选择的查询条件进行查询,并能够对查询得出的结果用表形式显示出来。
第三是药品过期查询统计,对药品信息按照选择的查询条件进行查询,并能够对查询得出的结果用报表形式显示出来,而且能够按照查询的条件对药品进行有选择的删除,比如过期的药品,功能不稳定的药品。
出货记录管理模块:
第一是查询模块,可以对销售过的药品做一个统计,能够较好的比较出哪个药品的销售量高,以后可以多与供应商交流要求加大该药的需求。
第二是订单模块,可以查询订单。
可以查询销售的药品是出自哪一张订单的,在订单中加大对供应商的订单的需求。
用户管理模块:
第一是用户注册,能够给想要注册的人一个非管理员的权限。
第二是更改密码,用户对现有密码更改,当输入现有密码后输入新密码就成功更改。
第三是编辑用户,管理员对所有用户信息进行增删改操作。
3.2用例图
普通用户用例图:
图3-1用户模块
管理员用例图:
图3-2管理员模块
4系统设计
4.1系统设计要求、目标
4.1.1要求
要求具有良好美观的人机界面。
由于该系统的使用的对象比较多,要求有较好的权限管理,分清普通用户还是管理员。
方便的数据的查询,支持多条件查询。
基础信息管理(包括药品编号信息、供应商信息等)。
通过计算机,能够直接“透视”库存状况。
完善的商品订单信息、药品销售信息进行管理。
当外界环境(停电、网络病毒)干扰本系统时,系统可以自动保护原始数据的安全。
数据计算自动完成,尽量减少人工干预。
系统退出。
4.1.2目标
药店进销存管理系统采用人机对话方式,系统界面美观友好、查询信息方式灵活、快捷、方便、准确、数据存储安全可靠。
实现各种查询,如多条件查询、模糊查询等。
管理员可以设置普通用户的权限。
对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
普通用户数据保密性强,为每个用户设置权限级别。
系统最大限度地实现了易安装性、易维护性和易操作性。
系统运行稳定、安全可靠。
4.2软件系统的整体结构
数字药店药品信息管理系统模块是用C#进行设计,SQLServer2008作为数据库管理系统。
系统管理模块分为用户管理员登录、药品信息管理、查询统计、库存管理和数据库管理,系统设置,用户管理;药品管理模块主要是药品订单,药品采购退货,药品上架,药品下架,药品销售,;药品查询统计模块主要有药品信息查询统计,仓库信息查询统计,供应商查询统计模块;数据库模块主要有数据压缩,数据备份,数据还原;;用户管理包括用户注册,更改密码,编辑用户信息。
4.3系统的处理流程
4.3.1系统功能模块图
图4-1 华岩药店系统功能模块图
4.4数据库设计
4.4.1实体图
在需求分析阶段已完成该系统所有的数据分析。
根据该阶段所建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。
实体是名词,在实体图中设计中就是所说的表。
比如“药品”,“库存”。
行为是动词,在实体图中设计时一般不考虑行为,它是业务逻辑,在详细设计才有设计,是方法。
比如“销售”,“进货”等等。
在设计实体图时时强调的是不同实体之间关系,不是行为。
比如:
药品"销售"库存,“转移”是一种关系,不是行为。
在某种情况下,“销售”是一个关系表,将“药品”和“库存”联系起来。
在找出实体后,我们要根据分析来定义实体的属性,就是表的列。
比如药品有ID,名称,进价,销价,简介等等;库存有ID,名称,数量等等。
“库存”可拥有0-MANY的“药品”,而药品同样属于0-MANY的库存。
所以是多对多的关系
根据以上的分析给出下面的概念结构设计得实体图。
1药品表包括供货商,药品ID,药品名,备注,类别,规格,产地,进价,售价,数量,单位几项如图4-2所示:
图4-2药品实体图
2药品库存表包括仓库名,药品编号,供应商编号,数量,零售价,药品名几项如图4-3所示:
图4-3库存实体图
4.4.2数据库表
数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。
如果程序运行过程中需要总金额,可以实时计算。
不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。
这就是所谓的第四范式。
数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。
表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。
另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成CHAR
(1)或BIT型。
建议实际应用中定义成CHAR
(1)字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的值来解决,这样就避免了修改数据库结构。
4.4.3药店E-R图
图4-4华岩药店管理系统E-R图
4.4.4数据库表的说明
药品进销存管理系统涉及到7个表,即:
药品信息表、药品入库表、药品出库表和库存表,药品下架表,药品销售表,药品销售退货表,柜台药品信息表。
药品信息表:
这张表是用来存储药品信息的。
药品添加以后它的信息就会储存到这张表中,其中包含:
药品编号、药品名字、交易时间、客户信息、进价、交易数量。
其中药品编号是主键,非空且唯一。
其余信息可以为空,并在数据表建立的时候给他们相应的规定好数据类型。
4.5物理设计
4.5.1用户信息表:
dbo_basket数据表结构如表4.1
表4.1管理员信息表
列名
数据类型
字段长度
字段含义
GuestIDInfo
Int
----
ID,用户编号
GuestName
varchar
50
用户名字
Sex
varchar
50
用户性别
Phone
varchar
50
用户电话
JoinTime
datetime
50
用户加入时间
4.5.2药品信息表:
dbo_hw数据表结构如表4.2
表4.2药品信息
列名
数据类型
字段长度
字段含义
ProductIDInfo
Int
----
药品ID,主键
ProductName
varchar
50
药品名字
AdddateTime
datetime
入库时间
ProviderName
varchar
50
供应商名字
MedicineOrExteri
varchar
50
服用方式
4.5.3供应商信息表:
dbo_provider数据表结构如表4.3
表4.3供应商信息表
列名
数据类型
字段长度
字段含义
ProviderID
Int
----
供应商ID,主键
ProviderName
varchar
50
供应商姓名
ProductName
varchar
50
供应的产品名字
JoinTime
datetime
供应商加入的时间
4.5.4药品出售信息表:
dbo_product数据表结构如表4.4
表4.4管理员信息表
字段名
字段类型
字段长度
字段含义
ProductIDInfo
Int
----
产品ID
ProductName
varchar
50
产品名字
JhDatetime
datetime
-----
产品入库时间
GuestInfo
varchar
50
客户信息
OrderContent
varchar
50
购买信息
4.5.5管理员信息表:
dbo_UserName数据表结构如表4.5
表4.5管理员信息表
字段名
字段类型
字段长度
字段含义
Username
Int
----
管理员名字
Userpwd
varchar
50
管理员密码
Ustate
datetime
-----
管理员权限
4.6功能流程图
图4-5华岩药店功能流程图
5系统实现
5.1系统实现
5.1.1用户登录
1用户登录模块如下:
程序启动后,首先进入系统欢迎界面出现的欢迎界面的作用仅仅是个欢迎窗口点击进入按钮就进入登陆窗口。
登陆界面验证操作员密码。
系统登陆模块主要实现如下功能:
(1)可选择操作员权限,支持鼠标和键盘操作。
(2)操作员和密码验证成功后,进入主界面。
(3)操作员错误或密码错误提醒并返回错误点。
(4)新用户能够选择用户注册选项,能够给注册用户一个用户权限。
(5)能够让用户在忘记密码时候,能够选择找回密码项,让用户能够以自己设置的问题来找回密码。
功能描述:
用户根据已知的用户名和密码登录系统,当选择用户时候会显示相应的权限,登陆后即拥有相应的操作权限,登录成后才能进行系列的药品管理、库存管理、入库及出库管理的操作。
系统登陆界面如图5-1所示:
图5-1登录界面图
(6)相关代码:
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
if(Validate())
{stringstate=this.cbUserType.Text;
if(state.Equals("管理员"))
num=2;
else
num=1;
//定义查询语句
stringsql=string.Format("select*fromUserNamewhereUsername='{0}'andUserpwd='{1}'andUstate={2}",this.txtUsername.Text.Trim(),this.txtUserpwd.Text.Trim(),num);
DataSetds=sqlhelper.GetDataSetBySql(sql);
if(ds.Tables[0].Rows.Count>0)
{
MessageBox.Show("登陆成功");
mainForm.result=DialogResult.OK;
this.Close();
}
else
MessageBox.Show("用户名或密码错误,请重新输入");
}
首先设置一些全局变量的值,如用户名,密码等,再通过连接数据库验证数据库的值与输入的值是否相同。
在这个代码中先有一个if-else语句,这是用来判断是普通用户登录,还是管理员登录。
然后设计一个查询语句,判断用户名与密码是否相同。
5.1.2主窗口
登录系统后进入药品进销存管理系统主窗口,登陆窗口用户选择的角色和用户名登陆的系统时间和系统时间会显示在主窗口的底部,主窗口是各种操作项的主操作界面,程序会根据登陆的用户权限分配给用户相应的权限操作范围,包括
(1)仓库管理员只分配给订单、药品信息、库存状况、出货记录、供应商管理、新会员注册、修改密码、其他的操作都是禁用的。
(2)用户只分配给订单、药品信息、库存状况、出货记录、、修改密码、其他的操作都是禁用的。
图5-2药品进销存系统主窗口界面图
5.1.3药品信息
选择药品入库管理模块的入库管理,用于管理员管理药店的药品订单业务,其主要功能是完成药店药品信息的添加及查询。
工作流程是:
管理员通过查看药店的药品的销售状况和对库存进行盘点,对库存不足的药店的药品进行采购,并下达采购信息,指派给相对应的采购员去完成,采购员则接受药店的药品的命令,去厂家采购药品,并验收入库,还要对药店的药品的采购记录进行详细记录。
为了方便,加入了准确查询和模糊查询。
功能说明:
本模块是药店的进货业务模块,是药品的采购人员完成采购业务。
性能:
本系统中进货包括供应商信息维护,查看库存和缺货状况(其中缺货单是由药品仓储部门根据出库单及库存状况编制的),并根据库存和缺货状况编制采购订单,待采购人员将采购订单交由供应商正式进行采购后,编制收货通知单并交给药品仓储部门可以进入添加新的药品信息,对药品必填的信息必须写入,然后会弹出窗口提示添加成功;并可以在药品列表中查看到对于不符合的也可以在列表中进行修改或者直接删除。
输入:
药品型号,药品名称,交易时间,客户名,入库日期
保存:
进货单。
算法:
本模块采用可视化语言开发,与SQL系统相结合,数据查询部分利用SQL语言中的查询优化技术
图5-3药品信息图
图5-4药品过期提示图
相关代码:
privatevoidbutton1_Click(objectsender,EventArgse)
{//遍历所有产品,检查是否为过期,并提示!
!
stringsql="selectUserfulLifefromhw";
DateTimes=System.DateTime.Now;
DataTabledt=sqlhelper.GetDataTableBySql(sql);
try
{foreach(DataRowColindt.Rows)
{DateTimes2=Convert.ToDateTime(Col[0].ToString());
DateTime.Compare(s,s2);
if(s>s2)
{this.textBox3.Text="已有产品过期,请检查!
!
";
}
else
{this.textBox3.Text="没有过期产品!
!
";
}
这是一个对产品是否过期的一个判断,先通过“stringsql="selectUserfulLifefromhw";”语句遍历所有的产品,然后通过DateTimes=System.DateTime.Now;看他们的入库时间和他们对应的保质期。
如果现在的时间减去他们的生产日期小于它们的保质期的话,就会提示"已有产品过期,请检查!
!
"。
当发现有过期产品的时候可以对它进行删除操作。
5.1.4供应商管理
选择药品管理模块的药品供应商功能可以增加新的供应商,对商家,药品,交易时间必填的信息必须写入,然后点击保存;并可以在药品列表中查看到对于不符合的也可以在列表中进行修改或者直接删。
功能:
增加新的供应商,删除过期的供应商
图5-5新增供应商图
相关代码:
intindex=this.dataGridView1.CurrentCell.RowIndex;
providerName=Convert.ToString(this.dataGridView1.Rows[index].Cells[0].Value.ToString().Trim());productName=this.dataGridView1.Rows[index].Cells[1].Value.ToString().Trim();
joinTime=Convert.ToDateTime(this.dataGridView1.Rows[index].Cells[2].Value.ToString().Trim());
先是同过dataGridView1得到当前行,然后将得到的当前行的第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 医药 进销存 管理 系统