2024年2月8日发(作者:)
仓库管理系统数据库课程设计-课程设计
仓库管理系统
1.课程设计的目的
仓库管理信息系统主要是为公司的经营活动提供信息服务,它涵盖了仓库的各项管理工作,涉及多方面的职能。系统能够对客户信息管理、订单管理、报价单管理、供应商管理、出货管理等信息提供存储、更新、查询、统计的功能,使公司能够合理控制进销存的各个环节,提高资金的利用率和结算速度,实现管理的高效率、实时性、安全性、科学化、现代化和智能化。
按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持公司管理工作的全过程,加强各种信息资源的管理与运用,提高企业管理工作的现代化水平,优化人、财、物和信息资源在供、销等各环节的运行机制。
管理信息系统应逐步覆盖公司内部的所有部门和一切经营活动,使所有业务部门的工作人员在信息系统的辅助下进行工作,提高管理的整体水平,同时企业领导可以通过系统及时了解各部门工作的进展情况。
2.需求分析的任务
2.1功能需求
该系统主要分为三大功能: 管理员功能、用户功能。
管理员功能包括 :产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息、系统配置、查看系统事件。
用户功能包括:查询库内信息、查询出库信息、查询入库信息、修改本用户密码。
2. 2用户需求
根据用户需求,该系统应该实现以下功能:
(1)进、出库管理。对进、出库信息进行记录。
(2)查询功能。仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认。
(3)部门资料管理与库存报表生成。资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。报表主要分类为:日报表,月报表,销售报表,入库报表等等。
(4)应用计算机管理后,由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。
(5)应用计算机管理后,许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作
3数据库设计
3.1数据库的概念模型
用E—R图表示当前的数据库概念模型
图2.4入库实体
图2.5 出库实体图2.6 库存台账实体图2.7总 E-R图3.2功能模块图
库存管理人员可能对数据库的管理有不同的权限,根据要求赋予不同人员对数据库管理的权限
根据系统的业务流程和用户的需求分析可以得出,本系统应该包含产品基本信息管理、出入库管理、库存管理、系统管理、操作人员管理、查询、打印、统计等几大功能,如下图所示:
图3.2 总体功能模块图
其中入库管理包括新物品初次入库(包含基本信息的入库)和非新物品入库,打印可以按需要采购的物品和借出,进库,入库信息进行打印.
1)基本管理:具体用户是系统管理员,对于出库进库成功时系统直接算出该产品的余料
2)进库管理:主要完成对产品品名,规格型号,数量,单价,入库日期,入料人编号,入料人(入料人和编号为统一的,一入料人编号对应于一个入料人),经手人出库管理主要完成产品品名,规格型号,数量,单价,出库日期,出料人编号,出料人3)交接班是为了便于用户交接班时不用退出系统就可以进行数据库用户更换
4)修改密码必须先输入原始密码才让修改密码,防止用户离开时的疏忽而被其他人篡改用户信息和密码。
5)查询
按日期:查询某个时间段的出入库信息。
按人员:查询某个入料人或领料人的相关信息
按物品:查询某种商品的出入库信息和余料。
6)统计:提供一种统计方式,一般要求按月统计,可以查出该月内的出入库总次数,及相关详细信息。
7)设置:该操作只允许数据库管理员进行设置,对于无该权限的数据库管理员进入系统后无该功能。
3.3程序流程图
详细设计的结果基本上决定了总终的程序代码的质量。结构程序设计技术是实现上述目标的关键技术,是详细设计的逻辑基础,用程序流程图来表示。
图3.3 程序流程图
描述程序处理过程的工具称为过程设计的工具,它们可以分为图形,表格和语言三类。程序流程图又称为程序框图,一直是软件设计的主要工具,对控制流程的描绘很直观,便于掌握,它是历史最悠久,使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法,上图为本系统的程序流程图,直观地描述了上机管理系统。
3.4数据库的逻辑结构设计
数据库的逻辑模型
表4-1入库表(InStorehouse)
字段描述 字段名 字段类型 字段大小
品名 品名 文本 20
规格 规格 文本 20
导电 导电 文本 20
硬度 硬度 文本 20
数量 数量 数字型 单精度型
单位 单位 文本 4
入库日期 入库日期 日期型 8
入料人编号 入料人编号 文本 3
入料人 入料人 文本 8
经手人 经手人 文本 8
说明 说明 文本 40
入库标示 入库标示 文本 10
自动编号 自动编号 数字型 8
表4-2出库表(OutStorehouse)
字段描述 字段名 字段类型 字段大小
品名 品名 文本 20
规格 规格 文本型 20
导电 导电 文本 20
数量 数量 文本 单精度型
硬度 硬度 文本 20
单位 单位 文本 4
出库日期 入库日期 日期型 8
领料人编号 领料人编号 文本 3
领料人 领料人 文本 8
经手人 经手人 文本 8
说明 说明 文本 40
自动编号 自动编号 数字型 8表4-3库存表(Stock)
字段描述 字段名 字段类型 字段大小
品名 品名 文本 20
规格 规格 文本 20
导电 导电 文本 20
硬度 硬度 文本 20
数量 数量 数字型 单精度型
单位 单位 文本 4
4.编码实现
4.1系统物理实施
(1)硬件选择。系统中计算机能够运行Windows98以上操作系统即可。
(2)操作系统。Windows98以上操作系统。
(3)开发工具。面向对象程序设计语言Visual Basic 6.0。
(4)数据库管理系统。Microsoft Access数据库管理系统。
4.2创建仓库管理信息系统各界面并编写代码
4.2.1显示软件版本信息界面
打开Visual Basic 6.0后,单击File---New Project菜单,在工程模板中选择“展示屏幕”将产生一个展示屏幕窗体。设置各控件后如下图。
图4.1仓库管理信息系统504
仓库管理系统数据库课程设计
设置登录主窗体界面
在工程的窗体栏中添加一个窗体,点住窗体文件夹点右键----添加——添加窗体,设置各控件后如下图。
图4.2添加操作4.2.3主界面设置
新建一个窗体,建好界面后如下图4.2.4入库界面设置
图4.4入库界面设置4.2.5出库界面设置4.2.6设置管理员窗体5.软件测试
单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误
处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。
组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。
确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统不否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。
对于软件测试而言,黑盒测试法把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序在运行过程中能否保持外部信息(例如,数据库或文件)的完整性。
黑盒测试又称为功能测试,着重测试软件功能。黑盒测试力图发现下述类型的错误:①功能不正确或遗漏了功能;②界面错误;③数据结构错误或外部数据库访问错误;④性能错误;⑤初始化和终止错误。
当进行数据更新时,没有确定或取消,系统将提示以下对话框,如下图:
图5.1
当主要关键字段“型号”没有输入时,系统也将提示以下对话框,如下图:图5.2
当用户要删除记录时,为了保证不误操作,系统也将提出一个对话框,如下图图5.3
为了便有运行,还将程序打包,进行安装,在打包过程中,也出现以下对话框,如下图图5.46.心得体会
在这次课程设计中,由于我做的是仓库管理信息系统,根据老师的要求并结合本人实际能力,选择了用Visual Basic6.0作为开发环境,Microsoft Access作为数据环境制作该系统。通过这次课程设计,我对软件工程库设计的各个阶段(系统设计、需求分析、总体设计、详细设计)的目标、方法、应注意的事项有了比较深刻的了解同时也提高了用Visual Basic 6.0 的编程能力。在实际设计过程中也碰到了不少问题,例如用Visual Basic 6.0连接数据库时,开始总是连不上,经反复调试并且翻阅了一些介绍Visual Basic 6.0与数据库连接的书籍,经过一段时间后解决了该问题。
本系统的设计已经初步完成,由于时间的仓促以及经验的不足,难免存在许多问题,这就需要在今后的实践中加以修改和完善。本系统经过调试后,应该说基本上是可行的。当然,本系统仍有未完成的遗憾,比如说,对借出管理的归还方面实现的不是太理想。
在程序设计中,我觉得测试是一个复杂而重要的步骤,应该认真对待,当一个功能或一个函数过程完成后,必须认真测试,可以采取书本上学到的黑盒测试和白盒测试两种方法,黑盒测试时应该尽量把所有的可能性都一一试过,验证其正确性;而白盒测试则可以通过设置断点,添加监视来一步一步检查它的流程和数值的正确性。只有经过认真的测试,软件的质量才能得到保证。
同时了解到程序清单的布局对于程序的可读性也有很大影响,利用适当的阶梯形式可以使程序的层次结构清晰明显,还有经常作好一些代码的注释,这样对自己或别人检查程序时带来很大方便。
通过此次软件工程课程设计,我学习掌握了一个软件开发的整个过程,同时也深刻的体会到软件工程中的结构化,模块化的设计方法,以及提高软件可靠性、可维护性、提高效率的重要性。通过使用Visual Basic 6.0语言作为编程工具体会到其软件的强大功能及易学、易用的特性。由于时间限制,此设计中还有许多需要完善和优化的地方,真诚地希望大家指正.
仓库管理系统数据库课程设计
参考文献
[1] 萨师煊.王珊编.数据库系统概论.北京:高等教育出版社,2003年
[2] 张海藩.软件工程导轮.北京:清华大学出版社,2004年
[3] 徐士良.常用算法程序集.北京:清华大学出版社,2004年
[4] 龚沛曾.陆慰民.杨志强编.北京:高等教育出版社,2000.7
8.附录
5.1窗体相关的程序
Option Explicit
Private Sub Form_KeyPress(KeyAscii As Integer)
Unload Me
End Sub
Private Sub Form_Load()
lor = RGB(238, 78, 48)
lor = RGB(238, 78, 48)
End Sub
Private Sub Frame1_Click()
Unload Me
Load Login
End Sub
Private Sub imgLogo_Click()
Unload Me
Load Login
End Sub
Private Sub Label1_Click()
Unload Me
Load Login
End Sub
Private Sub lblPlatform_Click()
Unload Me
Load Login
End Sub
Private Sub lbladdress_Click()
Unload Me
Load Login
End Sub
Private Sub lblCompany_Click()
Unload Me
Load Login
End Sub
Private Sub lblCopyright_Click()
Unload Me
Load Login
End Sub
Private Sub lblProductName_Click()
Unload Me
Load Login
End Sub
Private Sub lblVersion_Click()
Unload Me
Load Login
End Sub
Private Sub Timer1_Timer()
Unload Me
Load Login
End Sub
Private Sub Timer2_Timer()
d = False
End Sub
5.2 窗体相关的程序
Dim datacount As Integer '操作员个数
Private Sub cmdCancel_Click() '取消
If Login1 = 1 Then
Unload Login
Else
End
End If
End Sub
Private Sub cmdDate_Click()
e = True
End Sub
Private Sub CmdOK_Click() '登录
If txtPassword = Password And Trim(Password) <> "" Or datacount = 0 Then
If Login1 = 1 Then
Load Mainform
Else
End If
If Rights = 2 Then
Mainform.M_e = False
Else
Mainform.M_e = True
End If
If Login1 = 1 Then (1).Text = "管理员: " &
Operater1
If Rights = 1 Then
Mainform.M_e = True
Else
Mainform.M_e = False
End If
Else
MsgBox "输入的密码有误,请重新输入"
us
End If
txtPassword = ""
End Sub
Private Sub Combo1_Click() '选择操作员
If Trim() <> "" And datacount <> 0 Then
d = True
us
Source = "select * from operater where 姓名='" & Trim()
& "'"
h
Operater1 = (0)
Password = (1)
Rights = (2)
End If
End Sub
Private Sub DTPicker1_Change() '改变日期
Date =
e = False
txtDate = Year(Date) & "年" & Month(Date) & "月" & Day(Date) & "日"
If datacount = 0 Then
Operater1 = "无"
d = False
d = False
d = True
e = True
Else
rst
Do While = False
m (0)
xt
Loop
e = False
End If
End Sub
Private Sub Text2_Change()
仓库管理系统数据库课程设计
End Sub
Private Sub Timer1_Timer()
= Time
End Sub
Private Sub pd() '判断是否存在操作员
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
dType = adCmdUnknown
Source = "select * from Operater"
h
datacount = Count
End Sub
Private Sub txtPassword_Change() '判断是否输入密码
If Len(Trim(txtPassword)) = 0 Then
d = False
Else
d = True
End If
End Sub
Private Sub txtPassword_GotFocus()
lor = &HC0FFFF
rt = 0
gth = 12
End Sub
Private Sub txtPassword_LostFocus()
lor = &HFFC0C0
End Sub
与主界面窗体相关的程序
Private Sub FirstInStore_Click()
= True
End Sub
Private Sub M_ChangePassword_Click()
End Sub
Private Sub M_ClearData_Click()
End Sub
Private Sub M_DataBackup_Click()
End Sub
Private Sub M_DataMake_Click()
End Sub
Private Sub M_Exchange_Click()
Login1 = 1
n = "交接班"
1
End Sub
Private Sub M_Exit_Click()
aa = MsgBox("退出前请确定数据是否保存!!", 1 + 32)
If aa = 1 Then End
End Sub
Private Sub M_FindArticle_Click()
End Sub
Private Sub M_FindDate_Click()
End Sub
Private Sub M_FindPerson_Click()
End Sub
Private Sub laterInstore_Click()
= True
End Sub
Private Sub M_LendThings_Click()
End Sub
Private Sub M_ManSetup_Click()
End Sub
Private Sub M_OperaterSetup_Click()
End Sub
Private Sub M_OutStorehouse_Click()
End Sub
Private Sub M_PrintDay_Click()
End Sub
Private Sub M_Printjgj_Click()
End Sub
Private Sub M_PrintMonth_Click()
End Sub
Private Sub M_Printmustbuy_Click()
End Sub
Private Sub M_ProducePlan_Click()
End Sub
Private Sub M_Sparelist_Click()
End Sub
Private Sub M_StorehouseManage_Click()
End Sub
Private Sub M_StorehouseSetup_Click()
End Sub
Private Sub M_PrintMust_Click()
End Sub
Private Sub M_TEMP_Click()
1
End Sub
Private Sub M_TotalDay_Click()
End Sub
Private Sub M_TotalMonth_Click()
End Sub
Private Sub MDIForm_Load()
lor = &H80000003
State = 2
str1 = "日一二三四五六"
(4).Text = "星期" & Mid(str1, Weekday(Date), 1)
(3).Text = Date
(1).Text = "管理员: " & Operater1
End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = MsgBox("退出前请确定数据是否保存!!", 1 + 32)
If Cancel = 1 Then End
End Sub
Private Sub MDIForm_Resize()
' State = 2
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As )
仓库管理系统数据库课程设计
Select Case
Case "T_InStorehouse"
FirstInStore_Click
Case "T_Calc"
Shell ( + "")
Case "T_Lend"
Call M_LendThings_Click
Case "T_Exchange"
Call M_Exchange_Click
Case "T_Temp"
Call M_TEMP_Click
Case "T_Exit"
Call M_Exit_Click
Case "T_OutStorehouse"
Call M_OutStorehouse_Click
Case "T_StorehouseManage"
Call M_StorehouseManage_Click
Case "T_FindPerson"
Call M_FindPerson_Click
Case "T_FindArticle"
Call M_FindArticle_Click
Case "T_ProducePlan"
Call M_ProducePlan_Click
End Select
End Sub
与入库界面相关代码
Public rk As String '入库的类型
Public reccount As Integer '记录条数
Public row1 As Integer '单击list2时返回的行数
Private Sub Command1_Click() '补充数据
'判断输入的数据是否都为空
'-----------------------------------------------补充出库信息
--------------------------
If Trim(Text1(13)) <> "" Or Trim(Text1(14)) <> "" Or Trim(Text1(15)) <> "" Or
Trim(Text1(16)) <> "" Then
Source = "select * from outstorehouse where 编号=" +
trix(row1, 4)
h
With set
.Fields(8) = Text1(13)
.Fields(9) = Text1(14)
.Fields(10) = Text1(15)
.Fields(11) = Text1(16)
.Update
End With
Call Command2_Click
d = False
Else
MsgBox ("请输入数据!")
End If
'---------------------------------------------
End Sub
Private Sub Command2_Click() '补充出库信息时的数据清零
For i = 13 To 16
Text1(i).Text = ""
Next i
End Sub
Private Sub Command3_Click() '按确定按钮
'-------------------------------判断输入----------------------------
If = False Then
If Trim(Text1(0).Text) = "" Or Trim(Text1(1).Text) = "" Then '当不要补充出库的信息时
MsgBox ("品名与规格不能为空!")
Text1(0).SetFocus
Exit Sub
End If
If Trim(Text1(8).Text) = "" Then
MsgBox ("请输入领料人!")
Text1(7).SetFocus
Exit Sub
End If
Else
If Trim(Text1(0).Text) = "" Or Trim(Text1(1).Text) = "" Then '入库的关键信息
MsgBox ("品名与规格不能为空!")
Text1(0).SetFocus
Exit Sub
End If
If Trim(Text1(11).Text) = "" Or Trim(Text1(12).Text) = "" Then '当要补充出库的信息时
MsgBox ("品名与规格不能为空!")
Text1(11).SetFocus
Exit Sub
End If
If Trim(Text1(8).Text) = "" Then
MsgBox ("请输入领料人!")
Text1(7).SetFocus
Exit Sub
End If
End If
If IsNumeric(Text1(4)) = False Then '判断数量是否为数值
MsgBox ("你输入的数量有误,请输入数值!")
Text1(4).Text = ""
Text1(4).SetFocus
Exit Sub
End If
'-------------------------- -----------------------------------------
Text1(9).Text = Operater1
'----------给进库表增加信息
Source = "select * from instorehouse"
h
With set
.AddNew
.Fields(0) = Text1(0).Text
.Fields(1) = Text1(1).Text
.Fields(2) = Text1(2).Text
.Fields(3) = Text1(3).Text
.Fields(4) = Val(Text1(4).Text)
.Fields(5) = Text1(5).Text
.Fields(6) = Date
.Fields(7) = Text1(7).Text
.Fields(8) = Text1(8).Text
.Fields(9) = Text1(9).Text
.Fields(10) = Text1(10).Text
.Fields(11) = rk
.Update
End With
Call list1disp
'--------------------
'----------给库存表增加信息
Source = "select * from stock where 品名 ='" + Trim(Text1(0)) _
+ "' and 规格 = '" + Trim(Text1(1).Text) + "'" '查找库中是否有该物品
h
If = True Then
With set
.AddNew
.Fields(0) = Text1(0).Text
.Fields(1) = Text1(1).Text
.Fields(2) = Text1(2).Text
.Fields(3) = Text1(3).Text
.Fields(4) = Val(Text1(4).Text)
.Fields(5) = Text1(5).Text
.Update
End With
Else
With set
.Fields(4) = .Fields(4) + Text1(4)
.Update
End With
End If
'--------------------
'----------给出库表增加信息
Source = "select * from stock where 品名 ='" + Trim(Text1(0)) _
+ "' and 规格 = '" + Trim(Text1(1).Text) + "'" '查找库中是否有该物品
h
'--------------------
Call clearzore
Text1(6) = Date
Text1(9) = Operater1
Text1(0).SetFocus
End Sub
Private Sub Command4_Click() '取消
Call clearzore
Text1(0).SetFocus
End Sub
Private Sub Command5_Click() '返回
Unload Me
End Sub
Private Sub command6_Click() '出库材料的查询
'---------------------判断出库查询输入的数据--------------
If Trim(Text1(11).Text) = "" Or Trim(Text1(12).Text) = "" Then '当要补充出库的信息时
MsgBox ("品名与规格不能为空!")
Text1(11).SetFocus
Exit Sub
End If
仓库管理系统数据库课程设计
Call list2disp
d = False
'-------------------------------------------------
End Sub
Private Sub Form_Load()
= ( - ) / 2 - 800
= ( - ) / 2
n = "仓库管理系统→" & "入库操作"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
Call clearzore
Call option1def
Call list2def
Call list1def
Call list1disp
Text1(6).Text = Date
Text1(9).Text = Operater1
d = False
End Sub
Private Sub list2_Click()
row1 = '返回单击的行值
If row1 <> 0 Then
d = True
End If
Source = "select * from outstorehouse where 编号=" +
trix(row1, 4)
h
If = False Then '此if 为了判断LIST1中是否有数据
d = True
With set
If IsNull(.Fields(8)) = True Then
Text1(13).Text = ""
Else
Text1(13).Text = .Fields(8)
End If
If IsNull(.Fields(9)) = True Then
Text1(14).Text = ""
Else
Text1(14).Text = .Fields(9)
End If
If IsNull(.Fields(10)) = True Then
Text1(15).Text = ""
Else
Text1(15).Text = .Fields(10)
End If
If IsNull(.Fields(11)) = True Then
Text1(16).Text = ""
Else
Text1(16).Text = .Fields(11)
End If
End With
Else
d = False
End If
End Sub
Private Sub Option1_Click()
rk = "初次入库"
Call option1def
End Sub
Private Sub Option2_Click()
rk = "余料入库"
d = False
Call option2def
d = False '一开始就屏蔽list2的单击事件
End Sub
Private Sub Text1_GotFocus(Index As Integer)
Text1(Index).BackColor = &HC0FFFF
End Sub
Private Sub Text1_LostFocus(Index As Integer)
Text1(Index).BackColor = &HFFC0C0
If Index = 7 Then
Source = "select * from person where 编号 = '" + Trim(Text1(7)) + "'"
h
If Then
MsgBox ("库中无此人,请重新输入编号!")
Text1(7).Text = ""
Text1(8).Text = ""
'Text1(7).SetFocus
Else
Text1(8).Text = (1)
End If
End If
End Sub
Private Sub list2def() '将list2的表头初始化
trix(0, 0) = "品名"
trix(0, 1) = "规格"
trix(0, 2) = "领料人"
trix(0, 3) = "出库日期"
trix(0, 4) = "编号"
End Sub
Private Sub list1def() '将list1的表头初始化
trix(0, 0) = "品名"
trix(0, 1) = "规格"
trix(0, 2) = "导电"
trix(0, 3) = "硬度"
trix(0, 4) = "数量"
trix(0, 5) = "单位"
trix(0, 6) = "入料日期"
End Sub
Private Sub option1def() '按option1屏蔽补充出库信息项
d = False
d = False
d = False
End Sub
Private Sub option2def() '按option2打开补充出库信息项
d = True
d = True
d = True
End Sub
Private Sub clearzore() '将数据项初始化
For i = 0 To 16
Text1(i).Text = ""
Text1(i).BackColor = &HFFC0C0
Next i
= True
rk = "初次入库"
End Sub
Private Sub list2disp()
Dim roww As Integer ''行
Call list2def
roww = 1
= 1
Source = "select * from outstorehouse where 品名 ='" +
Trim(Text1(11).Text) + _
"' and 规格 ='" + Trim(Text1(12).Text) + "'"
h
If = True Then
d = False '屏蔽list2的单击事件
Exit Sub
Else
d = True
End If
rst
Do While = False
= + 1
trix(roww, 0) = (0)
trix(roww, 1) = (1)
trix(roww, 2) = (7)
trix(roww, 3) = (6)
trix(roww, 4) = (11)
roww = roww + 1
xt
Loop
reccount = Count
End Sub
Private Sub list1disp()
Dim roww As Integer ''行
roww = 1
= 1
Call list1def
Source = "instorehouse"
h
If = False Then
rst
End If
Do While = False
仓库管理系统数据库课程设计
= + 1
trix(roww, 0) = (0)
trix(roww, 1) = (1)
trix(roww, 2) = (2)
trix(roww, 3) = (3)
trix(roww, 4) = (4)
trix(roww, 5) = (5)
trix(roww, 6) = (6)
roww = roww + 1
xt
Loop
End Sub
与出库界面相关的代码
Private Sub Command1_Click()
Dim YesNo As String
'-------------------------------判断输入----------------------------
If Trim(Text1(0).Text) = "" Or Trim(Text1(1).Text) = "" Then '当不要补充出库的信息时
MsgBox ("品名与规格不能为空!")
Text1(0).SetFocus
Exit Sub
End If
If Trim(Text1(8).Text) = "" Then
MsgBox ("请输入领料人!")
Text1(7).SetFocus
Exit Sub
End If
If IsNumeric(Text1(4)) = False Then '判断数量是否为数值
MsgBox ("你输入的数量有误,请输入数值!")
Text1(4).Text = ""
Text1(4).SetFocus
Exit Sub
End If
'---------------------------------------------------------------------
'-------------------------修改库存中的信息----------------------------
Source = "select * from stock where 品名='" + Trim(Text1(0)) + "' and
规格='" + Trim(Text1(1)) + "'"
h
If = True Then
MsgBox ("仓库中无此物品,请采购!")
Text1(0).SelStart = 0
Text1(0).SelLength = Len(Text1(0).Text)
Text1(0).SetFocus
Exit Sub
Else '存在此物,判断它的数量值
With set
If .Fields(4) < Val(Text1(4)) And .Fields(4) <> 0 Then
YesNo = MsgBox("数量超出库存数量【" + Trim(Str(.Fields(4))) + "】是否全取!", vbYesNo)
'------------------- '根据操作来进行操作
If YesNo = "6" Then
temp = .Fields(4)
.Fields(4) = 0
.Update
'给出库加信息
Source = "outstorehouse"
h
With set
.AddNew
.Fields(0) = Text1(0)
.Fields(1) = Text1(1)
.Fields(2) = Text1(2)
.Fields(3) = Text1(3)
.Fields(4) = temp
.Fields(5) = Text1(5)
.Fields(6) = Date
.Fields(7) = Text1(7)
.Fields(8) = Text1(8)
.Fields(9) = Text1(9)
.Fields(10) = Text1(10)
.Update
End With
Call list1disp
Call Command2_Click
'------------------------------
Else
Text1(4).SelStart = 0
Text1(4).SelLength = Len(Text1(4))
Text1(4).SetFocus
Exit Sub
End If
'-------------------
Else
'--------------------
If .Fields(4) = 0 Then
MsgBox ("此物品已为空!")
Text1(0).SelStart = 0
Text1(0).SelLength = Len(Text1(0))
Text1(0).SetFocus
Exit Sub
Else
.Fields(4) = .Fields(4) - Val(Text1(4))
.Update
'给出库加信息
Source = "outstorehouse"
h
With set
.AddNew
.Fields(0) = Text1(0)
.Fields(1) = Text1(1)
.Fields(2) = Text1(2)
.Fields(3) = Text1(3)
.Fields(4) = Text1(4)
.Fields(5) = Text1(5)
.Fields(6) = Text1(6)
.Fields(7) = Text1(7)
.Fields(8) = Text1(8)
.Fields(9) = Text1(9)
.Fields(10) = Text1(10)
.Update
End With
Call list1disp
Call Command2_Click
End If
'--------------------
End If
End With
End If
'---------------------------------------------------------------------
'-------------------------给出库添加信息------------------------------
'---------------------------------------------------------------------
End Sub
Private Sub Command2_Click()
Call clearzore
Text1(6).Text = Date
Text1(9).Text = Operater1
1(0).SetFocus
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
n = "仓库管理系统→" & "出库操作"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
Call clearzore
Call list1def
Text1(9).Text = Operater1
Text1(6).Text = Date
Call list1disp
End Sub
Private Sub list1def() '将list1的表头初始化
trix(0, 0) = "品名"
trix(0, 1) = "规格"
trix(0, 2) = "导电"
trix(0, 3) = "硬度"
trix(0, 4) = "数量"
trix(0, 5) = "单位"
trix(0, 6) = "出库日期"
trix(0, 7) = "领料人编码"
trix(0, 8) = "领料人"
trix(0, 9) = "经手人"
trix(0, 10) = "说明"
仓库管理系统数据库课程设计
End Sub
Private Sub clearzore() '将数据项初始化
For i = 0 To 10
Text1(i).Text = ""
Text1(i).BackColor = &HFFC0C0
Next i
End Sub
Private Sub Text1_GotFocus(Index As Integer)
Text1(Index).BackColor = &HC0FFFF
End Sub
Private Sub Text1_LostFocus(Index As Integer)
Text1(Index).BackColor = &HFFC0C0
If Index = 7 Then
Source = "select * from person where 编号 = '" + Trim(Text1(7)) + "'"
h
If Then
MsgBox ("库中无此人,请重新输入编号!")
Text1(7).Text = ""
Text1(8).Text = ""
'Text1(7).SetFocus
Else
Text1(8).Text = (1)
End If
End If
End Sub
Private Sub list1disp()
Dim roww As Integer ''行
roww = 1
= 1
Call list1def
Source = "select * from outstorehouse"
h
If = False Then
rst
End If
Do While = False
= + 1
trix(roww, 0) = (0)
trix(roww, 1) = (1)
trix(roww, 2) = (2)
trix(roww, 3) = (3)
trix(roww, 4) = (4)
trix(roww, 5) = (5)
trix(roww, 6) = (6)
trix(roww, 7) = (7)
trix(roww, 8) = (8)
trix(roww, 9) = (9)
trix(roww, 10) = (10)
roww = roww + 1
xt
Loop
End Sub
与该窗体相关的代码
Dim row1 As Integer '选择某条记录
Dim pd As Integer '判断是否选中某一项记录
Dim datacount As Integer '判断数据库中是否有记录
Private Sub cmdadd_Click() '添加操作员
Source = "select * from operater where 姓名='" & Trim(Text1(0)) & "'"
h
If = False Then
MsgBox "该操作员已经存在"
Else
If Option1(0).Value = True Then
czqx = 1
Else
czqx = 2
End If
(0) = Trim(Text1(0))
(1) = Trim(Text1(1))
(2) = czqx
h
End If
d = True
Call flash
Text1(0) = ""
Text1(1) = ""
Option1(1).Value = True
Text1(0).SetFocus
End Sub
Private Sub cmdCancel_Click() '取消
Text1(0) = ""
Text1(1) = ""
Text1(0).SetFocus
Text1(0).Locked = False
Text1(0).TabStop = True
pd = 0
e = True
d = False
e = False
End Sub
Private Sub cmddel_Click() '删除操作员信息
Source = "select * from operater where 姓名='" & Trim(Text1(0)) & "'"
h
If = True Then
MsgBox "没有这个操作员!!"
Text1(0).SetFocus
Else
aa = MsgBox("是否删除操作员【" & Text1(0) & "】的信息", 1 + 32)
If aa = 1 Then
h
Call csf
Call pdd
If datacount <> 0 Then Call flash
End If
Call cmdCancel_Click
End If
End Sub
Private Sub cmdMODI_Click() '修改操作员信息
If Trim(Text1(1)) = "" Then
MsgBox "密码不能为空"
Text1(1).SetFocus
Exit Sub
Else
aa = MsgBox("是否修改此操作员的信息", 1 + 32)
If aa = 1 Then
Source = "select * from operater where 姓名='" & Trim(Text1(0))
& "'"
h
(1) = Text1(1)
If Option1(0).Value = True Then
(2) = 1
Else
(2) = 2
End If
h
Call flash
End If
End If
Call cmdCancel_Click
End Sub
Private Sub cmdRet_Click() '返回
pd = 0
Unload frmOperater
End Sub
Private Sub Form_Load() '初始化
= ( - ) / 2 - 800
= ( - ) / 2
n = "仓库管理系统→" & "操作员设置"
tionString = "Provider=.4.0;Data
Source=;Persist Security Info=False"
Call csf
Call pdd
If datacount <> 0 Then Call flash
End Sub
Private Sub List_Click() '选中某一条记录
pd = 1
row1 =
Text1(0) = trix(row1, 0)
Text1(1) = ""
If trix(row1, 2) = 1 Then
Option1(0).Value = True
Else
Option1(1).Value = True
End If
仓库管理系统数据库课程设计
d = True
d = True
d = False
e = False
d = True
e = True
Text1(0).Locked = True
Text1(0).TabStop = False
Text1(1).SetFocus
End Sub
Private Sub Text1_Change(Index As Integer) '判断输入是否为空
If Trim(Text1(0)) = "" Or Trim(Text1(1)) = "" Then
d = False
d = False
Else
If pd = 1 Then
d = True
Else
d = True
d = True
End If
End If
End Sub
Private Sub Text1_GotFocus(Index As Integer)
If Text1(Index).TabStop = True Then
Text1(Index).BackColor = &HC0FFFF
Text1(Index).SelStart = 0
Text1(Index).SelLength = 12
End If
End Sub
Private Sub Text1_LostFocus(Index As Integer)
Text1(Index).BackColor = &HFFC0C0
End Sub
Private Sub pdd() '判断数据库中是否有记录
Source = "select * from operater"
h
datacount = Count
If datacount = 0 Then
d = False
Else
d = True
End If
End Sub
Private Sub flash() '刷新列表
Dim roww As Integer ''行
roww = 1
= 1
Call csf
Source = "operater"
h
rst
Do While = False
= + 1
trix(roww, 0) = (0)
trix(roww, 1) = (1)
trix(roww, 2) = (2)
roww = roww + 1
xt
Loop
End Sub
Private Sub csf() '列表初始化
trix(0, 0) = "姓名"
trix(0, 1) = "密码"
trix(0, 2) = "权限"
th(0) = 1500
th(1) = 2500
th(2) = 1000
End Sub
本文发布于:2024-02-08 04:46:30,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170733879066571.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |