vb药品管理系统课程设计报告_第1页
vb药品管理系统课程设计报告_第2页
vb药品管理系统课程设计报告_第3页
vb药品管理系统课程设计报告_第4页
免费预览已结束,剩余34页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.系统开发背景随着科技的不断进步,企业都在不断的注重管理的信息化以完善企业管理,增强企业自身的竞争力。药品销售业也不例外,通过较完善的信息系统实现自身企业对内部管理的方便性、合理性、快捷性、高效性等要求。以前的手工管理效率低使最明显的缺陷,另外,数据的一致性不好维护,如某个药品信息的记录有所改动(如更改编号),那么该要品的其他记录就与此不一致,造成查询的费时费力。要把全部数据都更改又相当不方便。对药品库存的盘点也很不方便,而且需要较多的人来进行管理操作,而且容易出错,造成数据的不一致。而药品业是关民生的行业,错误信息可能会造成不可收拾的严重后果。因此,运用高效、准确的信息管理系统来替代手工管

2、理是完善药品销售业管理的有效手段。2.系统开发意义利用数据库系统可以很好的对数据进行维护,减少由于数据不一致等错误带来的麻烦。方便数据的更新和查询,降低错误率,方便药品信息的维护及库存的盘点。还可以运用较少的人员,高效的完成对药品销售的管理。由于社会的发展不断趋于信息化,各个行业都要加强自身的信息化程度以适应社会的发展。而管理信息化正迎合了这个趋势,数据库系统在药品销售业的应用业实现了药品销售业执行工具、业务管理等的信息化,在这个信息化社会为药品销售业的发展增加了新的动力。相信随着社会的不断发展对该类系统的需求会越来越高。药品销售管理信息系统,即服务于个人,又服务于企业,并最终服务于社会,这是

3、让科技为人类服务的最好例证,其开发意义显而易见。.各实例的 E-R 图整体实体E-R 图:药品管理系统系统管理出库入库药物详况药物汇总用户管理密码管理出库管理入库管理货物管理药物查询日期汇总客户汇总货号汇总综合汇总 出入库信息实体E-R 图:货源地编号货单号入出库信日期息实体经手人入库备注日期 货物信息实体E-R 图:货物信息实体货单号货源地货物客户号名称 用户信息实体E-R 图:2用户信息实体用户号密码权限 人员配置 E-R 图:组长组员组员组员3.结构设计入库出库模块 :用来实现货物流通的查询。货物详况模块 : 用来实现货物浏览的查询。货物汇总模块:用来实现货物质料的增加、删除、修改等操作

4、。系统管理模块:用来实现客户的增加、删除以及用户信息和密码的修改等操作。4.数据库设计这里的数据库采用access ,用 ADO作为连接数据对象。 启动 access 建立一个数据库如图所示3货源地表格: 客户名表格:货物详况表:入库表:系统管理表:数据连接。在vb 环境下连接数据:4 在程序设计的公共模块中,先定义ADO连接对象。语句如下:Publicconn new ADODBconnection然后在子程序中,用如下的语句即可打开数据库Dim connectionstringas stringConnectionstring=“provider=microsoft.jet.oledb.4

5、.0;&-datasource=cangku.mdb”Conn.open connectionstring4.界面设计设计好的界面如图所示:5菜单程序中,有5 个菜单选项你,每个菜单选项对应着E-R 图的一个子项目。1.创建主窗体。首先创建一个工程,命名为药品管理系统,选择工程 - 添加 MDI窗体命令,则在项目中添加了子窗体该窗体属性如下表所示:主窗体的属性属性值text医药管理系统namemainmenumainmenu1windowstatemaxsize创建各菜单项的属性如下表所示:菜单项表菜单名称text 属性功能描述MenuItem1入库出库顶级菜单,包括子菜单MenuItem2入

