药房药品进销存.docx
- 文档编号:30606632
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:30
- 大小:26.35KB
药房药品进销存.docx
《药房药品进销存.docx》由会员分享,可在线阅读,更多相关《药房药品进销存.docx(30页珍藏版)》请在冰豆网上搜索。
药房药品进销存
资料范本
本资料为word版本,可以直接编辑和打印,感谢您的下载
药房药品进销存
地点:
__________________
时间:
__________________
说明:
本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容
药品仓库管理系统
摘要:
在药店里,药品仓库管理是一项非常重要的工作,使用人工方式管理各项品信息不仅效率低下,而且容易出错、安全性很差。
并且在实际操作中,数据的查找和维护都不容易实现。
药品仓库管理系统,就是为了解决这些问题而设计的。
其目的是实现药品信息管理和出入库记录的快速高效检索,使操作简单安全,提高工作效率和质量。
本系统的主要功能是完成品仓库管理的日常工作,包括材料的入库、出库以及库存材料信息的管理维护等。
关键词:
事件代码数据库检索关联管理系统
Abstract:
Indrugstores,tomanagethedrugwarehouseisaveryimportantwork,itisnotonlyinefficienttomanageallkindsofdruginformationbyusingmanualwork,butalsoeasytomakeamistakeandhaslittlesecurityMoreover,inpracticaloperation,findingoutandprotectingthedataarehardtorealize.Thesystemofdrugwarehousemanagementisdesignedforsolvingtheseproblems.Thepurposesaretorealizethedruginformationmanagement,torecalltherecordofputtingthedruginandoutofthewarehouse,tomaketheoperationbecomesimple,safe,andtoenhancetheworkefficiencyandquality.
Thissystemfocusesonfinishingthedailyoperationofdrugwarehousemanagement,whichincludingputtingthedruginandoutofthewarehouse,storing,managmingandprotectingthematerialinformationandsoon.
Keyword:
casecodedatabaseindexrelationcontrollingmanagementsystem
第一章技术背景和分析……………………………………………………………..3
第二章系统实施……………………...…………….………………………………..3
2.1系统设计………………………………………………………………………3
2.1.1系统分析……….………………….…….…………………………………4
2.1.1.1用户需求分析……………………………………………………………4
2.1.1.2系统可行性分析…………………………………………………………4
2.1.2系统功能模块划分………………………………………………………...4
2.2数据库设计…………………………………………………………………….6
2.2.1数据库需求分析…………………………………………………………..6
2.2.2数据库逻辑设计…………………………………………………………..6
2.2.3数据库实现………………………………………………………………..7
2.3表单设计……………………………………………………………………….9
2.3.1材料信息维护表单…………………………………………….………….9
2.3.2材料信息查询表单…………………………………………….…………16
2.3.3出入库管理表单…………………………………………….…………….18
2.3.4用户向导制作报表…………………………………………….………….26
2.3.5主表单设计…………………………………………….………………….28
2.4主控程序设计…………………………………………….……………………29
第三章问题讨论……………………………..…………….………………….…....29
3.1系统功能设计的不完善……………………………………………….………29
3.2代码维护…………………………………………….…………………………30
3.3数据维护…………………………………………….………………………...30
3.3.1数据库的安全问题…………………………………………….…………30
3.3.2数据的安全问题…………………………………………….……………30
第四章总结………………..………………………….…………………………….31
参考文献…………………………………………….……………………………….32
后记…………………………………………….…………………………………….33
第一章技术背景和分析
VisualFoxPro是为数据库结构和应用程序开发而设计的功能强大的面向对象的软件。
无论是组织信息、运行查询、创建集成的关系型数据库系统,还是为最终用户编写功能全面的数据管理应用程序,VisualFoxPro都可以提管理数据所需的工具,可以在应用程序或数据库开发的任何一个领域中提供帮助。
本系统使用VisualFoxPro来设计开发的原因是VisualFoxPro具有三大特点。
一、强大的管理功能
VFP提了一种称为“项目管理器”(programmanager)的管理工具,可供用户对所开发项目中的数据、文档、源代码和类库(classlibrary)等资源进行集中高效的管理,开发与维护均更加方便。
二、大量使用可视化的界面操作工具
VFP6.0提供向导(wizard)、设计器(designer)、生成器(builder)等3类界面操作工具,达40种之多。
它们普遍采用图形界面,能帮助用户简便快捷地完成各种查询和设计任务。
VFP的设计器普遍配有工具栏和弹出式的快捷菜单。
每个工具按钮对应一项功能;用户可通过它们方便地完成操作或设计控件,不必编程或很少编程即可实现美观实用的应用程序界面。
大多数设计器还提快捷菜单,内含最常用的菜单选项,供用户随时调用。
三、支持面向对象的程序设计
VFP除继续使用传统的面向过程的程序设计外,还支持面向对象的程序设计。
允许用户对“对象”(object)和“类”(class)进行定义,并编写相应的代码。
由于VFP预先定义和提供了一批基类,用户可以在基类的基础上定义自己的类和子类(subclass),从而利用类的继承性(inheritance),减少编程的工作量,加快软件的开发过程。
使用结构化的程序设计,同时应用面向对象的程序设计,构成了VFP程序设计的特点,同时为用户的编程带来了很大的方便。
第二章系统实施
2.1系统设计
本系统设计包括两个部分:
系统分析和系统功能模块设计。
2.1.1系统分析
2.1.1.1用户需求分析
某药店根据业务发展的要求,选定建立一个“药品仓库管理系统”,以取代人工管理。
开发目的如下:
l、必须要指定的专门人员才能对药品仓库的日常事务进行管理。
2、能够对药品仓库内的有关各种药品材料的数据进行输入、修改与查询。
3、当有药品入库或出库时,能够更新药品的数据进行输入、修改与查询。
4、要求有专门的报表存储药品材料的出入库信息,能够打印报表。
2.1.1.2系统可行性分析
1、四项基本内容的实现
用户在该药品仓库管理系统中需要的四项基本内容完全可以利用VFP进行的相关设置(主要是表单设置)来加以实现。
例如可以用VFP进行登录界面设计,在表单上添加命令按钮以实现对用户身份的验证,达到用户要求的“必须要指定的专门人才对药品仓库的日常事务进行管理”的目的。
2、数据库分析
药店中所有药品材料的信息都可以在VFP项目管理器的数据库中建立与维护。
该药品仓库管理系统查询药品信息只需要两张数据表(即材料信息表和出入库信息表)就可以满足需求。
3、系统的发布及其运行环境。
(1)系统的发布:
VFP项目管理器提供了一个管理应用系统的集成环境,而且VFP提供的安装向导,支持用户为所开发的项目创建一套“安装(磁)盘”,供系统发布使用。
(2)系统的运行环境:
操作系统Windows9x系列、用户自定义安装需要85MB硬盘空间,完全安装需要90MB硬盘空间,内存要求16MB以上。
推荐使用VGA或更高分辨率的显示器。
2.1.2系统功能模块划分
根据以上分析,可以进行系统的功能模块划分,如图2—1所示:
图2—1系统功能模块
功能模块划分图中各个模块的功能如下:
1、登录界面
通过输入管理员的用户名和密码进入系统。
2、主表单
用户可以在主表单上根据需要进行选择以实现各种不同的操作。
3、库存材料信息的维护
新材料入库时,系统允许管理员添加新材料的记录。
材料出库或产品过期需要清除时,管理员可以删除产品信息。
记录有误时管理员可以修改数据表中的记录。
4、库存材料信息的查询
信息查询是仓库管理系统的重要组成部分。
用户可以按照材料编号和材料名称等查询条件查询仓库中的材料信息。
5、材料的入库、出库
新产品或材料需要出入库时,管理员可以直接进行出入库操作;出入库操作后,程序自动修改库存材料的信息。
6、报表打印功能
可以打印库存表,出入库记录的报表。
2.2数据库设计
2.2.1数据库需求分析
根据上一节的系统分析,本系统主要是实现仓库药品信息和出入库信息的管理。
因此,该药品仓库管理系统的数据关系比较简单,只需要两张数据表:
材料信息表和出入库记录信息表。
2.2.2数据库逻辑设计
本系统中需要两个数据表:
材料信息表和出入库信息表,数据表的字段和结构如表1和表2所示:
表1材料信息表
表2出入库信息表
2.2.3数据库实现
本系统开发中,首先创建仓库管理系统的数据库,然后在数据库中创建需要的数据表,为数据表添加记录。
如果需要,还可以设计视图和存储过程以及触发器等。
下面设计本系统数据库,详细步骤如下:
1、创建项目文件“仓库管理.pjx”,保存路径为project\仓库管理系统。
2、在该项目中新建数据库“仓库管理”,保存路径为project\仓库管理系统\data。
3、在数据库中新建材料信息表,保存路径为project\仓库管理系统\data\材料信息.dbf。
在TableDesigner的Fields选项卡中根据表1的内容设置数据表的字段及其属性,如2—2图所示:
图2—2“材料信息”表的字段设置
切换到Indexes选项卡,设置表索引。
如图2—3所示。
将“材料编号”设置为主索引,索引类型为Primary。
将“材料名称”设置为普通索引,索引类型为Regular。
图2—3“材料信息”表的索引设置
关闭TableDesigner,在“材料信息”表中添加记录。
具体做法是:
在ProjectDesigner中选中材料信息表,单击Browse按钮,浏览数据表。
然后在VisualFoxPro6.0的主窗口中选取Table|AppendNewRecord菜单命令,在数据表中添加新的记录。
出入库信息的创建方法与材料信息表相似,保存路径也与材料信息表相同。
表的字段设置和索引分别如图2—4、图2—5所示:
图2—4“出入库信息”表的字段设置
图2—5“出入库信息”表的索引设置
表建立完成后,打开DatabaseDesigner,创建数据表之间的关联关系。
其结果如图2—6所示。
其中,材料信息表和出入库信息表之间通过索引“材料编号”相关联。
图2—6数据表的关联关系
至此,数据库和数据表的设计完成。
下面进入仓库管理系统的表单设计。
2.3表单设计
本系统主要功能模块的实现由4个表单完成,分别是:
材料信息维护表单、材料信息查询表单、出入库管理表单和用于选择操作类型的主界面。
2.3.1材料信息维护表单
材料信息维护表单的功能主要是完成材料信息的添加、修改和删除等操作。
1、材料信息维护表单设计
在项目中新建表单,保存路径为“project\仓库管理系统\forms\材料信息.scx”,在表单的DataEnvironment中添加“材料信息”表。
在表单上添加控件并设置控件的属性,得到如图2—7所示的表单。
图2—7材料信息维护表单
整个“材料信息维护”表单分为3部分,最上面的一部分是在一个Container控件中显示当前材料记录的信息,如材料编号、材料名称、规格、单位和单价等。
中间是4个命令按钮分别表示第一条记录、上一条记录、下一条记录、和最后一条记录。
下面是维护操作功能按钮,包括添加、修改、删除、保存和退出5种功能按钮。
2、添加响应代码
下面为表单添加响应代码,实现上述各项功能。
“首记录”按钮。
单击按钮时,显示“材料信息”表的第一记录。
即表中第一条记录被设为当前记录。
该按钮的Click事件代码如下:
Gotop
Thisform.Refresh
“末记录”按钮。
单击按钮时,显示“材料信息”表的最后一条记录,即表中最后一条记录被设置为当前记录。
该按钮的Click事件代码如下:
Gobottom
Thisform.Refresh
“上一条”按钮。
单击按钮时,显示当前记录上一条记录。
该按钮的Click事件代码如下:
thisform.text1.readonly=.t.
thisform.text2.readonly=.t.
thisform.text3.readonly=.t.
thisform.text4.readonly=.t.
thisform.text5.readonly=.t.
thisform.text6.readonly=.t.
thisform.text7.readonly=.t.
thisform.text8.readonly=.t.
thisform.edit1.readonly=.t.
&&设置各TextBox和Edit的ReadOnly属性
ifeof()
gobottom
else
skip–1
endif
thisform.refresh
“下一条”按钮。
单击按钮时,显示当前记录的下一条记录。
该按钮的Click事件代码如下:
thisform.text1.readonly=.t.
thisform.text2.readonly=.t.
thisform.text3.readonly=.t.
thisform.text4.readonly=.t.
thisform.text5.readonly=.t.
thisform.text6.readonly=.t.
thisform.text7.readonly=.t.
thisform.text8.readonly=.t.
thisform.edit1.readonly=.t.
&&设置各TextBox控件的属性
ifeof()
gotop
else
skip1
endif
thisform.refresh
“添加”按钮。
单击按钮时,完成材料添加功能,在材料信息表中加入一条新记录。
该按钮的Click事件代码如下:
gobottom
tempnum=val(材料信息.材料编号)
&&获取最后一条记录的材料编号字段
appendblank
gobottom
replace材料信息.材料编号withalltrim(str(tempnum+1))
&&在表尾添加一条新记录
mand1.enabled=.f.
mand2.enabled=.f.
mand3.enabled=.f.
mand4.enabled=.f.
mand5.enabled=.f.
mand6.enabled=.f.
mand7.enabled=.f.
mand8.enabled=.f.
mand9.enabled=.f.
&&设置各按钮的有效状态,在添加新记录的过程中,为防止出错,应设置除“保存”按钮之外的其他按钮为无效。
这样,在输入完成后,只能使用“保存”按钮来保存记录。
thisform.text1.readonly=.f.
thisform.text2.readonly=.f.
thisform.text3.readonly=.f.
thisform.text4.readonly=.f.
thisform.text5.readonly=.f.
thisform.text6.readonly=.f.
thisform.text7.readonly=.f.
thisform.text8.readonly=.f.
thisform.edit1.readonly=.f.
&&设置各TextBox控件的属性
thisform.refresh
“修改”按钮。
单击按钮时,修改当前记录。
该按钮的Click事件代码如下:
mand1.enabled=.f.
mand2.enabled=.f.
mand3.enabled=.f.
mand4.enabled=.f.
mand5.enabled=.f.
mand6.enabled=.f.
mand7.enabled=.f.
mand8.enabled=.f.
mand9.enabled=.f.
thisform.text1.readonly=.f.
thisform.text2.readonly=.f.
thisform.text3.readonly=.f.
thisform.text4.readonly=.f.
thisform.text5.readonly=.f.
thisform.text6.readonly=.f.
thisform.text7.readonly=.f.
thisform.text8.readonly=.f.
thisform.edit1.readonly=.f.
thisform.refresh
&&本段代码主要功能是设置表单上各控件的可读写状态。
“删除”按钮。
单击按钮时,删除表中当前记录。
该按钮的Click事件代码如下:
tempstr=messagebox(“是否删除记录?
”,4+32+256,”删除对话框”)
iftempstr=6
setexclusiveon
delete
pack
setexclusiveoff
thisform.refresh
endif
&&在删除记录之前,首先设置表的操作方式为Exclusive(独占方式),然后用Delete语句为当前记录加上删除标记,最后使用Pack语句删除有标记的记录。
“保存”按钮。
单击按钮时,将表单中用户输入的信息保存到“材料信息”表。
该按钮的Click事件代码如下:
dimensionaaa(9)
&&定义数组
aaa
(1)=thisform.text1.value
aaa
(2)=thisform.text2.value
aaa(3)=thisform.text3.value
aaa(4)=thisform.text4.value
aaa(5)=thisform.text5.value
aaa(6)=thisform.text6.value
aaa(7)=thisform.text7.value
aaa(8)=thisform.text8.value
aaa(9)=thisform.text9.value
&&将表单中的输入值存储到数组中
replace材料信息.材料编号withaaa
(1)
replace材料信息.规格withaaa
(2)
replace材料信息.单价withaaa(3)
replace材料信息.产地withaaa(4)
replace材料信息.生产厂家withaaa(5)
replace材料信息.材料名称withaaa(6)
replace材料信息.单位withaaa(7)
replace材料信息.数量withaaa(8)
replace材料信息.备注withaaa(9)
&&用数组修改表记录的各字段
mand1.enabled=.t.
mand2.enabled=.t.
mand3.enabled=.t.
mand4.enabled=.t.
mand5.enabled=.t.
mand6.enabled=.t.
mand7.enabled=.t.
mand8.enabled=.t.
mand9.enabled=.t.
&&设置各按钮的有效状态
thisform.text1.readonly=.t.
thisform.text2.readonly=.t.
thisform.text3.readonly=.t.
thisform.text4.readonly=.t.
thisform.text5.readonly=.t.
thisform.text6.readonly=.t.
thisform.text7.readonly=.t.
thisform.text8.readonly=.t.
thisform.edit1.readonly=.t.
thisform.refresh
&&设置TextBox控件为只读
“退出”按钮。
单击该按钮,退出表单。
该按钮的Click事件代码如下:
Thisform.Release
另外表单初始化时“保存”按钮应该为不可用,且显示的内容应该处于只读状态,因此为表单的Init事件添加如下代码:
thisform.text1.readonly=.t.
thisform.text2.readonly=.t.
thisform.text3.readonly=.t.
thisform.text4.readonly=.t.
thisform.text5.readonly=.t.
thisform.text6.readonly=.t.
thisform.text7.readonly=.t.
thisform.text8.readonly=.t.
thisform.edit1.read
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 药房 药品 进销存