进销存管理系统的设计.docx
- 文档编号:9381571
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:37
- 大小:874.13KB
进销存管理系统的设计.docx
《进销存管理系统的设计.docx》由会员分享,可在线阅读,更多相关《进销存管理系统的设计.docx(37页珍藏版)》请在冰点文库上搜索。
进销存管理系统的设计
课程设计说明书
设计名称:
数据库系统原理课程设计
题目:
进销存管理系统的设计
学生姓名:
专业:
班级:
学号:
指导教师:
日期:
2013年03月10日
课程设计任务书
网络工程专业10年级2班许冰滢
一、设计题目
进销存管理系统的设计
二、主要内容
通过对典型的小型流通型企业的进货、销售、库存的业务流程进行分析,完成具有进货管理、销售管理、库存管理等相关功能的小型数据库管理应用系统。
三、具体要求
1.根据任务要求完成有关表的设计(表的设计需要遵循3FN)。
2.完成进货单(盘盈)、出货单(盘亏)的维护(一般含增、删、改、查等操作)。
3.实现库存表的浏览查找。
4.实现库存结转功能。
5.按时间、按商品类别、顾客、供应商进行进、出货单的统计。
6.完成库存表的按时间、按类别进行统计。
7.完成客户、供应商的管理。
四、进度安排
2月25日-2月26日:
资料查找、系统分析,数据流程分析,概要设计。
2月27日-2月28日:
系统详细设计、功能设计。
3月1日-3月6日:
算法实现、编程调试。
3月7日:
功能演示、资料整理、课程设计说明书编写。
五、完成后应上交的材料
1、课程设计说明书(数据流程图、E-R关系图、功能模块图、数据库表结构、核心算法等)
2、相关源程序文件
六、总评成绩
指导教师签名日期年月日
系主任审核日期年月日
佛山科学技术学院课程设计用纸
佛山科学技术学院课程设计用纸
一、设计任务分析
进销存系统是对企业生产经营中进货、出货、批发销售、付款等进行全程跟踪管理,从接获订单合同开始,进入物料采购、入库、领用到产品完工入库、交货、回收货款、支付原材料款等,每一步都为您提供详尽准确的数据。
有效辅助企业解决业务管理、分销管理、存货管理、营销计划的执行和监控、统计信息的收集等方面的业务问题。
因此,我们所设计的进销存系统的主要功能包括如下。
1、商品基本信息的管理:
用来处理进出库的商品信息,包括新建、修改、删除和查询等。
2、订单信息的处理:
是整个系统的工作流程的起点,包括订单的增减、查询,以及订单在处理过程中(如发货确认等)状态的改变。
3、产品入库出库管理:
完成记录,修改商品入出库信息,并有库存报表功能。
4、查询功能:
允许管理员可以按编号、日期对进货商的销售信息进行查询;对入库的产品信息进行详细的查询,包括编号、名称、入库时间等。
2、系统需求分析设计
2.1需求分析
1、将订单、商品、供应商、客户、商品、进货、销售等信息录入管理系统,提供修改和查询。
2、能够对各类信息提供查询。
3、能够统计进出库的各类信息,对进库、销售、库存进行汇总,协调
各部门的相互工作。
2.2模块设计
1、系统的基本配置模块:
包括产品、供应商、客户的基本资料的录入。
2、产品进出库处理模块:
主要包括对订单信息的处理和采购单的处理,一般产品入出库的处理。
3、查询模块:
对系统中的各类信息,如供应商资料、出入库详细资料等进行查询,支持多个条件的复合查询。
4、报表显示模块:
根据用户的需要和查询结果来生成报表。
3、数据库结构的设计
3.1数据表结构需求分析
在本系统中,我们设计了10张数据表,各个表存储的信息如下所示。
1、“管理员”表:
存放系统管理人员信息,一般是企业管理人员的用户
名和密码。
2、“产品信息”表:
存储产品的基本信息,如产品编号、产品名称、规
格型号、计量单位、供应商编号、产品类别等。
3、“供应商”表:
存放产品供应商的相关信息,比如供应商编号、供应
商名称、联系人姓名、联系人职务、业务电话、电子邮件等。
4、“客户”表:
记录客户的基本信息,比如客户编号、客户姓名、客户
地址、联系电话、电子邮件、备注等。
5、“订单”表:
记录订单的基本信息,如订单编号、客户编号、产品编
号、供应商编号、销售单价、订购数量、订单金额、预定时间、订单时间等
基本预订信息。
6、“订单处理明细”表:
除了订单基本信息外,还要增加付款信息和发
货信息,如付款方式、付款时间、发货地址、发货时间、发货人等。
7、“入库记录”表:
存放产品入库的信息。
8、“出库记录”表:
存放产品出库的信息。
9、“业务类别”表:
记录进出库的业务类型。
10、“库存”表:
记录产品的库存信息。
3.2建立空数据库系统
建立一个“进销存管理系统.accdb”空白数据库。
3.3创建数据表
1、“管理员”表
2、“产品信息”表
3、“供应商”表
4、“客户”表
5、“订单”表
6、“订单处理明细”表
7、“入库记录”表
8、“出库记录”表
9、“业务类别”表
10、“库存”表
3.4定义数据表之间的关系
建立“产品信息”表和“出库记录”表之间的表关系。
数据库表中,各种表关系如下表所示。
4、窗体的实现
4.1“登录”窗体
属性值设置如下表所示。
完成后的“登录”窗体如下图所示。
4.2“切换面板”窗体
各个控件的属性设置如下表所示。
完成后的结果如下图所示。
4.3“订单处理”窗体
下表所示主要控件的属性。
完成后的界面如下图所示。
4.4“发货确认”窗体
属性见下表所示。
完成后的“发货确认”窗体如下图所示。
4.5“产品进库”窗体
最终的创建效果如下图所示。
4.6“供应商查询编辑”窗体
属性设置见下表所示。
完成后的窗体如下图所示。
4.7“进货资料查询”窗体
属性值具体情况如下表所示。
完成了“进货资料查询”窗体的创建,最终效果如下图所示。
4.8“密码管理”窗体
“密码管理”窗体控件如下表所示。
完成后的“密码管理”窗体如下图所示。
“新密码”窗体控件如下表所示。
完成后的“新密码”窗体如下图所示。
5、查询的实现
5.1“订单处理查询”的设计
5.2“供应商销售查询”的设计
整个查询的条件设置如下表所示。
5.3“进货资料查询”的设计
我们建立的字段的信息如下表所示。
5.4“库存查询”的设计
6、报表的实现
6.1“订单查询”报表
6.2“供应商销售”报表
6.3“库存”报表
7、编码的实现
7.1公用模块
OptionCompareDatabase
OptionExplicit
'txtSQL为执行查询时所需要的SQL语句
PublicFunctionExeSQL(ByValtxtSQLAsString)AsADODB.Recordset
OnErrorGoToExeSQL_Error'错误处理
DimrsAsNewADODB.Recordset
rs.OpentxtSQL,CurrentProject.Connection,adOpenKeyset,adLockOptimistic
'返回记录集对象
SetExeSQL=rs'返回值为ExeSQL
ExeSQL_Exit:
Setrs=Nothing
ExitFunction
ExeSQL_Error:
DimmsgstringAsString
msgstring="查询错误"&Err.Description
MsgBoxmsgstring,vbCritical
ResumeExeSQL_Exit
EndFunction
7.2“登录”窗体代码
添加“确定”按钮的代码,如下所示。
OptionCompareDatabase
OptionExplicit
DimmrcAsADODB.Recordset
DimtxtSQLAsString
DimiAsInteger'记录错误次数
'确定按钮的代吗
PrivateSubbtn_ok_Click()
OnErrorGoToErr_btn_ok_Click'错误处理
'判断用户名是否为空
IfIsNull(txt_name)Then
MsgBox"请输入用户名!
",vbCritical,"提示"
txt_name.SetFocus
Else
txtSQL="SELECT*from管理员where用户名='"&txt_name&"'"
Setmrc=ExeSQL(txtSQL)
Ifmrc.EOFThen
MsgBox"没有此用户名称!
",vbCritical,"提示"
Else
If(mrc
(1)=Txtpwd)Then
mrc.Close
Setmrc=Nothing
Me.Visible=False
'打开切换面板
DoCmd.OpenForm"切换面板"
Else
i=i+1
If(i<3)Then
MsgBox"您输入的密码不正确",vbOKOnly+vbExclamation,"提示"
Else
MsgBox"你已经连续3次错误输入密码,系统马上关闭!
",vbOKOnly+vbExclamation,"警告"
ExitSub
DoCmd.CloseacForm,Me.Name
DoCmd.Quit
EndIf
Txtpwd.SetFocus
Txtpwd.Text=""
EndIf
EndIf
EndIf
Exit_btn_ok_Click:
'错误处理
ExitSub
Err_btn_ok_Click:
MsgBox(Err.Description)
ResumeExit_btn_ok_Click
EndSub
'取消按钮的代码
PrivateSubbtn_cancel_Click()
If(MsgBox("确实要退出吗?
",vbQuestion+vbYesNo,"确认")=vbYes)Then
DoCmd.QuitacQuitSaveNone
EndIf
EndSub
7.3“切换面板”代码
各个按钮的代码如下所示。
PrivateSuboption1_Click()
Me.Visible=False
DoCmd.OpenForm"订单"
EndSub
PrivateSuboption2_Click()
Me.Visible=False
DoCmd.OpenForm"产品进库"
EndSub
PrivateSuboption3_Click()
Me.Visible=False
DoCmd.OpenForm"发货确认"
EndSub
PrivateSuboption4_Click()
Me.Visible=False
DoCmd.OpenForm"供应商"
EndSub
PrivateSuboption5_Click()
Me.Visible=False
DoCmd.OpenForm"进货资料查询"
EndSub
PrivateSuboption6_Click()
Me.Visible=False
DoCmd.OpenForm"密码管理"
EndSub
7.4“产品进库”窗体代码
'打开库存查询报表
PrivateSubbtn_house_Click()
IfIsNull(产品编号)Then
MsgBox"您必须输入产品编号",vbCritical,"提示"
EndIf
DoCmd.OpenReport"库存报表",acViewPreview,,,acWindowNormal
EndSub
'保存记录后,要更新库存数量
PrivateSubbtn_save_Click()
DoCmd.RunCommandacCmdSaveRecord
DimrsAsNewADODB.Recordset
Dimstr_tempAsString
str_temp="select*from库存Where产品编号="&产品编号&""
rs.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimistic
IfNotIsNull(rs)Then
rs("库存量")=rs("库存量")-入库数量
Ifrs("库存量")>0Then
rs.Update
Else
MsgBox"删除记录出错",vbCritical
EndIf
EndIfrs.Close
Setrs=Nothing
EndSub
'删除记录后,要更新库存数量
PrivateSubbtn_del_Click()
DimrsAsNewADODB.Recordset
Dimstr_tempAsString
str_temp="select*from库存Where产品编号='"&产品编号&"'"
rs.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimistic
IfNotIsNull(rs)Then
rs("库存量")=rs("库存量")-入库数量
rs.Update
EndIf
rs.Close
Setrs=Nothing
DoCmd.RunCommandacCmdDeleteRecord
EndSub
PrivateSubbtn_query_Click()
DoCmd.OpenForm"进货资料查询"
Me.Visible=False
EndSub
PrivateSubbtn_return_Click()
Me.Visible=False
EndSub
7.5“发货确认”窗体代码
相关代码如下。
OptionCompareDatabase
'确认按钮代码
PrivateSubbrn_ok_Click()
OnErrorGoToErr_btn_ok_Click
'用这个数组str(10)来保存订单记录中的数据
Dimstr(10)AsString
DimmrcAsNewADODB.Recordset
IfIsNull(txt_no)Then
MsgBox"请输入要确认的订单编号!
",vbCritical,"提示"
txt_no.SetFocus
EndIf
IfIsNull(Combo1)Then
MsgBox"请输入支付方式!
",vbCritical,"提示"
Combo1.SetFocus
Combo1.Dropdown
EndIf
IfIsNull(txt_paydate)Then
MsgBox"请输入支付日期!
",vbCritical,"提示"
txt_paydate.SetFocus
EndIf
IfIsNull(txt_address)Then
MsgBox"请输入送货地址!
",vbCritical,"提示"
txt_address.SetFocus
EndIf
IfIsNull(txt_name)Then
MsgBox"请输入送货人!
",vbCritical,"提示"
txt_name.SetFocus
EndIf
IfIsNull(txt_date)Then
MsgBox"请输入送货日期!
",vbCritical,"提示"
txt_date.SetFocus
EndIf
Dimstr_tempAsString
'订单编号是整形,不需要单引号
str_temp="select*from订单where订单编号="&txt_no&""
Setmrc=ExeSQL(str_temp)
Ifmrc.EOFThen
MsgBox"没有该订单!
",vbCritical,"提示"
Else
'记录查找到的订单信息
str(0)=mrc("订单编号")
str
(1)=mrc("客户编号")
str
(2)=mrc("产品编号")
str(3)=mrc("供应商编号")
str(4)=mrc("销售单价")
str(5)=mrc("订购数量")
str(6)=mrc("订单金额")
str(7)=mrc("预定时间")
str(8)=mrc("订单时间")
mrc.Close
Setmrc=Nothing
EndIf
DimrsAsNewADODB.Recordset
rs.Open"订单处理明细",CurrentProject.Connection,adOpenDynamic,adLockOptimistic
rs.AddNew
rs("订单编号")=str(0)
rs("客户编号")=str
(1)
rs("产品编号")=str
(2)
rs("供应商编号")=str(3)
rs("预定时间")=str(7)
rs("发货时间")=txt_date
rs("销售单价")=str(4)
rs("订购数量")=str(5)
rs("订单金额")=str(6)
rs("付款方式")=Combo1
rs("付款时间")=txt_paydate
rs("发货地址")=txt_address
rs("发货人")=txt_name
rs("状态")="已处理"
rs.Update
rs.Close
Setrs=Nothing
MsgBox"成功添加了该信息!
"
'更新库存表中的数量
Dimrs2AsNewADODB.Recordset
'查找库存表中的记录
str_temp="select*from库存Where产品编号="&str
(2)&""
rs2.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimistic
IfNotrs2.EOFThen
rs2("库存量")=rs2("库存量")-str(5)
rs2.Update
EndIf
rs2.Close
Setrs2=Nothing
MsgBox"成功更新了库存!
"
'错误处理
Exit_btn_ok_Click:
ExitSub
Err_btn_ok_Click:
ExitSub
ResumeExit_btn_ok_Click
EndSub
PrivateSubbtn_cancel_Click()
DimctlAsControl
ForEachctlInMe.Controls
SelectCasectl.ControlType
CaseacTextBox
Ifctl.Locked=FalseThenctl.Value=Null
CaseacComboBox
ctl.Value=Null
EndSelect
Next
Me.txt_no.SetFocus
EndSub
PrivateSubbtn_return_Click()
Me.Visible=False
DoCmd.OpenForm"切换面板",acNormal
EndSub
7.6“供应商”窗体代码
“销售查询”按钮代码如下。
PrivateSubbtn_query_Click()
IfIsNull(供应商编号)OrIsNull(txt_date1)OrIsNull(txt_date2)Then
MsgBox"您必须输入供应商编号、开始时间和截止时间。
"
txt_date1.SetFocus
Else
If(txt_date1>txt_date2)Then
MsgBox"结束时间必须大于开始时间。
"
'焦点移到第一个时间上
txt_date1.SetFocus
Else
'打开供应商销售的报表
DoCmd.OpenReport"供应商报表",acViewPreview,,,acWindowNormal
EndIf
EndIf
EndSub
“返回”按钮代码如下。
PrivateSubbtn_return_Click()
DoCmd.Close
docmd.OpenForm"切换面板"
EndSub
7.7“进货资料查询”窗体代码
“清除”按钮添加的代码如下。
OptionCompareDatabase
PrivateSubbtn_clear_Click()
OnErrorGoToErr_btn_clear_Click
DimctlAsControl
ForEachctlInMe.Controls
SelectCasectl.ControlType
CaseacTextBox
Ifctl.Locked=FalseThenctl.Value=Null
CaseacComboBox
ctl.Value=Null
EndSelect
Next
'取消子窗体查询和统计总数
Me.进货资料查询子窗体.Form.Filter=""
Me.进货资料查询子窗体.Form.FilterOn=False
Exit_btn_clear_Click:
ExitSub
Err_btn_clear_Click:
ExitSub
ResumeExit_btn_clear_Click
EndSub
“查询”按钮的代码如下所示。
PrivateSubbtn_query_Click()
OnErrorGoToErr_btn_query_Click
DimstrAsString
'判断是否为空,建立查询条件
IfNotIsNull(Me.Combo1)Then
str=str&"([供应商名称]like'*"&Me.Combo1&"*')AND"
E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进销存 管理 系统 设计