6、库调出入库查询窗体MenuItem3出库调出出库窗体MenuItem4药物详况顶级菜单,包括子菜单MenuItem5药物查询调出药物查询窗体MenuItem6药房管理调出药房管理窗体MenuItem7药物汇总顶级菜单,包括子菜单MenuItem8货单号按货单号汇总各种信息MenuItem9日期按日期汇总各种信息MenuItem10客户按客户汇总各种信息MenuItem11货单号+日期按货单号+日期汇总各种信息MenuItem12客户+日期按客户+日期汇总各种信息MenuItem13系统管理顶级菜单,包括子菜单MenuItem14增加用户调出用户窗体MenuItem15修改密码调出密码窗体Men

7、uItem16退出系统退出2.创建各子窗体。选择 工程 - 添加窗体命令,添加子窗体,其属性如下:6所有子窗体子窗体名text入库jinku增加用户adduser修改密码changepwd库房管理kumanage查询chaxun登录系统login药物汇总huizong 入库子窗体如下图所示:各控件属性如下表:7入库子窗体控件控件类别控件 name控件 textlabel11货单号label12日期label13货源地labellabel14凭证号label15经手人label16备注label17年label18月label19日text1(空)text2(空)textboxtext3(空)t

8、ext4(空)text5(空)txtsearch(空)commandbuttoncommand1确定command2取消combol(空)combol(空)comboboxcomboy(空)combom(空)combod(空) 增加用户子窗体如下图所示:8其各控件属性如下表所示:增加用户子窗体控件控件类别控件 name控件 textlabel1输入用户名labellabel2输入旧密码label3确认密码label4选择权限textboxtext1(空)text2(空)text3(空)comboboxcomb1(空)commandbuttoncommand1确定command2取消 修改密码窗

9、体如下图所示: 库房管理子窗体如下图所示:9库房管理子窗体控件如下表所示:库房管理里子窗体控件控件类别控件 name控件 textframeframe1进出清单frame2货物明细frame3(空)msflexgridmsflexgrid1(空)msflexgrid2(空)textboxtext1(空)comboboxcomb1(空)command1增加明细command2修改明细commandbuttoncommand3删除明细command4取消command5退出 查询子窗体及其控件如下所示:10查询子窗体控件控件类别控件 name控件 textoptionbuttonoption1按货

10、单号查询option2按日期查询label1从label2到label3从label4到labellabel5年label6年label7月label8月label9日11label10日combo(0)comboboxcombol货单号combo(1)comboboxcombol货单号combo(0)comboboxcomboy年combo(1)comboboxcomboy年combo(0)comboboxcombom月combo(1)comboboxcombom月combo(0)comboboxcombod日combo(1)comboboxcombod日commandbuttomcomma

11、nd1查询command2取消 货物汇总子窗体及其属性如下:货物汇总子窗体控件控件类别控件 name控件 textlabellabel1货物数目msflexgridmsflexgrid1(空) 关于窗体主要是列出关于系统的版本信息如下图125.建立公共模 块在菜单中选择 工程 - 添加模块 命令,则出现添加模块对话框,选中模块后单击打开,则模块添加到目录中,在模块中定义整个项目的公共变量。OptionExplicitPublicconnAs New ADODB.ConnectionPublicuserIDAs StringPublicuserpowAs StringPublicfindAs B

12、ooleanPublicsqlfindAs StringPublicrs_data1As New ADODB.RecordsetPublicfindokAs BooleanPublicsummary_menu As StringPublicfrmdataAs BooleanPublicConstkeyenter = 136.代码设计子窗体中都是click事件1.主窗体代 码如下:PrivateSub about_Click()frmabout.ShowEnd SubPrivateSub add_user_Click()adduser.ShowEnd SubPrivateSub check_fi

13、nd_Click()13chaxun.ShowEnd SubPrivateSub data_manage_Click()sqlfind= select* from入出库 rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistic kumanage.ShowEnd SubPrivateSub exit_Click()UnloadMeEnd SubPrivateSub in_check_Click()jinku.Caption= 入库jinku.ShowEnd Sub在 MIDFORM1中主要代码如下:PrivateSub MDIFor

