《软件工程-课程设计-销售管理系统.doc》由会员分享,可在线阅读,更多相关《软件工程-课程设计-销售管理系统.doc(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date软件工程-课程设计-销售管理系统软件工程-课程设计-销售管理系统销售管理系统一.项目简介随着计算机技术的迅猛发展,存在于网络的企业销售管理系统将逐步代替传统的管理模式进入企业。为了更高效得完成销售方面的工作,也可以有更多的时间处理更多的别的事务,企业也将摆脱原有的管理形势完全进入信息化管理。销售管理系统在企业的管理过程中起着巨大的作用二.功能需求一个销售管理系统,设计
2、者的目标是满足公司运营和日常管理的需要,具有对产品,客户管理的功能。客户登录销售管理系统进行售后服务查询,销售员可以对销售的产品进行登记,并将销售情况反馈给数据库。为管理的方便性和信息传递的快速性提供了一个很好的平台。系统开发的总体任务是实现售后服务及销售登记自动化。总之,销售管理系统要实现登陆验证、商品销售管理、商品销售报表管理、客户信息管理四大部分。1.客户对功能的需求1查看自己的信息,了解自己近期的购买情况。2查看产品的信息,熟悉产品情况。2查看售后服务信息。2.销售人员对功能的需求1查看自己的信息,了解自己近期的销售情况。2查看产品的信息,熟悉产品情况。3登记销售产品。4添加新产品,并
3、填写产品相关信息。3.售后服务人员对功能的需求1查看售后服务信息。2添加售后服务信息。三. 分析模型时序图销售管理系统顶层图1.客户管理第三层DFD图 客户管理子系统2.销售管理第三层DFD图 销售管理子系统3.售后服务管理第三层DFD图 售后服务管理子系统4.客户登录动态时序图为四. 模块活动图,登录流程图1.注册、登陆模块1模块功能描述该模块主要实现对用户能否进入系统的确认以及对进入系统的用户权限的设定;因为本系统涉及到三类使用者,不可能每一类用户都具有相同的操作权限,如前所说,必然会早成系统的混乱和崩溃,严重影响其安全性和有效性。所以采取在通常的注册,登录模式下加上用户类型的选择,非常简
4、洁地就完成了对用户类型的区别及权限的划分。2在模块的详细设计后,便能得出实现该部分的具体流程,如图用户注册模块程序流程图登录模块程序流程图活动图为:2.客户管理模块1模块功能描述显示客户的基本信息。 库户可以查看自己的等级和交易次数。2在模块的详细设计后,便能得出实现该部分的具体流程,如图3-8。客户管理模块流程图活动图为:3.销售管理模块1模块功能描述在这个模块可以登记销售记录。并且在提交记录时,更新数据库:(1)更新客户信息。如果是“老客户”系统会按照客户等级给出对应的优惠价。(2)更新产品信息。主要是更新该产品数量。2在模块的详细设计后,便能得出实现该部分的具体流程,如图销售管理模块流程
5、图活动图为五.数据库设计1.客户信息表 2.商品进货表 3.商品销售表六.运行界面与代码1.登陆窗口Dim conn As ADODB.ConnectionDim rs As ADODB.RecordsetPrivate Sub CmdOk_Click() If UserName.Text And PassWord.Text Then Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 人
6、事.mdb;Persist Security Info=False rs.Open select * from usermanage where username= & UserName.Text & , conn, 1, 1 If Not rs.EOF Then If rs(password) = PassWord.Text Then Main.Show Unload Me Else MsgBox 非法登录,密码错误!, vbOKOnly, 警告 End If Else MsgBox 非法登录,找不到该用户!, vbOKOnly, 警告 End If Else MsgBox 用户名或密码不能
7、为空!, vbOKOnly, 提示 End IfEnd SubPrivate Sub PassWord_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call CmdOk_Click End IfEnd SubPrivate Sub UserName_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call CmdOk_Click End IfEnd Sub 2.主界面Private Sub Cmd_Click(Index As Integer) Select Case Index
8、 Case 0 GoodsIn.Show Me.Enabled = False Case 1 Saler.Show Me.Enabled = False Case 2 SaleData.Show Me.Enabled = False Case 3 SaleTotal.Show Me.Enabled = False Case 4 UserM.Show Me.Enabled = False End SelectEnd Sub进货管理Private Sub Cmd_Click(Index As Integer) Select Case Index Case 0 第一条 Adodc1.Recordse
9、t.MoveFirst Case 1 上一条 If Not Adodc1.Recordset.BOF Then Adodc1.Recordset.MovePrevious End If Case 2 下一条 If Not Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveNext End If Case 3 最尾条 Adodc1.Recordset.MoveLast Case 4 添加 Adodc1.Recordset.AddNew For i = 0 To 7 GoodText(i).Enabled = True Next Cmd(6).Enabl
10、ed = True Case 5 修改 For i = 0 To 7 GoodText(i).Enabled = True Next Cmd(6).Enabled = True Case 6 保存 Adodc1.Recordset.Update For i = 0 To 7 GoodText(i).Enabled = False Next MsgBox 更新记录成功!, vbOKOnly, 提示 Cmd(6).Enabled = False Case 6 删除 If MsgBox(确定删除当前记录,数据将不可恢复?, vbOKCancel, 提示) = vbOK Then Adodc1.Rec
11、ordset.Delete End If End SelectEnd SubPrivate Sub Form_Load() Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 人事.mdb;Persist Security Info=False Adodc1.RecordSource = select * from save For i = 0 To 6 Set GoodText(i).DataSource = Adodc1 GoodText(i).DataField = Ad
12、odc1.Recordset.Fields(i).Name Next Adodc1.Refresh Set DataGrid1.DataSource = Adodc1End SubPrivate Sub Form_Unload(Cancel As Integer) Main.Enabled = TrueEnd Sub销售管理Dim conn As ADODB.ConnectionDim rs As ADODB.RecordsetPublic id As StringPublic action As StringPrivate Sub Cmd_Click(Index As Integer) Se
13、lect Case Index Case 0 第一条 If Not Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst End If Case 1 上一条 If Not Adodc1.Recordset.BOF Then Adodc1.Recordset.MovePrevious End If Case 2 下一条 If Not Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveNext End If Case 3 最尾条 If Not Adodc1.Recordset.EOF Then Adod
14、c1.Recordset.MoveLast End If Case 4 添加 action = add ManageSale.Show Me.Enabled = False Case 5 修改 action = modify id = Adodc1.Recordset.Fields(id) ManageSale.Show Me.Enabled = False Case 7 删除 If MsgBox(确定删除当前记录,数据将不可恢复?, vbOKCancel, 提示) = vbOK Then Set conn = New ADODB.Connection Set rs = New ADODB.R
15、ecordset conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 人事.mdb;Persist Security Info=False rs.Open select goodcount from save where goodnum= & GoodText(0).Text & , conn, 1, 3 rs(goodcount) = rs(goodcount) + GoodText(5).Text rs.Update rs.Close Adodc1.Recordset.Delete End If End
16、SelectEnd SubPrivate Sub Form_Load() Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 人事.mdb;Persist Security Info=False Adodc1.RecordSource = select * from sale order by id For i = 0 To 6 Set GoodText(i).DataSource = Adodc1 GoodText(i).DataField = Adodc1.Recordse
17、t.Fields(i + 1).Name Next Adodc1.Refresh Set DataGrid1.DataSource = Adodc1End SubPrivate Sub Form_Unload(Cancel As Integer) Main.Enabled = TrueEnd Sub添加修改销售记录Dim conn As ADODB.ConnectionDim rs As ADODB.RecordsetPublic salecount As LongPrivate Sub Combo1_Change()End SubPrivate Sub Cmd_Click(Index As
18、Integer) Select Case Index Case 0 Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 人事.mdb;Persist Security Info=False If GoodText(0) = Or GoodText(3) = Or GoodText(4) = Then MsgBox 数据没有输入完整,请重新输入!, vbOKOnly, 提示 Exit Sub
19、 End If If SaleData.action = add Then rs.Open select * from sale, conn, 1, 3 rs.AddNew Else rs.Open select * from sale where id= & SaleData.id, conn, 1, 3 End If rs(Goodnum) = GNum.Text rs(goodname) = GoodText(1).Text rs(danwei) = GoodText(2).Text rs(outdate) = GoodText(3).Text rs(danjia) = GoodText
20、(4).Text rs(outcount) = GoodText(0).Text rs(salename) = SaleName.Text rs.Update rs.Close rs.Open select * from save where goodnum= & GNum.Text & , conn, 1, 3 在库存表中将库存数量减去已售出的数量 If SaleData.action = add Then rs(goodcount) = rs(goodcount) - GoodText(0).Text Else rs(goodcount) = rs(goodcount) - (GoodTe
21、xt(0).Text - salecount) End If rs.Update rs.Close MsgBox 数据更新成功!, vbOKOnly, 提示 SaleData.Adodc1.Refresh Unload Me Case 1 Unload Me End SelectEnd SubPrivate Sub Form_Load() Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path &
22、 人事.mdb;Persist Security Info=False Dim saleman As String If SaleData.action = add Then rs.Open select goodnum from save order by goodnum, conn, 1, 1 Do While Not rs.EOF GNum.AddItem rs(0) rs.MoveNext Loop GNum.Text = GNum.List(0) Else rs.Open select * from sale where id= & SaleData.id, conn, 1, 1 G
23、Num.AddItem rs(goodnum) GoodText(1).Text = rs(goodname) GoodText(2).Text = rs(danwei) GoodText(3).Text = rs(outdate) GoodText(4).Text = rs(danjia) GoodText(0).Text = rs(outcount) saleman = rs(salename) GNum.Text = GNum.List(0) GNum.Enabled = False rs.Close rs.Open select * from save where goodnum= &
24、 GNum.Text & , conn, 1, 1 SaleNum.Max = GoodText(0).Text + rs(goodcount) salecount = GoodText(0).Text End If rs.Close rs.Open select salename from saler order by id, conn, 1, 1 Do While Not rs.EOF SaleName.AddItem rs(0) rs.MoveNext Loop If SaleData.action = add Then SaleName.Text = SaleName.List(0)
25、Else SaleName.Text = saleman Cmd(0).Caption = 保存修改 End If rs.CloseEnd SubPrivate Sub Form_Unload(Cancel As Integer) SaleData.Enabled = TrueEnd SubPrivate Sub GNum_Click() Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 人事.mdb;Persist Security Info=False rs.Open select * from save where goodnum= & GNum.Text & , conn, 1, 1 If Not rs.EOF Then GoodText(1).Text = rs(goodname) GoodText(2).Text = rs(danwei) SaleNum.Max = rs(goodcount) End If End Sub-
限制150内