




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
企业库存管理系统的开发 产品信息管理(信息2000级五班 第二小组 叶绥波 09100146)一、需求分析1. 实现产品按分类的查询,修改;2. 实现产品信息的查询,修改;3. 在主界面的“产品管理”菜单下进行“产品类目”和“产品信息”的相关添加,删除和查询,并且能过退回到主界面下。二、功能模块划分本系统可以实现5个完整的功能。根据这些功能,设计出的功能模块如图 所示。 企业库存管理系统基本信息管理产品信息管理库存操作管理客户信息管理用户信息管理仓库信息管理产品类目管理产品信息管理入库操作管理出库操作管理库存盘点管理失效报警管理数量报警管理产品出入库统计表输出订货单统计查询管理库存警示管理 企业库存管理系统功能模块示意图 在上功能示意图的树状结构中,每一个叶子结点都是一个最小的功能模块。每一个功能模块需要针对不同的表完成相同的数据库操作,添加、修改、查询和删除功能。三、系统开发的软硬件环境4.1.1 编程环境的选择采用Visual Basic 6.0 4.1.2 关系型数据库的实现采用SQL Server2000 4.1.3 两者的连接Visual Basic提供了与底层数据库系统紧密的连接。Visual Basic 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic连接数据库的方式有两种:通过使用Visual Basic的 DATA控件。 通过使用由Visual Basic提供的专用的直接与数据库相连的接口。四、数据库设计1. 产品类目标ProType 编号字段名称数据结构说明(用途)CREATE TABLE ProType (TypeIdInt Primary Key IDENTITY, TypeNameVarchar(50) NOT NULL, UpperIdInt )1TypeIdInt产品编号2TypeNameVarchar 50产品名称3UpperIdInt上级产品目录2. 产品信息表Product 编号字段名称数据结构说明(用途)CREATE TABLE Product (ProId Int Primary Key IDENTITY, ProName Varchar(50) NOT NULL, TypeIdInt, ProStyleVarchar(50), ProUnitVarchar(10), ProPriceDecimal(15, 2), ProLowInt, ProHighInt, ValidInt, AlarmDaysInt )1ProIdInt产品编号2ProNameVarchar 50产品名称3TypeIdInt产品类型编号4ProStyleVarchar 50产品规格5ProUnitVarchar 10计量单位6ProPriceDecimal 15,2参考价格7ProLowInt产品数量下限8ProHighInt产品数量上限9ValidInt有效期(天)10AlarmDaysInt提前几天警告五、应用程序开发1产品类目窗口 FrmProTypeMan具体代码:产品类目管理Dim Id1, Id2 As IntegerPrivate Sub Load_Type1() List1.Clear MyProType.Load_by_Upper (0) i = 0 Do While Arr_ProType(i) List1.AddItem Arr_ProType(i) i = i + 1 Loop If List1.ListCount 0 Then List1.ListIndex = 0 End IfEnd SubPrivate Sub Load_Type2() List2.Clear MyProType.Load_by_Upper (Id1) i = 0 Do While Arr_ProType(i) List2.AddItem Arr_ProType(i) i = i + 1 Loop If List2.ListCount 0 Then List2.ListIndex = 0 End IfEnd SubPrivate Sub Cmd_Add_Click() If Option1.Value = False And List1.ListIndex 0 Then MsgBox 请选择上级类目 Exit Sub End If If Option1.Value = True Then FrmProTypeEdit.OriUpper = 0 FrmProTypeEdit.lblUpper = Else FrmProTypeEdit.OriUpper = Id1 FrmProTypeEdit.lblUpper = List1.Text End If FrmProTypeEdit.Modify = False FrmProTypeEdit.Show 1 Load_Type1 Load_Type2End SubPrivate Sub Cmd_Back_Click() Unload MeEnd SubPrivate Sub Cmd_Del_Click() Dim TmpId As Long If (Option1.Value = True And List1.ListIndex 0) _ Or (Option2.Value = True And List2.ListIndex 0) Then MsgBox 请选择要删除类目 Exit Sub End If If Option1.Value = True Then TmpId = Id1 Else TmpId = Id2 End If 判断一级类目是否包含子类目 If Option1.Value = True Then If MyProType.HaveSon(TmpId) = True Then MsgBox 此类目包含子类目,不能删除 Exit Sub End If End If 判断类目中是否包含产品 If MyPro.HaveType(TmpId) = True Or _ MyPro.HaveType(TmpId) = True Then MsgBox 此类目中包含产品,不能删除 Exit Sub End If 确认删除 If MsgBox(是否删除此类目?, vbYesNo, 请确认) = vbYes Then MyProType.Delete (TmpId) Load_Type1 Load_Type2 End IfEnd SubPrivate Sub Cmd_Modi_Click() If (Option1.Value = True And List1.ListIndex 0) _ Or (Option2.Value = True And List2.ListIndex 0) Then MsgBox 请选择要修改类目 Exit Sub End If If Option1.Value = True Then FrmProTypeEdit.OriUpper = 0 FrmProTypeEdit.OriId = Id1 FrmProTypeEdit.OriName = List1.Text FrmProTypeEdit.lblUpper = FrmProTypeEdit.txtTypeName = List1.Text Else FrmProTypeEdit.OriUpper = Id1 FrmProTypeEdit.OriId = Id2 FrmProTypeEdit.OriName = List2.Text FrmProTypeEdit.lblUpper = List1.Text FrmProTypeEdit.txtTypeName = List2.Text End If FrmProTypeEdit.Modify = True FrmProTypeEdit.Show 1 Load_Type1 Load_Type2End SubPrivate Sub Form_Load() Option1.Value = True Load_Type1End SubPrivate Sub List1_Click() Id1 = MyProType.GetId(MakeStr(List1.Text) Load_Type2End SubPrivate Sub List2_Click() Id2 = MyProType.GetId(MakeStr(List2.Text)End SubPrivate Sub Option1_Click() List2.Enabled = FalseEnd SubPrivate Sub Option2_Click() List2.Enabled = TrueEnd Sub实现以下功能: 添加类目一级类目和二级类目: 修改类目一级类目和二级类目信息:删除类目一级类目和二级类目信息: 返回主界面2.添加时对应“编辑产品类目”窗口FrmProTypeEdit具体代码: 实现以下功能:添加类别名称Public Modify As BooleanPublic OriUpper As IntegerPublic OriId As IntegerPublic OriName As StringPrivate Sub Cmd_Cancel_Click() Unload MeEnd SubPrivate Sub Cmd_OK_Click() If Trim(txtTypeName) = Then MsgBox 请输入用户名 txtUserName.SetFocus Exit Sub End If With MyProType If Modify = False Or OriName Trim(txtTypeName) Then If .In_DB(MakeStr(txtTypeName) = True Then MsgBox 类目名称已经存在,请重新输入 txtTypeName.SetFocus txtTypeName.SelStart = 0 txtTypeName.SelLength = Len(txtTypeName) Exit Sub End If End If .TypeName = MakeStr(txtTypeName) .UpperId = OriUpper If Modify = False Then .Insert Else .Update (OriId) End If End With Unload MeEnd SubPrivate Sub Form_Load()End SubPrivate Sub Label1_Click()End Sub3.产品基本信息管理窗口 FrmProMan实现以下功能: 添加类目:FrmProEdit 修改类目信息:FrmProEdit 删除类目信息:FrmProEdit具体代码:Public Modify As BooleanPublic OriId As LongPublic OriName As StringPublic OriType1, OriType2 As StringPrivate Function Check() As Boolean If Trim(txtPro) = Then MsgBox 请输入产品名称 txtPro.SetFocus Check = False Exit Function End If If ComboType1.Text = Or ComboType2.Text = Then MsgBox 请选择产品类目 ComboType1.SetFocus Check = False Exit Function End If Check = TrueEnd FunctionPrivate Sub Cmd_OK_Click() If Check = False Then Exit Sub End If With MyPro .ProName = MakeStr(txtPro) If ComboType2.Text Then .TypeId = MyProType.GetId(ComboType2.Text) Else .TypeId = MyProType.GetId(ComboType1.Text) End If .ProStyle = MakeStr(txtStyle) .ProUnit = MakeStr(txtUnit) .ProPrice = Val(txtPrice) .ProLow = Val(txtMin) .ProHigh = Val(txtMax) .Valid = Val(txtValid) .AlarmDays = Val(txtAlarm) 判断仓库名称是否存在 If Modify = False Or OriName Trim(txtPro) Then If .In_DB(MakeStr(txtPro) = True Then MsgBox 产品名称已经存在,请重新输入 txtPro.SetFocus txtPro.SelStart = 0 txtPro.SelLength = Len(txtPro) Exit Sub End If End If If Modify = False Then .Insert MsgBox 添加成功 Else .Update (OriId) MsgBox 修改成功 End If End With Unload MeEnd SubPrivate Sub Cmd_Cancel_Click() Unload MeEnd SubPrivate Sub txtContact_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub txtDescribe_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub ComboType1_Click() 装入二级类目 TmpType = MyProType.GetId(ComboType1.Text) MyProType.Load_by_Upper (TmpType) ComboType2.Clear i = 0 Do While Arr_ProType(i) ComboType2.AddItem Arr_ProType(i) i = i + 1 Loop If ComboType2.ListCount 0 Then ComboType2.ListIndex = 0 End IfEnd SubPrivate Sub Form_Load() Dim TmpType As Long Dim i As Integer 装入一级类目 MyProType.Load_by_Upper (0) i = 0 Do While Arr_ProType(i) ComboType1.AddItem Arr_ProType(i) i = i + 1 Loop If OriType1 = Then If ComboType1.ListCount 0 Then ComboType1.ListIndex = 0 End If Else If InCombo(OriType1, ComboType1) = True Then ComboType1.Text = OriType1 End If End If 装入二级类目 TmpType = MyProType.GetId(ComboType1.Text) MyProType.Load_by_Upper (TmpType) ComboType2.Clear i = 0 Do While Arr_ProType(i) ComboType2.AddItem Arr_ProType(i) i = i + 1 Loop If OriType2 = Then If ComboType2.ListCount 0 Then ComboType2.ListIndex = 0 End If Else If InCombo(OriType2, ComboType2) = True Then ComboType2.Text = OriType2 End If End IfEnd SubPrivate Sub txtAlarm_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Int(KeyAscii) = False Then KeyAscii = 0 End IfEnd SubPrivate Sub txtMax_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Int(KeyAscii) = False Then KeyAscii = 0 End IfEnd SubPrivate Sub txtMin_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Int(KeyAscii) = False Then KeyAscii = 0 End IfEnd SubPrivate Sub txtPro_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub txtStyle_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub txtUnit_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub txtPrice_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Single(KeyAscii) = False Then KeyAscii = 0 End IfEnd SubPrivate Sub txtValid_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Int(KeyAscii) = False Then KeyAscii = 0 End IfEnd Sub4.编辑产品信息窗口 FrmProEdit具体代码:编辑产品信息:Public Modify As BooleanPublic OriId As LongPublic OriName As StringPublic OriType1, OriType2 As StringPrivate Function Check() As Boolean If Trim(txtPro) = Then MsgBox 请输入产品名称 txtPro.SetFocus Check = False Exit Function End If If ComboType1.Text = Or ComboType2.Text = Then MsgBox 请选择产品类目 ComboType1.SetFocus Check = False Exit Function End If Check = TrueEnd FunctionPrivate Sub Cmd_OK_Click() If Check = False Then Exit Sub End If With MyPro .ProName = MakeStr(txtPro) If ComboType2.Text Then .TypeId = MyProType.GetId(ComboType2.Text) Else .TypeId = MyProType.GetId(ComboType1.Text) End If .ProStyle = MakeStr(txtStyle) .ProUnit = MakeStr(txtUnit) .ProPrice = Val(txtPrice) .ProLow = Val(txtMin) .ProHigh = Val(txtMax) .Valid = Val(txtValid) .AlarmDays = Val(txtAlarm) 判断仓库名称是否存在 If Modify = False Or OriName Trim(txtPro) Then If .In_DB(MakeStr(txtPro) = True Then MsgBox 产品名称已经存在,请重新输入 txtPro.SetFocus txtPro.SelStart = 0 txtPro.SelLength = Len(txtPro) Exit Sub End If End If If Modify = False Then .Insert MsgBox 添加成功 Else .Update (OriId) MsgBox 修改成功 End If End With Unload MeEnd SubPrivate Sub Cmd_Cancel_Click() Unload MeEnd SubPrivate Sub txtContact_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub txtDescribe_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub ComboType1_Click() 装入二级类目 TmpType = MyProType.GetId(ComboType1.Text) MyProType.Load_by_Upper (TmpType) ComboType2.Clear i = 0 Do While Arr_ProType(i) ComboType2.AddItem Arr_ProType(i) i = i + 1 Loop If ComboType2.ListCount 0 Then ComboType2.ListIndex = 0 End IfEnd SubPrivate Sub Form_Load() Dim TmpType As Long Dim i As Integer 装入一级类目 MyProType.Load_by_Upper (0) i = 0 Do While Arr_ProType(i) ComboType1.AddItem Arr_ProType(i) i = i + 1 Loop If OriType1 = Then If ComboType1.ListCount 0 Then ComboType1.ListIndex = 0 End If Else If InCombo(OriType1, ComboType1) = True Then ComboType1.Text = OriType1 End If End If 装入二级类目 TmpType = MyProType.GetId(ComboType1.Text) MyProType.Load_by_Upper (TmpType) ComboType2.Clear i = 0 Do While Arr_ProType(i) ComboType2.AddItem Arr_ProType(i) i = i + 1 Loop If OriType2 = Then If ComboType2.ListCount 0 Then ComboType2.ListIndex = 0 End If Else If InCombo(OriType2, ComboType2) = True Then ComboType2.Text = OriType2 End If End IfEnd SubPrivate Sub txtAlarm_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Int(KeyAscii) = False Then KeyAscii = 0 End IfEnd SubPrivate Sub txtMax_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Int(KeyAscii) = False Then KeyAscii = 0 End IfEnd SubPrivate Sub txtMin_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii) If In_Int(KeyAscii) = False Then KeyAscii = 0 End IfEnd SubPrivate Sub txtPro_KeyPress(KeyAscii As Integer) EnterTAB (KeyAscii)End SubPrivate Sub txtStyle_KeyPress(KeyAscii As Integer)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急需资金购买房屋借款合同5篇
- 新解读《GB-T 30959-2014河西绒山羊》
- 范本代理记账合同范文2篇
- 解除租房合同范本
- 房屋倒塌租赁合同范本
- 退休聘用保洁合同范本
- 解除洗衣厂合同范本
- 护理个人年度计划书模板(5篇)
- 职高入团考试题目及答案
- 控烟工作心得体会怎么写(例文10篇)
- 小红书离婚协议书模板
- 激光焊接安全措施试题及答案
- 农村租地种植合同样本
- 典型故障波形分析-典型故障下录波图的分析(电力系统故障分析)
- 2025高考政治命题纲要解读
- 万科物业管理服务方案
- 中国糖尿病行为与生活方式干预指南(2024版)解读课件
- 《对外汉语比字句》课件
- 《中华人民共和国职业分类大典》(2022年版)各行业职业表格统计版(含数字职业)
- 养老院消防应急演练的不足与改进措施
- 七年级上册劳动与技术教案
评论
0/150
提交评论