14、m_Load()frmdata= Falsefind= FalseEnd SubPrivateSub modify_pw_Click()changpwd.ShowEnd SubPrivateSub out_check_Click()jinku.Caption= 出库jinku.ShowEnd SubPrivateSub sum_check_date_Click()summary_menu = check_datehuizong.Show1End SubPrivateSub sum_date_custom_Click()summary_menu = date_customhuizong.Show

15、1End SubPrivateSub summary_check_Click()summary_menu = check14huizong.Show1End SubPrivateSub summary_custom_Click()summary_menu = customhuizong.Show1End SubPrivateSub summary_date_Click()summary_menu = datehuizong.Show1End SubPrivateSub Timer1_Timer()End Sub2.各子窗体代 码:入库子窗体代码。本窗体用来查询货物入库的信息,下面的代码是定义几

16、个变量:OptionExplicitDim rs_checkname As New ADODB.RecordsetDim rs_customAs New ADODB.RecordsetConstrow_num = 10Constcol_num = 6确定按钮代码 ;PrivateSub Command1_Click()Dim rs_saveAs New ADODB.RecordsetDim sqlAs StringDim iAs IntegerDim s As StringOn ErrorGoTo saveerrorIfTrim(Text1.Text)= ThenMsgBox 货单不能为空 !

17、,vbOKOnly + vbExclamation,Text1.SetFocusExitSubEnd IfIfCombo1.Text = ThenMsgBox 请选择货源地!,vbOKOnly + vbExclamation,Combo1.SetFocusExitSubEnd IfIfcomboy.Text= ThenMsgBox 请选择年份! ,vbOKOnly + vbExclamation,comboy.SetFocus15ExitSubEnd IfIfcombom.Text = ThenMsgBox 请选择月份! ,vbOKOnly + vbExclamation,combom.Set

18、FocusExitSubEnd IfIfcombod.Text= ThenMsgBox 请选择日期! , vbOKOnly + vbExclamation,combod.SetFocusExitSubEnd IfIfText2.Text= ThenMsgBox 请填写凭证号! , vbOKOnly + vbExclamation,Text2.SetFocusExitSubEnd IfIfText3.Text= ThenMsgBox 请填写经手人!,vbOKOnly + vbExclamation,Text3.SetFocusExitSubEnd IfIfMSFlexGrid1.Col 0 Th

19、enMsgBox 请输入完整的物品信息!,vbOKOnly + vbExclamation,MSFlexGrid1.SetFocusExitSubEnd If数据库比较代码:sql= select*from入出库 where 货单号 = & Text1.Text & rs_save.Opensql,conn,adOpenKeyset, adLockPessimisticIfrs_save.EOF Thenrs_save.AddNewrs_save.Fields(0)= Trim(Text1.Text)rs_save.Fields(1)=CDate(Trim(comboy.Text)& - &

20、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)If jinku.Caption= 入库 Thenrs_save.Fields(6)=TrueElsers_save.Fields(6)=FalseEnd If16rs_save.Updaters_save.CloseElseMsgBox

