产品信息管理模块.docx
- 文档编号:3781266
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:27
- 大小:70.64KB
产品信息管理模块.docx
《产品信息管理模块.docx》由会员分享,可在线阅读,更多相关《产品信息管理模块.docx(27页珍藏版)》请在冰点文库上搜索。
产品信息管理模块
企业库存管理系统的开发
———产品信息管理
(信息2000级五班第二小组叶绥波09100146)
一、需求分析
1.实现产品按分类的查询,修改;
2.实现产品信息的查询,修改;
3.在主界面的“产品管理”菜单下进行“产品类目”和“产品信息”的相关添加,删除和查询,并且能过退回到主界面下。
二、功能模块划分
本系统可以实现5个完整的功能。
根据这些功能,设计出的功能模块如图所示。
企业库存管理系统功能模块示意图
在上功能示意图的树状结构中,每一个叶子结点都是一个最小的功能模块。
每一个功能模块需要针对不同的表完成相同的数据库操作,添加、修改、查询和删除功能。
三、系统开发的软硬件环境
4.1.1编程环境的选择
采用VisualBasic6.0
4.1.2关系型数据库的实现
采用SQLServer2000
4.1.3两者的连接
VisualBasic提供了与底层数据库系统紧密的连接。
VisualBasic支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。
生成独立应用或脱离服务器运行的服务以上的应用,VisualBasic连接数据库的方式有两种:
·通过使用VisualBasic的DATA控件。
·通过使用由VisualBasic提供的专用的直接与数据库相连的接口。
四、数据库设计
1.产品类目标ProType
编号
字段名称
数据结构
说明(用途)
CREATETABLEProType
(TypeIdIntPrimaryKeyIDENTITY,
TypeNameVarchar(50)NOTNULL,
UpperIdInt
)
1
TypeId
Int
产品编号
2
TypeName
Varchar50
产品名称
3
UpperId
Int
上级产品目录
2.产品信息表Product
编号
字段名称
数据结构
说明(用途)
CREATETABLEProduct
(ProIdIntPrimaryKeyIDENTITY,
ProNameVarchar(50)NOTNULL,
TypeIdInt,
ProStyleVarchar(50),
ProUnitVarchar(10),
ProPriceDecimal(15,2),
ProLowInt,
ProHighInt,
ValidInt,
AlarmDaysInt
)
1
ProId
Int
产品编号
2
ProName
Varchar50
产品名称
3
TypeId
Int
产品类型编号
4
ProStyle
Varchar50
产品规格
5
ProUnit
Varchar10
计量单位
6
ProPrice
Decimal15,2
参考价格
7
ProLow
Int
产品数量下限
8
ProHigh
Int
产品数量上限
9
Valid
Int
有效期(天)
10
AlarmDays
Int
提前几天警告
五、应用程序开发
1.产品类目窗口FrmProTypeMan
具体代码:
产品类目管理
DimId1,Id2AsInteger
PrivateSubLoad_Type1()
List1.Clear
MyProType.Load_by_Upper(0)
i=0
DoWhileArr_ProType(i)<>""
List1.AddItemArr_ProType(i)
i=i+1
Loop
IfList1.ListCount>0Then
List1.ListIndex=0
EndIf
EndSub
PrivateSubLoad_Type2()
List2.Clear
MyProType.Load_by_Upper(Id1)
i=0
DoWhileArr_ProType(i)<>""
List2.AddItemArr_ProType(i)
i=i+1
Loop
IfList2.ListCount>0Then
List2.ListIndex=0
EndIf
EndSub
PrivateSubCmd_Add_Click()
IfOption1.Value=FalseAndList1.ListIndex<0Then
MsgBox"请选择上级类目"
ExitSub
EndIf
IfOption1.Value=TrueThen
FrmProTypeEdit.OriUpper=0
FrmProTypeEdit.lblUpper=""
Else
FrmProTypeEdit.OriUpper=Id1
FrmProTypeEdit.lblUpper=List1.Text
EndIf
FrmProTypeEdit.Modify=False
FrmProTypeEdit.Show1
Load_Type1
Load_Type2
EndSub
PrivateSubCmd_Back_Click()
UnloadMe
EndSub
PrivateSubCmd_Del_Click()
DimTmpIdAsLong
If(Option1.Value=TrueAndList1.ListIndex<0)_
Or(Option2.Value=TrueAndList2.ListIndex<0)Then
MsgBox"请选择要删除类目"
ExitSub
EndIf
IfOption1.Value=TrueThen
TmpId=Id1
Else
TmpId=Id2
EndIf
'判断一级类目是否包含子类目
IfOption1.Value=TrueThen
IfMyProType.HaveSon(TmpId)=TrueThen
MsgBox"此类目包含子类目,不能删除"
ExitSub
EndIf
EndIf
'判断类目中是否包含产品
IfMyPro.HaveType(TmpId)=TrueOr_
MyPro.HaveType(TmpId)=TrueThen
MsgBox"此类目中包含产品,不能删除"
ExitSub
EndIf
'确认删除
IfMsgBox("是否删除此类目?
",vbYesNo,"请确认")=vbYesThen
MyProType.Delete(TmpId)
Load_Type1
Load_Type2
EndIf
EndSub
PrivateSubCmd_Modi_Click()
If(Option1.Value=TrueAndList1.ListIndex<0)_
Or(Option2.Value=TrueAndList2.ListIndex<0)Then
MsgBox"请选择要修改类目"
ExitSub
EndIf
IfOption1.Value=TrueThen
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
EndIf
FrmProTypeEdit.Modify=True
FrmProTypeEdit.Show1
Load_Type1
Load_Type2
EndSub
PrivateSubForm_Load()
Option1.Value=True
Load_Type1
EndSub
PrivateSubList1_Click()
Id1=MyProType.GetId(MakeStr(List1.Text))
Load_Type2
EndSub
PrivateSubList2_Click()
Id2=MyProType.GetId(MakeStr(List2.Text))
EndSub
PrivateSubOption1_Click()
List2.Enabled=False
EndSub
PrivateSubOption2_Click()
List2.Enabled=True
EndSub
实现以下功能:
★添加类目一级类目和二级类目:
★修改类目一级类目和二级类目信息:
删除类目一级类目和二级类目信息:
★返回主界面
2.添加时对应“编辑产品类目”窗口FrmProTypeEdit
具体代码:
实现以下功能:
添加类别名称
PublicModifyAsBoolean
PublicOriUpperAsInteger
PublicOriIdAsInteger
PublicOriNameAsString
PrivateSubCmd_Cancel_Click()
UnloadMe
EndSub
PrivateSubCmd_OK_Click()
IfTrim(txtTypeName)=""Then
MsgBox"请输入用户名"
txtUserName.SetFocus
ExitSub
EndIf
WithMyProType
IfModify=FalseOrOriName<>Trim(txtTypeName)Then
If.In_DB(MakeStr(txtTypeName))=TrueThen
MsgBox"类目名称已经存在,请重新输入"
txtTypeName.SetFocus
txtTypeName.SelStart=0
txtTypeName.SelLength=Len(txtTypeName)
ExitSub
EndIf
EndIf
.TypeName=MakeStr(txtTypeName)
.UpperId=OriUpper
IfModify=FalseThen
.Insert
Else
.Update(OriId)
EndIf
EndWith
UnloadMe
EndSub
PrivateSubForm_Load()
EndSub
PrivateSubLabel1_Click()
EndSub
3.产品基本信息管理窗口FrmProMan
实现以下功能:
★添加类目:
FrmProEdit
★修改类目信息:
FrmProEdit
★删除类目信息:
FrmProEdit
具体代码:
PublicModifyAsBoolean
PublicOriIdAsLong
PublicOriNameAsString
PublicOriType1,OriType2AsString
PrivateFunctionCheck()AsBoolean
IfTrim(txtPro)=""Then
MsgBox"请输入产品名称"
txtPro.SetFocus
Check=False
ExitFunction
EndIf
IfComboType1.Text=""OrComboType2.Text=""Then
MsgBox"请选择产品类目"
ComboType1.SetFocus
Check=False
ExitFunction
EndIf
Check=True
EndFunction
PrivateSubCmd_OK_Click()
IfCheck=FalseThen
ExitSub
EndIf
WithMyPro
.ProName=MakeStr(txtPro)
IfComboType2.Text<>""Then
.TypeId=MyProType.GetId(ComboType2.Text)
Else
.TypeId=MyProType.GetId(ComboType1.Text)
EndIf
.ProStyle=MakeStr(txtStyle)
.ProUnit=MakeStr(txtUnit)
.ProPrice=Val(txtPrice)
.ProLow=Val(txtMin)
.ProHigh=Val(txtMax)
.Valid=Val(txtValid)
.AlarmDays=Val(txtAlarm)
'判断仓库名称是否存在
IfModify=FalseOrOriName<>Trim(txtPro)Then
If.In_DB(MakeStr(txtPro))=TrueThen
MsgBox"产品名称已经存在,请重新输入"
txtPro.SetFocus
txtPro.SelStart=0
txtPro.SelLength=Len(txtPro)
ExitSub
EndIf
EndIf
IfModify=FalseThen
.Insert
MsgBox"添加成功"
Else
.Update(OriId)
MsgBox"修改成功"
EndIf
EndWith
UnloadMe
EndSub
PrivateSubCmd_Cancel_Click()
UnloadMe
EndSub
PrivateSubtxtContact_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtDescribe_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubComboType1_Click()
'装入二级类目
TmpType=MyProType.GetId(ComboType1.Text)
MyProType.Load_by_Upper(TmpType)
ComboType2.Clear
i=0
DoWhileArr_ProType(i)<>""
ComboType2.AddItemArr_ProType(i)
i=i+1
Loop
IfComboType2.ListCount>0Then
ComboType2.ListIndex=0
EndIf
EndSub
PrivateSubForm_Load()
DimTmpTypeAsLong
DimiAsInteger
'装入一级类目
MyProType.Load_by_Upper(0)
i=0
DoWhileArr_ProType(i)<>""
ComboType1.AddItemArr_ProType(i)
i=i+1
Loop
IfOriType1=""Then
IfComboType1.ListCount>0Then
ComboType1.ListIndex=0
EndIf
Else
IfInCombo(OriType1,ComboType1)=TrueThen
ComboType1.Text=OriType1
EndIf
EndIf
'装入二级类目
TmpType=MyProType.GetId(ComboType1.Text)
MyProType.Load_by_Upper(TmpType)
ComboType2.Clear
i=0
DoWhileArr_ProType(i)<>""
ComboType2.AddItemArr_ProType(i)
i=i+1
Loop
IfOriType2=""Then
IfComboType2.ListCount>0Then
ComboType2.ListIndex=0
EndIf
Else
IfInCombo(OriType2,ComboType2)=TrueThen
ComboType2.Text=OriType2
EndIf
EndIf
EndSub
PrivateSubtxtAlarm_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Int(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtMax_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Int(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtMin_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Int(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtPro_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtStyle_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtUnit_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
EndSub
PrivateSubtxtPrice_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Single(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
PrivateSubtxtValid_KeyPress(KeyAsciiAsInteger)
EnterTAB(KeyAscii)
IfIn_Int(KeyAscii)=FalseThen
KeyAscii=0
EndIf
EndSub
4.编辑产品信息窗口FrmProEdit
具体代码:
编辑产品信息:
PublicModifyAsBoolean
PublicOriIdAsLong
PublicOriNameAsString
PublicOriType1,OriType2AsString
PrivateFunctionCheck()AsBoolean
IfTrim(txtPro)=""Then
MsgBox"请输入产品名称"
txtPro.SetFocus
Check=False
ExitFunction
EndIf
IfComboType1.Text=""OrComboType2.Text=""Then
MsgBox"请选择产品类目"
ComboType1.SetFocus
Check=False
ExitFunction
EndIf
Check=True
EndFunction
PrivateSubCmd_OK_Click()
IfCheck=FalseThen
ExitSub
EndIf
WithMyPro
.ProName=MakeStr(txtPro)
IfComboType2.Text<>""Then
.TypeId=MyProType.GetId(ComboType2.Text)
Else
.TypeId=MyProType.GetId(ComboType1.Text)
EndIf
.ProStyle=MakeStr(txtStyle)
.ProUnit=MakeStr(txtUnit)
.ProPrice=Val(txtPrice)
.ProLow=Val(txtMin)
.ProHigh=Val(txtMax)
.Valid=Val(txtValid)
.AlarmDays=Val(txtAlarm)
'判断仓库名称是否存在
IfModify=FalseOrOriName<>Trim(txtPro)Then
If.In_DB(MakeStr(txtPro))=TrueThen
MsgBox"产品名称已经存在,请重新输入"
txtPro.SetFocus
txtPro.SelStart=0
txtPro.SelLength=Len(txtPro)
ExitSub
EndIf
EndIf
IfModify=FalseThen
.Insert
MsgBox"添加成功"
Else
.Update(OriId)
MsgBox"修改成功"
EndIf
EndWith
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 产品 信息管理 模块