库存管理系统下_第1页
库存管理系统下_第2页
库存管理系统下_第3页
库存管理系统下_第4页
库存管理系统下_第5页
全文预览已结束

下载本文档

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

文档简介

1、库存管理系统下    第五章 系统实施 51、开发工具简介 本系统的前端开发工具,我选择了Visual Basic6.0,后台数据库采用Access2000。 5.1.1 VB简介 Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。 5

2、.1.2 VB功能特点 l 具有面向对象的可视化设计工具 在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一 个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。 l 事件驱动的编程机制 事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有

3、联系。 l 提供了易学易用的应用程序集成开发环境 在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。 l 结构化的程序设计语言 VB具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点: Ø 强大的数值和字符串处理功能 Ø 丰富的图形指令,可方便地绘制各种图形 Ø 提供静态和动态数组,有利于简化内存的管理 Ø 过程可递归调用,使程序更为简练 Ø 支持随机文件和顺序文件的访问 Ø 提供了一个可供应用程序调用的包含多种类型的

4、图标库 Ø 具有完善的运行出错处理 l 支持多种数据库系统的访问 利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro和Paradox等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。 l 支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术 l 完备的HELP联机帮助功能 与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示

5、例代码,为用户的学习和使用提供了极大的方便。 VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执 行是由外来事件决定的。因此是“事件”驱动的。 编写VB程序较为简单,首先将各个对象放在空白窗体上,然后将程序代码分别添加给对象或图标,将它们组合起来就可以随意运行了。 在VB中,窗体实际上是一个对象,VB的窗体含有许多内嵌特性,这使得用户界面部分的建立像是从一个目录中挑选一个个合适的控件,而不是从零开始一步一步地建立控件。

6、这种开发者能亲眼看到的程序设计过程就是“可视化程序设计”(Visual Programming) 5.1.3 VB中的基本概念 对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。 属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。 方法:就是对象能够做的事,如打印机对象就有

7、打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。 事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。 控件:控件就是Visual Basic提供的编程用的模块,与对象有直接的联系,如同积木的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”你的程序界面。Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任

8、何要求的程序。例如,如果你不满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。 5.1.4 Access2000数据库简介 作为Microsoft的office套件产品之一,access已经成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsoft FoxPro)和服务器、小型机及大型机上的许多SQL数据库。Ac

9、cess还完全支持Microsoft的OLE技术。 Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。 Access的总体结构 Access将所有有名字的东西都成为对象(object),在Access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。 表 用户定义的存储资料的对象。每一个表都包含有关某个主体的信息。表包括

10、存储不同种类资料的字段(列),而记录(行)则收集特定主体实例的所有信息。 查询 为来自一个或多个表的资料提供定制视图的对象。在Access中,可以利用图形化的实例查询机制(QBE)或通过SQL语句来建立查询。你可以在查询中选择、更新、插入或删除资料,也可以用查询来建立新表。 窗体 窗体是主要的人机接口。大量的操作(几乎所有)都要通过窗体完成。窗体通过运行宏(macro)或Visual Basic for Applicatinns(VBA)过程,来响应大量的事件。Access 2000为我们提供了强大的(同时也是相当方便的向导)来建立标准的Windows窗体。 报表 为格式化、计算、打印选定资料

11、而设计的对象。它是衡量一个优秀的数据库的重要标准(有时甚至是唯一的标准)。 宏 为了响应已定义的事件,需要让Access去执行一个或多个操作,而宏就是对这些操作的结构化的定义对象。它可以让你像堆积木一样建立一个功能强大的程序,而无须写大量的代码。 模块 包括用VBA编码的定制过程的一个对象。模块提供了独立的动作流以捕获错误,而宏做不到。模块能直接响应窗体或报表事件,也可以从应用程序的任何地方被调用。  Adodc1.RecordSource = frmLogin.Adodc1.RecordSource     Adodc1.Refresh  &

12、#160;  Set Text4.DataSource = Adodc1     Text4.DataField = "密码"     If Text1 = "" Then         MsgBox "请输入原密码!", , "修改密码"         Exit Sub   

13、0; ElseIf Text1.Text <> Adodc1.Recordset.Fields("密码") Then         MsgBox "原密码错误!", , "修改密码"         Exit Sub     ElseIf Text2 = "" Or Text3 = "" Then  &#