21、 货单号重复! , vbOKOnly + vbExclamation,Text1.SetFocusText1.Text= rs_save.CloseExitSubEndIfsql= select* from货物详况 rs_save.Open sql, conn,adOpenKeyset, adLockPessimisticFori= 1 To MSFlexGrid1.Row - 1rs_save.AddNewrs_save.Fields(0)=Trim(Text1.Text)rs_save.Fields(1)= CDate(Trim(comboy.Text)& -& Trim(combom.T

22、ext) & -& Trim(combod.Text)rs_save.Fields(2)=Trim(Combo1.Text)MSFlexGrid1.Row= iMSFlexGrid1.Col= 0rs_save.Fields(3)=Trim(MSFlexGrid1.Text)MSFlexGrid1.Col= 1Ifjinku.Caption= 出库 Thens = -& Trim(MSFlexGrid1.Text)rs_save.Fields(4)=CDbl(s)Elsers_save.Fields(4)=CDbl(Trim(MSFlexGrid1.Text)End IfMSFlexGrid1

23、.Col= 2rs_save.Fields(5)=Trim(MSFlexGrid1.Text)MSFlexGrid1.Col= 3rs_save.Fields(6)=Trim(MSFlexGrid1.Text)MSFlexGrid1.Col= 4Ifjinku.Caption= 出库 Thens = -& Trim(MSFlexGrid1.Text)rs_save.Fields(7)=CDbl(s)Elsers_save.Fields(7)=CDbl(Trim(MSFlexGrid1.Text)End IfMSFlexGrid1.Col= 5rs_save.Fields(8)=Trim(MSF

24、lexGrid1.Text)Nextirs_save.Updaters_save.CloseMsgBox 添加成功! ,vbOKOnly + vbExclamation,17UnloadMeExitSubsaveerror:MsgBox Err.DescriptionEnd SubPrivateSub Command2_Click()UnloadMeEnd SubPrivateSub Form_Load()Dimsql As StringDimiAsIntegerOn ErrorGoTo loaderrorsql= select*from货源地 rs_checkname.CursorLocat

25、ion= adUseClientrs_checkname.Opensql,conn,adOpenKeyset, adLockPessimisticsql= select*from客户名 rs_custom.CursorLocation= adUseClientrs_custom.Opensql,conn, adOpenKeyset, adLockPessimisticWhileNotrs_custom.EOFCombo2.AddItem rs_custom.Fields(0)rs_custom.MoveNextWendIf Notrs_checkname.EOF Thenrs_checknam

26、e.MoveFirstWhileNotrs_checkname.EOFCombo1.AddItemrs_checkname.Fields(0)rs_checkname.MoveNextWendEndIfcomboy.AddItem2002comboy.AddItem2003comboy.AddItem2004comboy.AddItem2005comboy.AddItem2006comboy.AddItem2007comboy.AddItem2008comboy.AddItem2009comboy.AddItem2010comboy.AddItem2011Fori= 1 To 12combom

27、.AddItem iNexti18Fori= 1 To 31combod.AddItemiNext isetgridsetgrid_headText5.Visible= Falseclear_gridExitSubloaderror:MsgBox Err.DescriptionEnd SubPrivateSub Form_Unload(CancelAs Integer) 关闭数据对象rs_checkname.Closers_custom.CloseEnd SubPublicSub setgrid()DimiAsIntegerOn ErrorGoTo seterrorMSFlexGrid1.Sc

28、rollBars= flexScrollBarBothMSFlexGrid1.FixedCols= 0MSFlexGrid1.Rows= row_numMSFlexGrid1.Cols= col_numMSFlexGrid1.SelectionMode= flexSelectionByRowFori= 0 To row_num -1MSFlexGrid1.RowHeight(i)= 315NextFori= 0 To col_num -1MSFlexGrid1.ColWidth(i)= 1300NextiExitSubseterror:MsgBox Err.DescriptionEnd Sub

29、PublicSub setgrid_head()On ErrorGoTo setheaderrorMSFlexGrid1.Row=0MSFlexGrid1.Col=0MSFlexGrid1.Text = 物品名称 MSFlexGrid1.Col=1MSFlexGrid1.Text=单价 MSFlexGrid1.Col=2MSFlexGrid1.Text=数量 19MSFlexGrid1.Col=3MSFlexGrid1.Text=单位 MSFlexGrid1.Col=4MSFlexGrid1.Text=金额 MSFlexGrid1.Col=5MSFlexGrid1.Text = 客户名 Exi

30、tSubsetheaderror:MsgBox Err.DescriptionEnd SubPublicSub clear_grid()DimiAs Integer,jAs IntegerFori= 1 To row_num -1MSFlexGrid1.Row= iForj= 0Tocol_num - 1MSFlexGrid1.Col=jMSFlexGrid1.Text=NextjNextiEnd SubPublicSub nextposition(ByValr AsInteger, ByVal c As Integer)On ErrorGoTo nexterrorText5.Width=MS

31、FlexGrid1.CellWidthText5.Height=MSFlexGrid1.CellHeightText5.Left=MSFlexGrid1.Left+ MSFlexGrid1.ColPos(c)Text5.Top= MSFlexGrid1.Top+ MSFlexGrid1.RowPos(r)Text5.Text=MSFlexGrid1.TextText5.Visible= TrueText5.SetFocusExitSubnexterror:MsgBox Err.DescriptionEnd SubPrivateSub MSFlexGrid1_Click()If Combo2.V

32、isible=TrueThenExitSubEndIfnextpositionMSFlexGrid1.Row, MSFlexGrid1.ColEnd SubPrivateSub Text5_KeyPress(KeyAsciiAs Integer)20Dim iAs Integer,jAs IntegerDim priceAs Double,coun As IntegerOn ErrorGoTo texterrorIfKeyAscii= keyenterThenMSFlexGrid1.Text= Text5.Texti = MSFlexGrid1.Rowj = MSFlexGrid1.ColIf

33、j=0 And Trim(Text5.Text)= ThenMsgBox 物品名称不能为空 ,vbOKOnly + vbExclamation,Text5.SetFocusExitSubEnd IfIfj=1 And NotIsNumeric(Text5.Text)ThenMsgBox 单价请输入数字! ,vbOKOnly + vbExclamation,Text5.SetFocusExitSubEnd IfIfj=2 And NotIsNumeric(Text5.Text)ThenMsgBox 数量请输入数字! ,vbOKOnly + vbExclamation,Text5.SetFocus

34、ExitSubEnd IfIfj=3 And Trim(Text5.Text)= ThenMsgBox 单位不能为空! ,vbOKOnly + vbExclamation,Text5.SetFocusExitSubEnd IfIfj=3 And NotIsNull(Text5.Text)ThenMSFlexGrid1.Col= 1price= CDbl(MSFlexGrid1.Text)MSFlexGrid1.Col= 2coun= CInt(MSFlexGrid1.Text)MSFlexGrid1.Col= 4MSFlexGrid1.Text= price*counMSFlexGrid1.C

35、ol= MSFlexGrid1.Col+ 1Text5.Visible=Falsesetcombo2MSFlexGrid1.Row,MSFlexGrid1.ColKeyAscii=0ExitSubEnd IfMSFlexGrid1.Col=MSFlexGrid1.Col+ 1KeyAscii=0nextpositionMSFlexGrid1.Row,MSFlexGrid1.ColEndIf21ExitSubtexterror:MsgBox Err.DescriptionEnd SubPublicSub setcombo2(ByValrAs Integer,ByVal c As Integer)

36、On ErrorGoTo seterrorCombo2.Width = MSFlexGrid1.CellWidthCombo2.Left= MSFlexGrid1.Left+ MSFlexGrid1.ColPos(c)Combo2.Top = MSFlexGrid1.Top+ MSFlexGrid1.RowPos(r)Combo2.Text = MSFlexGrid1.TextCombo2.Visible= TrueCombo2.SetFocusExitSubseterror:MsgBox Err.DescriptionEnd Sub 增加用户子窗体代码IfTrim(Text1.Text)=

37、ThenMsgBox 用户名不能为空,vbOKOnly + vbExclamation,ExitSubText1.SetFocusElseIfTrim(Text2.Text)= ThenMsgBox 密码不能为空 ,vbOKOnly + vbExclamation,ExitSubText2.SetFocusElsesql= select* from系统管理 rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic While (rs_add.EOF = False)IfTrim(rs_add.Fields(0)= Trim(Text1.Text)ThenMsgBox 已有这个用户 ,vbOKOnly + vbExclamation,Text1.SetFocusText1.Text= Text2.Text= Text3.Text= Combo1.Text = ExitSubElsers

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论