进销存管理系统的设计.docx

上传人:b****8 文档编号:9381571 上传时间:2023-05-18 格式:DOCX 页数:37 大小:874.13KB
下载 相关 举报
进销存管理系统的设计.docx_第1页
第1页 / 共37页
进销存管理系统的设计.docx_第2页
第2页 / 共37页
进销存管理系统的设计.docx_第3页
第3页 / 共37页
进销存管理系统的设计.docx_第4页
第4页 / 共37页
进销存管理系统的设计.docx_第5页
第5页 / 共37页
进销存管理系统的设计.docx_第6页
第6页 / 共37页
进销存管理系统的设计.docx_第7页
第7页 / 共37页
进销存管理系统的设计.docx_第8页
第8页 / 共37页
进销存管理系统的设计.docx_第9页
第9页 / 共37页
进销存管理系统的设计.docx_第10页
第10页 / 共37页
进销存管理系统的设计.docx_第11页
第11页 / 共37页
进销存管理系统的设计.docx_第12页
第12页 / 共37页
进销存管理系统的设计.docx_第13页
第13页 / 共37页
进销存管理系统的设计.docx_第14页
第14页 / 共37页
进销存管理系统的设计.docx_第15页
第15页 / 共37页
进销存管理系统的设计.docx_第16页
第16页 / 共37页
进销存管理系统的设计.docx_第17页
第17页 / 共37页
进销存管理系统的设计.docx_第18页
第18页 / 共37页
进销存管理系统的设计.docx_第19页
第19页 / 共37页
进销存管理系统的设计.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

进销存管理系统的设计.docx

《进销存管理系统的设计.docx》由会员分享,可在线阅读,更多相关《进销存管理系统的设计.docx(37页珍藏版)》请在冰点文库上搜索。

进销存管理系统的设计.docx

进销存管理系统的设计

课程设计说明书

 

设计名称:

数据库系统原理课程设计

题目:

进销存管理系统的设计

 

学生姓名:

专业:

班级:

学号:

指导教师:

日期:

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2