14、160;      MsgBox "请输入新密码!", , "修改密码"         Exit Sub     ElseIf Text2 <> Text3 Then         MsgBox "密码不一致!", , "修改密码"     &

15、#160;   Exit Sub     Else         Text4.Text = Text2.Text         Adodc1.Recordset.MoveFirst         MsgBox "密码修改成功!", , "修改密码"    

16、0;    Unload Me     End If      Dim I, J As Integer     Dim STR As String     If Text1.Text = "" Or Text2 = "" Or Combo1.Text = "" Or Text4 = "" Or Text5 = "" Or Tex

17、t6 = "" Or Text7 = "" Then         MsgBox "请输入完整信息!"         Exit Sub     Else 将记录存入入库记录表         设备入库表.datPrimaryRS.Recordset.Fields("设备号")

18、 = Text1.Text         设备入库表.datPrimaryRS.Recordset.Fields("入库数量") = Text2.Text         设备入库表.datPrimaryRS.Recordset.Fields("入库时间") = Combo1.Text         设备入库表.datPrimaryRS.Rec

19、ordset.Fields("供应商") = Text4.Text         设备入库表.datPrimaryRS.Recordset.Fields("供应商电话") = Text5.Text         设备入库表.datPrimaryRS.Recordset.Fields("价格") = Text6.Text       &

20、#160; 设备入库表.datPrimaryRS.Recordset.Fields("采购员") = Text7.Text         MsgBox "已经成功入库!"     End If  设备入库表.Adodc1.RecordSource = "select * from 现有库存表 where 设备号='" & Text1.Text & "'"  

21、60;  设备入库表.Adodc1.Refresh     设备入库表.DataGrid1.Refresh     If 设备入库表.Adodc1.Recordset.RecordCount > 0 Then                   将记录加入现有库存表中        

22、 设备入库表.Text9.Text = CInt(设备入库表.Text9.Text) + CInt(Text2.Text)         设备入库表.Text9.Refresh         J = 设备入库表.Text9         设备入库表.Adodc1.Recordset.MoveFirst       

23、0; 设备入库表.Adodc1.Recordset.Fields.Refresh         设备入库表.DataGrid1.Refresh         MsgBox "现有库存量为:" & J     Else         STR = "现有库存表中无此设备!" & vbCrLf &

24、; "请在设备代码表和现有库存表中手动添加记录!"         MsgBox STR         Load frm现有库存表         frm现有库存表.Show         Call frm现有库存表.Command1_Click     

25、    FrmAddNewEqu.Text1.Text = frmInput.Text1.Text         FrmAddNewEqu.Text2.Text = frmInput.Text2.Text         Load frm设备代码表         frm设备代码表.Show     End If  

26、 End Sub Private Sub cmdDelete_Click( ) 删除入库表中记录   On Error GoTo DeleteErr   Dim YesNo As String   YesNo = MsgBox("删除", vbYesNo, "删除记录")   If YesNo = vbYes Then     With datPrimaryRS.Recordset         .Delete &

27、#160;       .MoveNext         If .EOF Then .MoveLast     End With   Else     Exit Sub End If DeleteErr:   MsgBox Err.Description End Sub Private Sub cmdUpdate_Click( ) 更新纪录程序   On Error GoTo

28、 UpdateErr   datPrimaryRS.Recordset.UpdateBatch adAffectAll    Exit Sub UpdateErr:   MsgBox Err.Description    Private Sub Command1_Click( )设备出库程序     Dim i, J, k As Integer     Dim STR As String     frm设备出库表.Adodc1

29、.RecordSource = "select * from 现有库存表 where 设备号='" & Text1.Text & "'"     frm设备出库表.Adodc1.Refresh     frm设备出库表.DataGrid1.Refresh     If IsNumeric(Text2) = False Then         MsgBox &quo

30、t;数量必须是数字!"         Exit Sub     End If     If Text1.Text = "" Or Text2 = "" Or Combo1.Text = "" Or Text4 = "" Or Text5 = "" Or Text6 = "" Or Text7 = "" Then &#

