软件工程课程设计销售管理系统方案.docx
《软件工程课程设计销售管理系统方案.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计销售管理系统方案.docx(21页珍藏版)》请在冰豆网上搜索。
![软件工程课程设计销售管理系统方案.docx](https://file1.bdocx.com/fileroot1/2023-2/4/1b166751-e78f-45fa-8f31-c400b491cfa3/1b166751-e78f-45fa-8f31-c400b491cfa31.gif)
软件工程课程设计销售管理系统方案
销售管理系统
亠•项目简介
随着计算机技术的迅猛发展,存在于网络的企业销售管理系统将逐步代替传统的管理模式进入企业。
为了更高效得完成销售方面的工作,也可以有更多的时间处理更多的别的事
务,企业也将摆脱原有的管理形势完全进入信息化管理。
销售管理系统在企业的管理过程
中起着巨大的作用
一个销售管理系统,设计者的目标是满足公司运营和日常管理的需要,具有对产品,客户管理的功能。
客户登录销售管理系统进行售后服务查询,销售员可以对销售的产品进行登
记,并将销售情况反馈给数据库。
为管理的方便性和信息传递的快速性提供了一个很好的
平台。
系统开发的总体任务是实现售后服务及销售登记自动化。
总之,销售管理系统要实
现登陆验证、商品销售管理、商品销售报表管理、客户信息管理四大部分。
1•客户对功能的需求
1>查看自己的信息,了解自己近期的购买情况。
2>查看产品的信息,熟悉产品情况。
2>查看售后服务信息。
2.销售人员对功能的需求
1>查看自己的信息,了解自己近期的销售情况。
2>查看产品的信息,熟悉产品情况。
3>登记销售产品。
4>添加新产品,并填写产品相关信息。
3.售后服务人员对功能的需求1>查看售后服务信息。
2>添加售后服务信息。
三.分析模型时序图
销售管理系统顶层图
1.客户管理
第三层DFD图客户管理子系统
客户
帀査客户登陆信息
客户信息
客户信息有效
客户信息
售后服务信息i
销售信息
进入销售管理系统
2.销售管理
第三层DFD图销售管理子系统
息
一杳员信
幣售人员信息
俏售人员
■k1才I
ff1
/昶
'无效信息-
息
-1
产甜信息
4-
客户信息
销售信息
3.售后服务管理
第三层DFD图售后服务管理子系统
售后服务人员I
务人员登录、信息,
售后厳务人员信息有效
服务管理
无效信息
登记售后服务信息
售斥服务信息
4.客户登录动态时序图为
I.blnLagin_ClickQ.
2憾4用尸登录值息
*1
3.Loginfstnng,firing)
i>«
ii«
」;:
T/fiJhaatftfti密、
<1:
4
5Chg忙ZLog惦(stnng.Wiring)
9//樂示璇迎倍息<-
厂“豆整功
6w
A
■«
四.模块活动图,登录流程图
1.注册、登陆模块
1>模块功能描述
该模块主要实现对用户能否进入系统的确认以及对进入系统的用户权限的设定;因为本系
统涉及到三类使用者,不可能每一类用户都具有相同的操作权限,如前所说,必然会早成
系统的混乱和崩溃,严重影响其安全性和有效性。
所以采取在通常的注册,登录模式下加上用户类型的选择,非常简洁地就完成了对用户类型的区别及权限的划分。
2>在模块的详细设计后,便能得出实现该部分的具体流程,如图
用户注册模块程序流程图
登录模块程序流程图
活动图为:
IL
2.客户管理模块
i>模块功能描述
显示客户的基本信息。
库户可以查看自己的等级和交易次数
2>在模块的详细设计后,便能得出实现该部分的具体流程,如图3-8。
在召容门怡息
■*
瑚训创险客尸信
1
任看信息成功
添加開餘成功
1
〈丹厲〉
客户管理模块流程图
活动图为:
2
IO
系统提示用>户名无效』
3.销售管理模块
i>模块功能描述
在这个模块可以登记销售记录。
并且在提交记录时,更新数据库:
(1)更新客户信息。
如果是老客户”系统会按照客户等级给出对应的优惠价
(2)更新产品信息。
主要是更新该产品数量。
2>在模块的详细设计后,便能得出实现该部分的具体流程,如图
销售管理模块流程图
活动图为
销售人员登录系统4
选择查看商输入日期4
品销售记录4*
进行查询屮1
LX_
”日期无效a
J
rx/
1一一」
五•数据库设计
1.客户信息表
字段
数据类型
是否是主键
是否为空
说明
khid
Int
是
否
客户编号
khname
VarChar
否
否
客户名称
gyshjch
VarChar
否
否
客户简称
zhg
VarChar
否
是
采购主管
zhugtel
nChar
否
是
采购主管联系方式
adr
VarChar
否
是
客户地址
khtel
nchar
否
否
客户电话
fax
VarChar
否
是
传真
bzh
text
否
是
备注
2.商品进货表
字段
数据类型
是否是主键
是否为空
说明
jhbh
int
是
否
进货编号
shpmch
VarChar
否
否
商品名称
shpshp
Char
否
否
商品名称首拼
ddw
Char
否
否
大单位
xdw
Char
否
是
小单位
jhchb
numeric
否
否
进货成本
xshjg
numeric
否
否
销售价格
jhshul
int
否
否
进货数量
gysh
VarChar
否
是
供应商
jhrq
smalldatetime
否
否
进货日期
bzh
VarChar
否
是
备注
3.商品销售表
字段
数据类型
是否是主键
是否为空
说明
xshbh
Int
是
否
销售编号
shpmch
VarChar
否
否
商品名称
shpshp
VarChar
否
否
商品名称首
拼
xshjg
Numeric
否
是
销售价格
xshshl
Int
否
是
销售数量
xshry
VarChar
否
是
销售人员
xshrq
Smalldatet
ime
否
否
销售日期
kh
VarChar
否
是
客户简称
bzh
text
否
是备注
六.运行界面与代码
1.登陆窗口
DimconnAsADODB.Connection
DimrsAsADODB.Recordset
PrivateSubCmdOk_Click()
IfUserName.Text<>""AndPassWord.Text<>""Then
Setconn=NewADODB.Connection
Setrs=NewADODB.Recordset
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&
人事.mdb;PersistSecurityInfo=False"
rs.Open"select*fromusermanagewhereusername='"&
UserName.Text&"”',conn,1,1
IfNotrs.EOFThen
Ifrs("password")=PassWord.TextThen
Main.Show
UnloadMe
Else
MsgBox"非法登录,密码错误!
",vbOKOnly,"警告"
EndIf
Else
MsgBox"非法登录,找不到该用户!
",vbOKOnly,"警告"
EndIf
Else
MsgBox"用户名或密码不能为空!
",vbOKOnly,"提示"
EndIf
EndSub
PrivateSubPassWord_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
CallCmdOk_Click
EndIf
EndSub
PrivateSubUserName_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
CallCmdOk_Click
EndIf
EndSub
'2.主界面
PrivateSubCmd_Click(IndexAsInteger)
SelectCaseIndex
Case0
GoodsIn.Show
Me.Enabled=False
Case1
Saler.Show
Me.Enabled=False
Case2
SaleData.Show
Me.Enabled=False
Case3
SaleTotal.Show
Me.Enabled=False
Case4
UserM.Show
Me.Enabled=False
EndSelect
EndSub
'进货管理
PrivateSubCmd_Click(lndexAsInteger)
SelectCaseIndex
Case0'第一条
Adodc1.Recordset.MoveFirst
Case1'上一条
IfNotAdodc1.Recordset.BOFThen
Adodc1.Recordset.MovePrevious
EndIf
Case2'下一条
IfNotAdodc1.Recordset.EOFThen
AdodcI.Recordset.MoveNext
EndIf
Case3'最尾条
AdodcI.Recordset.MoveLast
Case4'添加
Adodcl.Recordset.AddNew
Fori=0To7
GoodText(i).Enabled=True
Next
Cmd(6).Enabled=True
Case5'修改
Fori=0To7
GoodText(i).Enabled=True
Next
Cmd(6).Enabled=True
Case6'保存
AdodcI.Recordset.Update
Fori=0To7
GoodText(i).Enabled=False
Next
MsgBox"更新记录成功!
",vbOKOnly,"提示"
Cmd(6).Enabled=False
Case6'删除
IfMsgBox("确定删除当前记录,数据将不可恢复?
",vbOKCancel,"提示")=vbOKThen
Adodc1.Recordset.Delete
EndIf
EndSelect
EndSub
PrivateSubForm_Load()
Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.O;Data
人事.mdb;PersistSecurityInfo=False"
Adodc1.RecordSource="select*fromsave"
Fori=0To6
SetGoodText(i).DataSource=Adodcl
GoodText(i).DataField=Adodc1.Recordset.Fields(i).Name
Next
Adodcl.Refresh
SetDataGridl.DataSource=Adodcl
EndSub
PrivateSubForm_Unload(CancelAsInteger)
1X0N&八O|/\iesp」oo轴•2pop\/
ZU丄dO319spjoo8^-Lopopvionj|
翳—丄.乙eseg
)1PU3
snO!
/\o」cPAO|/\iesp」oooBjopop\/
U8i|丄doaisspjooa^-Lopopv2nj|
翳—丁jeseg
)1PU3
1SJ!
J8AO|/\|48SPJOO8^'ppop\/
U8i|丄doaisspjooa^-Lopopv2nj|
翳一蚩.0Qseg
xapu|asegpaps
(j8681U|svxapu|)>|0!
i9-piu9qns八!
」d
6ui4Ssvuoipesiqnd
bumssvP!
oiiqnd
laspjooa^aaoavsvsjtuiauoipauuooacjOQVsvuuooiuiqqnspu^
oru丄=p8|qeu3uie|/\|
EndIf
Case3'最尾条
IfNotAdodc1.Recordset.EOFThen
AdodcI.Recordset.MoveLast
EndIf
Case4'添加
action="add"
ManageSale.Show
Me.Enabled=False
Case5'修改
action="modify"id=Adodc1.Recordset.Fields("id")
ManageSale.Show
Me.Enabled=False
Case7'删除
IfMsgBox("确定删除当前记录,数据将不可恢复?
",vbOKCancel,"提示")=
vbOKThen
Setconn=NewADODB.Connection
Setrs=NewADODB.Recordset
conn.Open"Provider=Microsoft.Jet.OLEDB.4.O;DataSource="&人事.mdb;PersistSecurityInfo=False"
rs.Open"selectgoodcountfromsavewheregoodnum='"
GoodText(0).Text&"'",conn,1,3
rs("goodcount")=rs("goodcount")+GoodText(5).Text
rs.Update
rs.Close
Adodc1.Recordset.Delete
EndIf
EndSelect
EndSub
PrivateSubForm_Load()
Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data
人事.mdb;PersistSecurityInfo=False"
Adodc1.RecordSource="select*fromsaleorderbyid"
Fori=0To6
SetGoodText(i).DataSource=Adodcl
GoodText(i).DataField=Adodc1.Recordset.Fields(i+1).Name
Next
Adodcl.Refresh
SetDataGridl.DataSource=Adodcl
EndSub
PrivateSubForm_Unload(CancelAsInteger)
Main.Enabled=True
EndSub
添加修改销售记录
DimconnAsADODB.Connection
DimrsAsADODB.Recordset
PublicsalecountAsLong
PrivateSubCombo1_Change()
EndSub
PrivateSubCmd_Click(lndexAsInteger)
SelectCaseIndex
Case0
Setconn=NewADODB.Connection
Setrs=NewADODB.Recordset
conn.Open"Provider=Microsoft.Jet.OLEDB.4.O;DataSource="&
人事.mdb;PersistSecurityInfo=False"
IfGoodText(0)=""OrGoodText(3)=""OrGoodText⑷=""Then
MsgBox"数据没有输入完整,请重新输入!
",vbOKOnly,"提示"
ExitSub
EndIf
IfSaleData.action="add"Then
rs.Open"select*fromsale",conn,1,3
rs.AddNew
Else
rs.Open"select*fromsalewhereid="&SaleData.id,conn,1,3
EndIf
rs("Goodnum")=GNum.Text
rs("goodname")=GoodText
(1).Text
rs("danwei")=GoodText
(2).Text
rs("outdate")=GoodText(3).Text
rs("danjia")=GoodText⑷.Text
rs("outcount")=GoodText(0).Text
rs("salename")=SaleName.Text
rs.Update
rs.Closers.Open"select*fromsavewheregoodnum='"&GNum.Text&"'",
conn.
1,3'在库存表中将库存数量减去已售出的数量
IfSaleData.action="add"Then
rs("goodcount")=rs("goodcount")-GoodText(0).Text
Else
rs("goodcount")=rs("goodcount")-(GoodText(O).Text-salecount)
EndIf
rs.Update
rs.Close
MsgBox"数据更新成功!
",vbOKOnly,"提示"
SaleData.AdodcI.Refresh
UnloadMe
Case1
UnloadMe
EndSelect
EndSub
PrivateSubForm_Load()
Setconn=NewADODB.Connection
Setrs=NewADODB.Recordset
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path人事.mdb;PersistSecurityInfo=False"
DimsalemanAsString
IfSaleData.action="add"Then
rs.Open"selectgoodnumfromsaveorderbygoodnum",conn,1,1DoWhileNotrs.EOF
GNum.AddItemrs(0)
rs.MoveNext
Loop
GNum.Text=GNum丄ist(O)
Else
rs.Open"select*fromsalewhereid="&SaleData.id,conn,1,1
GNum.Addltemrs("goodnum")
GoodText
(1).Text=rs("goodname")
GoodText
(2).Text=rs("danwei")
GoodText(3).Text=rs("outdate")
GoodText⑷.Text=rs("danjia")
GoodText(0).Text=rs("outcount")
saleman=rs("salename")
GNum.Text=GNum丄ist(0)
GNum.Enabled=False
rs.Close
rs.Open"select*fromsavewheregoodnum='"&GNum.Text&"'"
conn,1,1
SaleNum.Max=GoodText(0).Text+rs("goodcount")
salecount=GoodText(0).Text
EndIf
rs.Close
rs.Open"selectsalenamefromsalerorderbyid",conn,1,1
DoWhileNotrs.EOF
SaleName.AddItemrs(0)
rs.MoveNext
Loop
IfSaleData.action="add"Then
SaleName.Text=SaleName.List(O)
Else
SaleName.Text=saleman
Cmd(0).Caption="保存修改"
EndIf
rs.Close
EndSub
PrivateSubForm_Unload(CancelAsInteger)
SaleData.Enabled=True
EndSub
PrivateSubGNum_Click()
Setconn=NewADODB.Connection
Setrs=NewADODB.Recordset
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path
人事.mdb;PersistSecurityInfo=False"
rs.Open"select*fromsavewheregoodnum='"&GNum.Text&"'",conn,1,
1
IfNotrs.EOFThen
GoodText
(1).Text=rs("goodname")
GoodText
(2).Text=rs("danwei")
SaleNum.Max=rs("goodcount")
EndIf
EndSub