vb药品管理系统课程设计报告.docx
- 文档编号:23289208
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:55
- 大小:661.67KB
vb药品管理系统课程设计报告.docx
《vb药品管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《vb药品管理系统课程设计报告.docx(55页珍藏版)》请在冰豆网上搜索。
vb药品管理系统课程设计报告
1.系统开发背景
随着科技的不断进步,企业都在不断的注重管理的信息化以完善企业管理,增强企业自身的竞争力。
药品销售业也不例外,通过较完善的信息系统实现自身企业对内部管理的方便性、合理性、快捷性、高效性等要求。
以前的手工管理效率低使最明显的缺陷,另外,数据的一致性不好维护,如某个药品信息的记录有所改动(如更改编号),那么该要品的其他记录就与此不一致,造成查询的费时费力。
要把全部数据都更改又相当不方便。
对药品库存的盘点也很不方便,而且需要较多的人来进行管理操作,而且容易出错,造成数据的不一致。
而药品业是关民生的行业,错误信息可能会造成不可收拾的严重后果。
因此,运用高效、准确的信息管理系统来替代手工管理是完善药品销售业管理的有效手段。
2.系统开发意义
利用数据库系统可以很好的对数据进行维护,减少由于数据不一致等错误带来的麻烦。
方便数据的更新和查询,降低错误率,方便药品信息的维护及库存的盘点。
还可以运用较少的人员,高效的完成对药品销售的管理。
由于社会的发展不断趋于信息化,各个行业都要加强自身的信息化程度以适应社会的发展。
而管理信息化正迎合了这个趋势,数据库系统在药品销售业的应用业实现了药品销售业执行工具、业务管理等的信息化,在这个信息化社会为药品销售业的发展增加了新的动力。
相信随着社会的不断发展对该类系统的需求会越来越高。
药品销售管理信息系统,即服务于个人,又服务于企业,并最终服务于社会,这是让科技为人类服务的最好例证,其开发意义显而易见。
.各实例的E-R图
★整体实体E-R图:
★出入库信息实体E-R图:
★货物信息实体E-R图:
★用户信息实体E-R图:
★人员配置E-R图:
3.结构设计
★入库出库模块:
用来实现货物流通的查询。
★货物详况模块:
用来实现货物浏览的查询。
★货物汇总模块:
用来实现货物质料的增加、删除、修改等操作。
★系统管理模块:
用来实现客户的增加、删除以及用户信息和密码的修改等操作。
4.数据库设计
这里的数据库采用access,用ADO作为连接数据对象。
★启动access建立一个数据库如图所示
★货源地表格:
★客户名表格:
★货物详况表:
★入库表:
★系统管理表:
★数据连接。
在vb环境下连接数据:
★在程序设计的公共模块中,先定义ADO连接对象。
语句如下:
PublicconnnewADODBconnection
然后在子程序中,用如下的语句即可打开数据库
Dimconnectionstringasstring
Connectionstring=“provider=microsoft.jet.oledb.4.0;&-datasource=cangku.mdb”
Conn.openconnectionstring
4.界面设计
设计好的界面如图所示:
菜单程序中,有5个菜单选项你,每个菜单选项对应着E-R图的一个子项目。
1.创建主窗体。
首先创建一个工程,命名为药品管理系统,选择工程-添加MDI窗体命令,则在项目中添加了子窗体该窗体属性如下表所示:
创建各菜单项的属性如下表所示:
2.创建各子窗体。
选择工程-添加窗体命令,添加子窗体,其属性如下:
★入库子窗体如下图所示:
各控件属性如下表:
★增加用户子窗体如下图所示:
其各控件属性如下表所示:
★修改密码窗体如下图所示:
★库房管理子窗体如下图所示:
库房管理子窗体控件如下表所示:
★查询子窗体及其控件如下所示:
★货物汇总子窗体及其属性如下:
★关于窗体主要是列出关于系统的版本信息如下图
5.建立公共模块
在菜单中选择工程-添加模块命令,则出现添加模块对话框,选中模块后单击打开,则模块添加到目录中,在模块中定义整个项目的公共变量。
OptionExplicit
PublicconnAsNewADODB.Connection
PublicuserIDAsString
PublicuserpowAsString
PublicfindAsBoolean
PublicsqlfindAsString
Publicrs_data1AsNewADODB.Recordset
PublicfindokAsBoolean
Publicsummary_menuAsString
PublicfrmdataAsBoolean
PublicConstkeyenter=13
6.代码设计
子窗体中都是click事件
1.主窗体代码如下:
PrivateSubabout_Click()
frmabout.Show
EndSub
PrivateSubadd_user_Click()
adduser.Show
EndSub
PrivateSubcheck_find_Click()
chaxun.Show
EndSub
PrivateSubdata_manage_Click()
sqlfind="select*from入出库"
rs_data1.Opensqlfind,conn,adOpenKeyset,adLockPessimistic
kumanage.Show
EndSub
PrivateSubexit_Click()
UnloadMe
EndSub
PrivateSubin_check_Click()
jinku.Caption="入库"
jinku.Show
EndSub
在MIDFORM1中主要代码如下:
PrivateSubMDIForm_Load()
frmdata=False
find=False
EndSub
PrivateSubmodify_pw_Click()
changpwd.Show
EndSub
PrivateSubout_check_Click()
jinku.Caption="出库"
jinku.Show
EndSub
PrivateSubsum_check_date_Click()
summary_menu="check_date"
huizong.Show1
EndSub
PrivateSubsum_date_custom_Click()
summary_menu="date_custom"
huizong.Show1
EndSub
PrivateSubsummary_check_Click()
summary_menu="check"
huizong.Show1
EndSub
PrivateSubsummary_custom_Click()
summary_menu="custom"
huizong.Show1
EndSub
PrivateSubsummary_date_Click()
summary_menu="date"
huizong.Show1
EndSub
PrivateSubTimer1_Timer()
EndSub
2.各子窗体代码:
★入库子窗体代码。
本窗体用来查询货物入库的信息,下面的代码是定义几个变量:
OptionExplicit
Dimrs_checknameAsNewADODB.Recordset
Dimrs_customAsNewADODB.Recordset
Constrow_num=10
Constcol_num=6
确定按钮代码;
PrivateSubCommand1_Click()
Dimrs_saveAsNewADODB.Recordset
DimsqlAsString
DimiAsInteger
DimsAsString
OnErrorGoTosaveerror
IfTrim(Text1.Text)=""Then
MsgBox"货单不能为空!
",vbOKOnly+vbExclamation,""
Text1.SetFocus
ExitSub
EndIf
IfCombo1.Text=""Then
MsgBox"请选择货源地!
",vbOKOnly+vbExclamation,""
Combo1.SetFocus
ExitSub
EndIf
Ifcomboy.Text=""Then
MsgBox"请选择年份!
",vbOKOnly+vbExclamation,""
comboy.SetFocus
ExitSub
EndIf
Ifcombom.Text=""Then
MsgBox"请选择月份!
",vbOKOnly+vbExclamation,""
combom.SetFocus
ExitSub
EndIf
Ifcombod.Text=""Then
MsgBox"请选择日期!
",vbOKOnly+vbExclamation,""
combod.SetFocus
ExitSub
EndIf
IfText2.Text=""Then
MsgBox"请填写凭证号!
",vbOKOnly+vbExclamation,""
Text2.SetFocus
ExitSub
EndIf
IfText3.Text=""Then
MsgBox"请填写经手人!
",vbOKOnly+vbExclamation,""
Text3.SetFocus
ExitSub
EndIf
IfMSFlexGrid1.Col<>0Then
MsgBox"请输入完整的物品信息!
",vbOKOnly+vbExclamation,""
MSFlexGrid1.SetFocus
ExitSub
EndIf
数据库比较代码:
sql="select*from入出库where货单号='"&Text1.Text&"'"
rs_save.Opensql,conn,adOpenKeyset,adLockPessimistic
Ifrs_save.EOFThen
rs_save.AddNew
rs_save.Fields(0)=Trim(Text1.Text)
rs_save.Fields
(1)=CDate(Trim(comboy.Text)&"-"&Trim(combom.Text)&"-"&Trim(combod.Text))
rs_save.Fields
(2)=Trim(Combo1.Text)
rs_save.Fields(3)=Trim(Text2.Text)
rs_save.Fields(4)=Trim(Text3.Text)
rs_save.Fields(5)=Trim(Text4.Text)
Ifjinku.Caption="入库"Then
rs_save.Fields(6)=True
Else
rs_save.Fields(6)=False
EndIf
rs_save.Update
rs_save.Close
Else
MsgBox"货单号重复!
",vbOKOnly+vbExclamation,""
Text1.SetFocus
Text1.Text=""
rs_save.Close
ExitSub
EndIf
sql="select*from货物详况"
rs_save.Opensql,conn,adOpenKeyset,adLockPessimistic
Fori=1ToMSFlexGrid1.Row-1
rs_save.AddNew
rs_save.Fields(0)=Trim(Text1.Text)
rs_save.Fields
(1)=CDate(Trim(comboy.Text)&"-"&Trim(combom.Text)&"-"&Trim(combod.Text))
rs_save.Fields
(2)=Trim(Combo1.Text)
MSFlexGrid1.Row=i
MSFlexGrid1.Col=0
rs_save.Fields(3)=Trim(MSFlexGrid1.Text)
MSFlexGrid1.Col=1
Ifjinku.Caption="出库"Then
s="-"&Trim(MSFlexGrid1.Text)
rs_save.Fields(4)=CDbl(s)
Else
rs_save.Fields(4)=CDbl(Trim(MSFlexGrid1.Text))
EndIf
MSFlexGrid1.Col=2
rs_save.Fields(5)=Trim(MSFlexGrid1.Text)
MSFlexGrid1.Col=3
rs_save.Fields(6)=Trim(MSFlexGrid1.Text)
MSFlexGrid1.Col=4
Ifjinku.Caption="出库"Then
s="-"&Trim(MSFlexGrid1.Text)
rs_save.Fields(7)=CDbl(s)
Else
rs_save.Fields(7)=CDbl(Trim(MSFlexGrid1.Text))
EndIf
MSFlexGrid1.Col=5
rs_save.Fields(8)=Trim(MSFlexGrid1.Text)
Nexti
rs_save.Update
rs_save.Close
MsgBox"添加成功!
",vbOKOnly+vbExclamation,""
UnloadMe
ExitSub
saveerror:
MsgBoxErr.Description
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
DimsqlAsString
DimiAsInteger
OnErrorGoToloaderror
sql="select*from货源地"
rs_checkname.CursorLocation=adUseClient
rs_checkname.Opensql,conn,adOpenKeyset,adLockPessimistic
sql="select*from客户名"
rs_custom.CursorLocation=adUseClient
rs_custom.Opensql,conn,adOpenKeyset,adLockPessimistic
WhileNotrs_custom.EOF
Combo2.AddItemrs_custom.Fields(0)
rs_custom.MoveNext
Wend
IfNotrs_checkname.EOFThen
rs_checkname.MoveFirst
WhileNotrs_checkname.EOF
Combo1.AddItemrs_checkname.Fields(0)
rs_checkname.MoveNext
Wend
EndIf
comboy.AddItem2002
comboy.AddItem2003
comboy.AddItem2004
comboy.AddItem2005
comboy.AddItem2006
comboy.AddItem2007
comboy.AddItem2008
comboy.AddItem2009
comboy.AddItem2010
comboy.AddItem2011
Fori=1To12
combom.AddItemi
Nexti
Fori=1To31
combod.AddItemi
Nexti
setgrid
setgrid_head
Text5.Visible=False
clear_grid
ExitSub
loaderror:
MsgBoxErr.Description
EndSub
PrivateSubForm_Unload(CancelAsInteger)
'关闭数据对象
rs_checkname.Close
rs_custom.Close
EndSub
PublicSubsetgrid()
DimiAsInteger
OnErrorGoToseterror
MSFlexGrid1.ScrollBars=flexScrollBarBoth
MSFlexGrid1.FixedCols=0
MSFlexGrid1.Rows=row_num
MSFlexGrid1.Cols=col_num
MSFlexGrid1.SelectionMode=flexSelectionByRow
Fori=0Torow_num-1
MSFlexGrid1.RowHeight(i)=315
Next
Fori=0Tocol_num-1
MSFlexGrid1.ColWidth(i)=1300
Nexti
ExitSub
seterror:
MsgBoxErr.Description
EndSub
PublicSubsetgrid_head()
OnErrorGoTosetheaderror
MSFlexGrid1.Row=0
MSFlexGrid1.Col=0
MSFlexGrid1.Text="物品名称"
MSFlexGrid1.Col=1
MSFlexGrid1.Text="单价"
MSFlexGrid1.Col=2
MSFlexGrid1.Text="数量"
MSFlexGrid1.Col=3
MSFlexGrid1.Text="单位"
MSFlexGrid1.Col=4
MSFlexGrid1.Text="金额"
MSFlexGrid1.Col=5
MSFlexGrid1.Text="客户名"
ExitSub
setheaderror:
MsgBoxErr.Description
EndSub
PublicSubclear_grid()
DimiAsInteger,jAsInteger
Fori=1Torow_num-1
MSFlexGrid1.Row=i
Forj=0Tocol_num-1
MSFlexGrid1.Col=j
MSFlexGrid1.Text=""
Nextj
Nexti
EndSub
PublicSubnextposition(ByValrAsInteger,ByValcAsInteger)
OnErrorGoTonexterror
Text5.Width=MSFlexGrid1.CellWidth
Text5.Height=MSFlexGrid1.CellHeight
Text5.Left=MSFlexGrid1.Left+MSFlexGrid1.ColPos(c)
Text5.Top=MSFlexGrid1.Top+MSFlexGrid1.RowPos(r)
Text5.Text=MSFlexGrid1.Text
Text5.Visible=True
Text5.SetFocus
ExitSub
nexterror:
MsgBoxErr.Description
EndSub
PrivateSubMSFlexGrid1_Click()
IfCombo2.Visible=TrueThen
ExitSub
EndIf
nextpositionMSFlexGrid1.Row,MSFlexGrid1.Col
EndSub
PrivateSubText5_KeyPress(KeyAsciiAsInteger)
DimiAsInteger,jAsInteger
DimpriceAsDouble,counAsInteger
OnErrorGoTotexterror
IfKeyAscii=keyenterThen
MSFlexGrid1.Text=Text5.Text
i=MSFlexGrid1.Row
j=MSFlexGrid1.Col
Ifj=0AndTrim(Text5.Text)=""Then
MsgBox"物品名称不能为空",vbOKOnly+vbExclamation,""
Text5.SetFocus
ExitSub
EndIf
Ifj=1AndNotIsNumeric(Text5.Text)Then
MsgBox"单价请输入数字!
",vbOKOnly+vbExclamation,""
Text5.SetFocus
ExitSub
EndIf
Ifj=2AndNotIsNumeric(Text5.Text)Then
MsgBox"数量请输入数字!
",vbOKOnly+vbExclamation,""
Text5.SetFocus
ExitSub
EndIf
Ifj=3AndTrim(Text5.Text)=""Then
MsgBox"单位不能为空!
",vbOKOnly+vbExclamation,""
Text5.SetFocus
ExitSub
EndIf
Ifj=3AndNotIsNull(Text5.Text)Then
MSFlexGrid1.Col=1
price=CDbl(MSFlexGrid1.Text)
MSFlexGrid1.Col=2
coun=CInt(MSFlexGrid1.Text)
MSFlexGrid1.Col=4
MSFlexGrid1.Text=price*coun
MSFlexGrid1.Col=MSFlexGrid1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 药品 管理 系统 课程设计 报告