ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:88.04KB ,
资源ID:7921782      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7921782.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(医药店库存管理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

医药店库存管理.docx

1、医药店库存管理一需求分析医院的药房是医院里面一个很繁忙的科室,每天有很多的病人要从药房拿药取药,又不断有药品补充进去,每天药品的流量是很大的。如果只用人工的方法去统计是不可能的,这样会大大影响到医生护士对病人的治疗。为了解决这个矛盾,实现科学化、现代化的医院药房管理,我们就必须设计开发药房管理信息系统,并用于实践。而医药管理系统是对医药信息进行管理的计算机网络软件系统,它可完成医院中各类药品信息的收集、存储、使用,是融合了医院的管理思想、各部门的业务经验,以及对计算机技术的恰当运用的软件开发成果。在医疗卫生领域,信息化概念的引入,尤其是医院信息系统的应用,大大改变了医院的管理模式和工作流程,对

2、提高医院的管理水平、质量效益、经济效益、社会效益起到了巨大地促进作用。目前医药管理系统地应用已成为医院管理地重要工具和手段,它的引入有助于改变传统的工作方式,提高工作效率;提高经济效益;加强过程控制,提高医药管理质量;提高医院信誉,增强竞争能力;实现卫生资源共享;强化医院的科学管理。主要有四个功能:(1)用户信息管理功能。该功能模块可以实现系统用户对自己基本信息的修改和建立新用户,新用户分为超级用户、用户管理员、入库管理员、出库管理员、库存管理员等。 (2) 药品入库信息管理功能。该功能模块是实现对即将入库的药品的统计,由于药品信息的庞大、复杂,在入库前需要对其进行详细地记录管理,为药品的库存

3、管理打下良好的基础。需要记录的内容有:入库药品的名称、类型、价格、数量、采购员、验收员、生产厂商、产地、入库时间等。同时能够实现对药品入库信息的添加、修改、删除和查询功能(3)药品出库信息管理功能。该功能模块是把要出库的药品从药房中取出来,并对库存药品进行相应的记录管理,并且把病人取出的药品清单信息打印下来给病人做凭证。需要记录的内容有:出库药品的名称、类型、出库价格、数量、病人姓名、出库时间等,同时能够实现对药品出库信息的添加、修改、删除和查询功能。(4)药品库存信息管理功能。该功能模块是把要入库的药品存入药房中,并对库存药品进行统计管理,主要入库信息来源于(2)中的药品入库信息记录。需要记

4、录的内容有:库存药品的名称、类型、入库价格、出库价格、库存量、入库时间、有效期等,同时能够实现对药品库存信息的添加、修改、删除和查询功能。在药品出库后,在表中能够同时删除相应的药品的数量。二概要设计1. 以下便是本系统的E-R图表示:图 2-1 库存管理系统E-R图图 2-2 用户管理系统E-R图图 2-3 入库管理系统E-R图图 2-4 药品管理系统E-R图图 2-5 出库管理系统E-R图2.具体存储结构图如下列表所示:表2-1 operator表字段名称标识名称数据类型字段说明id自动编号主码UserName管理员帐号文本UserPwd账号密码文本Class用户类型数字表2-2 input

5、_detail表字段名称标识名称数据类型空否字段说明id自动编号N主码code明细编号文本Nnumber批次文本Nname药品名称文本Ntype药品种类文本Nunit计量单位文本Nmade_date药品出厂日期日期/时间Nuseless_date药品过期日期日期/时间Ninput_date进货日期日期/时间Ninput_com进货公司文本Nprice药品单价货币Ncount药品数量数字Ntotal药品总金额货币N表2-3 store表字段名称标识名称数据类型空否字段说明id自动编号主码code药品编号文本Nnumber批次编号文本Nname药品名称文本Ntype药品种类文本Nmade_date

6、生产日期日期/时间Nuseless_date过期日期日期/时间Nunit计量单位文本Nprice药品单价数字Nprice药品数量数字N表4-4 out表字段名称标识名称数据类型空否字段说明id自动编号N主码code编号文本Noperator出库操作员文本Noutput_date出库日期日期/时间Nname出库药品名文本Ntype出库药品种类文本Nprice出库价格数字Ncount出库数量数字isOut是否出库是/否brief备注文本N三详细设计1.unit uInput;interfaceuses Windows, Messages, SysUtils, Variants, Classes,

7、Graphics, Controls, Forms, Dialogs, DB, ADODB, Grids, DBGrids, Buttons, StdCtrls;type TfrmInput = class(TForm) ADOQuery1: TADOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; DBGrid2: TDBGrid; ADOQuery2: TADOQuery; DataSource2: TDataSource; btnInputTotal: TSpeedButton; btnDelInputTotal: TSpeedButt

8、on; btnAddDetail: TSpeedButton; btnDelDetail: TSpeedButton; btnUpdateDetail: TSpeedButton; btnQuit: TSpeedButton; btnInput: TSpeedButton; Label1: TLabel; Label2: TLabel; procedure btnInputTotalClick(Sender: TObject); procedure btnAddDetailClick(Sender: TObject); procedure FormCreate(Sender: TObject)

9、; procedure btnDelInputTotalClick(Sender: TObject); procedure ADOQuery1RecordChangeComplete(DataSet: TCustomADODataSet; const Reason: TEventReason; const RecordCount: Integer; const Error: Error; var EventStatus: TEventStatus); procedure DBGrid1CellClick(Column: TColumn); procedure btnUpdateDetailCl

10、ick(Sender: TObject); procedure btnQuitClick(Sender: TObject); procedure btnDelDetailClick(Sender: TObject); procedure ADOQuery2RecordChangeComplete(DataSet: TCustomADODataSet; const Reason: TEventReason; const RecordCount: Integer; const Error: Error; var EventStatus: TEventStatus); procedure ADOQu

11、ery2AfterOpen(DataSet: TDataSet); procedure btnInputClick(Sender: TObject); private Private declarations public Public declarations end;var frmInput: TfrmInput;implementationuses udb, uInputDetail, uInputList;$R *.dfmprocedure TfrmInput.btnInputTotalClick(Sender: TObject);begin ADOQuery1.Append; if

12、frmInputList = nil then frmInputList := TfrmInputList.Create(nil); frmInputList.ShowModal ;end;procedure TfrmInput.btnAddDetailClick(Sender: TObject);begin if ADOQuery1.FieldByName(isInput).AsBoolean = true then begin MessageBox(handle, 该批次药品已经入库,不能再添加药品。请重新填写入库单!, 提示, MB_ICONINFORMATION ); exit; en

13、d; ADOQuery2.Append; if frmInputDetail = nil then frmInputDetail := TfrmInputDetail.Create(nil); frmInputDetail.ShowModal ;end;procedure TfrmInput.FormCreate(Sender: TObject);var strValue:string;begin ADOQuery1.Active:=true; if ADOQuery1.RecordCount=0 then begin btnDelInputTotal.Enabled:=false; btnA

14、ddDetail.Enabled:=false; end else begin btnDelInputTotal.Enabled:=true; btnAddDetail.Enabled:=true; end; strValue:= frmInput.ADOQuery1.FieldByName(number).AsString; ADOQuery2.Close; ADOQuery2.sql.Clear; ADOQuery2.SQL.Add(select * from input_detail where number=:number); ADOQuery2.Parameters.ParamByN

15、ame(number).Value := strValue; ADOQuery2.open;end;procedure TfrmInput.btnDelInputTotalClick(Sender: TObject);begin if MessageBox(handle, 真的要删除此记录么?, 提示, mb_IconQuestion + mb_OkCancel) = idOk then ADOQuery1.Delete; if ADOQuery1.RecordCount=0 then begin btnDelInputTotal.Enabled:=false; btnAddDetail.En

16、abled:=false; end;end;procedure TfrmInput.ADOQuery1RecordChangeComplete( DataSet: TCustomADODataSet; const Reason: TEventReason; const RecordCount: Integer; const Error: Error; var EventStatus: TEventStatus);var strValue:string;begin strValue:= frmInput.ADOQuery1.FieldByName(number).AsString; ADOQue

17、ry2.Close; ADOQuery2.sql.Clear; ADOQuery2.SQL.Add(select * from input_detail where number=:number); ADOQuery2.Parameters.ParamByName(number).Value := strValue; ADOQuery2.open;end;procedure TfrmInput.DBGrid1CellClick(Column: TColumn);var strValue:string;begin strValue:= frmInput.ADOQuery1.FieldByName

18、(number).AsString; if ADOQuery1.RecordCount=0 then begin btnDelInputTotal.Enabled:=false; btnAddDetail.Enabled:=false; end else begin btnDelInputTotal.Enabled:=true; btnAddDetail.Enabled:=true; end; ADOQuery2.Close; ADOQuery2.sql.Clear; ADOQuery2.SQL.Add(select * from input_detail where number=:numb

19、er); ADOQuery2.Parameters.ParamByName(number).Value := strValue; ADOQuery2.open;end; procedure TfrmInput.btnUpdateDetailClick(Sender: TObject);begin if ADOQuery1.FieldByName(isInput).AsBoolean = true then begin MessageBox(handle, 该批次药品已经入库,不能再修改药品信息!, 提示, MB_ICONINFORMATION ); exit; end; ADOQuery2.E

20、dit; if frmInputDetail = nil then frmInputDetail := TfrmInputDetail.Create(nil); frmInputDetail.ShowModal ;end;procedure TfrmInput.btnQuitClick(Sender: TObject);begin close;end;procedure TfrmInput.btnDelDetailClick(Sender: TObject);begin if ADOQuery1.FieldByName(isInput).AsBoolean = true then begin

21、MessageBox(handle, 该批次药品已经入库,不能删除药品信息!, 提示, MB_ICONINFORMATION ); exit; end; if MessageBox(handle, 真的要删除此记录么?, 提示, mb_IconQuestion + mb_OkCancel) = idOk then ADOQuery2.Delete; if ADOQuery2.RecordCount=0 then begin btnUpdateDetail.Enabled:=false; btnDelDetail.Enabled:=false; end else begin btnUpdateD

22、etail.Enabled:=true; btnDelDetail.Enabled:=true; end;end;procedure TfrmInput.ADOQuery2RecordChangeComplete( DataSet: TCustomADODataSet; const Reason: TEventReason; const RecordCount: Integer; const Error: Error; var EventStatus: TEventStatus);begin if ADOQuery2.RecordCount=0 then begin btnUpdateDeta

23、il.Enabled:=false; btnDelDetail.Enabled:=false; end else begin btnUpdateDetail.Enabled:=true; btnDelDetail.Enabled:=true; end;end;procedure TfrmInput.ADOQuery2AfterOpen(DataSet: TDataSet);begin if ADOQuery2.RecordCount=0 then begin btnUpdateDetail.Enabled:=false; btnDelDetail.Enabled:=false; end els

24、e begin btnUpdateDetail.Enabled:=true; btnDelDetail.Enabled:=true; end;end;procedure TfrmInput.btnInputClick(Sender: TObject);var Query : TADOQuery; i : integer;begin if (ADOQuery1.RecordCount = 0) or (ADOQuery2.RecordCount = 0) then begin MessageBox(handle, 当前没有可入库的药品, 提示, MB_ICONINFORMATION ); exi

25、t; end; if ADOQuery1.FieldByName(isInput).AsBoolean = true then begin MessageBox(handle, 该批次药品已经入库, 提示, MB_ICONINFORMATION ); exit; end; try Query := TADOQuery.Create(nil); Query.Connection := dm.ADOConnection1 ; Query.SQL.Add(select * from store; ); Query.Open; ADOQuery2.First; for i:=0 to ADOQuery

26、2.RecordCount-1 do begin Query.Append; Query.FieldByName(code).AsString := ADOQuery2.FieldByName(code).AsString; Query.FieldByName(number).AsString := ADOQuery2.FieldByName(number).AsString; Query.FieldByName(name).AsString := ADOQuery2.FieldByName(name).AsString; Query.FieldByName(type).AsString :=

27、 ADOQuery2.FieldByName(type).AsString; Query.FieldByName(made_date).AsDateTime := ADOQuery2.FieldByName(made_date).AsDateTime; Query.FieldByName(useless_date).AsDateTime := ADOQuery2.FieldByName(useless_date).AsDateTime; Query.FieldByName(unit).AsString := ADOQuery2.FieldByName(unit).AsString; Query

28、.FieldByName(price).AsFloat := ADOQuery2.FieldByName(price).AsFloat; Query.FieldByName(count).AsInteger := ADOQuery2.FieldByName(count).AsInteger; Query.Post; ADOQuery2.Next; end; Query.Close; Query.Free; except MessageDlg(连接数据库出错!,mtError,mbok,0); exit; end; ADOQuery1.Edit; ADOQuery1.FieldByName(is

29、Input).AsBoolean := true; ADOQuery1.Post; MessageBox(handle, 药品入库成功!, 提示, MB_ICONINFORMATION ); btnAddDetail.Enabled:=false; btnUpdateDetail.Enabled:=false; btnDelDetail.Enabled:=false;end;end.2.unit uInputDetail;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, Buttons;type TfrmInputDetail = class(TForm) DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TD

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1