31、160;       MsgBox "请输入完整信息!"         Exit Sub     ElseIf frm设备出库表.Adodc1.Recordset.RecordCount <= 0 Then         STR = "现有库存表中无此设备!请检查输入是否正确!"    &

32、#160;    MsgBox STR         Exit Sub     Else         frm设备出库表.datPrimaryRS.Recordset.Fields("设备号") = Text1.Text         frm设备出库表.datPrimaryRS.Recordset.Fi

33、elds("出库数量") = Text2.Text         frm设备出库表.datPrimaryRS.Recordset.Fields("出库时间") = Combo1.Text         frm设备出库表.datPrimaryRS.Recordset.Fields("经手人") = Text4.Text       &#

34、160; frm设备出库表.datPrimaryRS.Recordset.Fields("领取人") = Text5.Text         frm设备出库表.datPrimaryRS.Recordset.Fields("使用部门") = Text6.Text         frm设备出库表.datPrimaryRS.Recordset.Fields("用途") = Text7.Text &#

35、160;       MsgBox "已经成功存入设备出库表库!"     End If         If frm设备出库表.Adodc1.Recordset.RecordCount > 0 Then         k = CInt(frm设备出库表.Text9.Text) - CInt(Text2.Text)    

36、;     If k >= 0 Then             frm设备出库表.Text9.Text = CInt(frm设备出库表.Text9.Text) - CInt(Text2.Text)             frm设备出库表.Text9.Refresh      &#

37、160;      J = frm设备出库表.Text9             frm设备出库表.Adodc1.Recordset.MoveFirst             frm设备出库表.Adodc1.Recordset.Fields.Refresh       

38、;      frm设备出库表.DataGrid1.Refresh             MsgBox "现有库存量为:" & J         Else             MsgBox "现有库存量不足!请输入

39、合适数量!"             Exit Sub         End If     Else         STR = "现有库存表中无此设备!请检查输入是否正确!"         MsgBox STR&#

40、160;     End If End Sub Private Sub cmdDelete_Click( )删除出库记录   On Error GoTo DeleteErr   Dim YesNo As String   YesNo = MsgBox("删除", vbYesNo, "删除记录")   If YesNo = vbYes Then     With datPrimaryRS.Recordset    &#

41、160;    .Delete         .MoveNext         If .EOF Then .MoveLast     End With   Else     Exit Sub End If DeleteErr:   MsgBox Err.Description End Sub更新记录程序同入库的更新程序相同,在此略 5.2.5设

42、备采购模块实现,程序略     主要程序 Private Sub cmdAdd_Click( ) 添加设备 On Error GoTo AddErr datPrimaryRS.Recordset.AddNew Exit Sub AddErr: MsgBox Err.Description End Sub 5.2.8 库存报警模块实现    主要程序 Private Sub Command1_Click() 显示高于最大警戒库存的设备    datPrimaryRS.RecordSour

43、ce = "select * from 现有库存表 where 现有库存>最大库存"    datPrimaryRS.Refresh    grdDataGrid.Refresh    If datPrimaryRS.Recordset.RecordCount > 0 Then         Beep         MsgBox "表中设备已过量!&q

44、uot;    Else         MsgBox "没有设备库存过量!"    End If End Sub   Private Sub Command2_Click()显示低于于最小警戒库存的设备       datPrimaryRS.RecordSource = "select * from 现有库存表 where 现有库存<最小库存"    datPrimar

45、yRS.Refresh    grdDataGrid.Refresh    If datPrimaryRS.Recordset.RecordCount > 0 Then         Beep         MsgBox "表中设备库存量已过警戒线!请采购!"    Else         Msg

46、Box "没有设备库存量过少!"                          End If                   End sub Private Su

47、b Timer1_Timer() 自动报警程序    frmAlarm.datPrimaryRS.RecordSource = "select * from 现有库存表 where 现有库存>最大库存"    frmAlarm.datPrimaryRS.Refresh       If frmAlarm.datPrimaryRS.Recordset.RecordCount > 0 Then        

48、 Beep         MsgBox "有设备库存超过警戒库存!" & vbCrLf & "请查看库存报警记录"         Timer1.Enabled = False         frmAlarm.Show         Exit Sub      End If    End Sub   Private Sub Timer2_Timer()    frmAlarm.datPri

温馨提示

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

评论

0/150

提交评论