您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页正文

软件工程-课程设计-销售管理系统

来源:化拓教育网
销售管理系统

一.项目简介

随着计算机技术的迅猛发展,存在于网络的企业销售管理系统将逐步代替传统的管理模式进入企业。为了更高效得完成销售方面的工作,也可以有更多的时间处理更多的别的事务,企业也将摆脱原有的管理形势完全进入信息化管理。销售管理系统在企业的管理过程中起着巨大的作用

二。功能需求

一个销售管理系统,设计者的目标是满足公司运营和日常管理的需要,具有对产品,客户管理的功能。客户登录销售管理系统进行售后服务查询,销售员可以对销售的产品进行登记,并将销售情况反馈给数据库。为管理的方便性和信息传递的快速性提供了一个很好的平台。系统开发的总体任务是实现售后服务及销售登记自动化。总之,销售管理系统要实现登陆验证、商品销售管理、商品销售报表管理、客户信息管理四大部分. 1.客户对功能的需求

1〉查看自己的信息,了解自己近期的购买情况。 2>查看产品的信息,熟悉产品情况。 2>查看售后服务信息.

2。销售人员对功能的需求

1〉查看自己的信息,了解自己近期的销售情况。 2〉查看产品的信息,熟悉产品情况. 3〉登记销售产品。

4〉添加新产品,并填写产品相关信息。

3.售后服务人员对功能的需求

1>查看售后服务信息。 2〉添加售后服务信息。

三. 分析模型时序图 销售管理系统顶层图

1.客户管理

第三层DFD图 客户管理子系统

2.销售管理

第三层DFD图 销售管理子系统

3.售后服务管理

第三层DFD图 售后服务管理子系统

4.客户登录动态时序图为

四。 模块活动图,登录流程图

1。注册、登陆模块

1〉模块功能描述

该模块主要实现对用户能否进入系统的确认以及对进入系统的用户权限的设定;因为本系统涉及到三类使用者,不可能每一类用户都具有相同的操作权限,如前所说,必然会早成系统的混乱和崩溃,严重影响其安全性和有效性。所以采取在通常的注册,登录模式下加上用户类型的选择,非常简洁地就完成了对用户类型的区别及权限的划分。 2>在模块的详细设计后,便能得出实现该部分的具体流程,如图 用户注册模块程序流程图 登录模块程序流程图

活动图为:

2。客户管理模块

1〉模块功能描述

显示客户的基本信息。 库户可以查看自己的等级和交易次数。

2>在模块的详细设计后,便能得出实现该部分的具体流程,如图3-8。 客户管理模块流程图

活动图为:

3.销售管理模块

1 >模块功能描述

在这个模块可以登记销售记录。并且在提交记录时,更新数据库:

(1)更新客户信息。如果是“老客户”系统会按照客户等级给出对应的优惠价。 (2)更新产品信息。主要是更新该产品数量.

2>在模块的详细设计后,便能得出实现该部分的具体流程,如图 销售管理模块流程图

活动图为

五.数据库设计

1.客户信息表 2。商品进货表 3.商品销售表

六。运行界面与代码

1。登陆窗口

Dim conn As ADODB。Connection Dim rs As ADODB.Recordset Private 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 & \"\\人事.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 ”非法登录,密码错误!\, \"警告” End If Else

MsgBox \"非法登录,找不到该用户!”, vbOKOnly, \"警告” End If Else

MsgBox ”用户名或密码不能为空!\", vbOKOnly, ”提示” End If End Sub

Private Sub PassWord_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call CmdOk_Click End If End Sub

Private Sub UserName_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then Call CmdOk_Click End If End Sub

`2.主界面

Private Sub Cmd_Click(Index As Integer) Select Case Index 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 Select End Sub

`进货管理

Private Sub Cmd_Click(Index As Integer) Select Case Index Case 0 ’第一条

Adodc1.Recordset。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)。Enabled = 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(\"确定删除当前记录,数据将不可恢复?”,提示\") = vbOK Then

, vbOKCancel \" Adodc1.Recordset。Delete End If End Select End Sub

Private 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 = Adodc1。Recordset。Fields(i)。Name Next

Adodc1.Refresh

Set DataGrid1。DataSource = Adodc1 End Sub

Private Sub Form_Unload(Cancel As Integer) Main。Enabled = True End Sub

`销售管理

Dim conn As ADODB。Connection Dim rs As ADODB.Recordset Public id As String Public action As String

Private Sub Cmd_Click(Index As Integer) Select 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 Adodc1。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.Recordset

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 Select End Sub

Private 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。Recordset。Fields(i + 1).Name Next

Adodc1。Refresh

Set DataGrid1。DataSource = Adodc1 End Sub

Private Sub Form_Unload(Cancel As Integer) Main.Enabled = True End Sub

添加修改销售记录

Dim conn As ADODB。Connection Dim rs As ADODB.Recordset Public salecount As Long Private Sub Combo1_Change() End Sub

Private Sub Cmd_Click(Index As 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 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(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\") - (GoodText(0).Text — salecount) End If

rs。Update rs。Close

MsgBox ”数据更新成功!\, \"提示\" SaleData.Adodc1。Refresh Unload Me Case 1 Unload Me End Select End Sub

Private 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 & ”\\人事。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

GNum.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=’” & 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, Do While Not rs.EOF SaleName。AddItem rs(0) rs.MoveNext Loop

If SaleData.action = \"add” Then SaleName.Text = SaleName.List(0) Else

SaleName。Text = saleman Cmd(0)。Caption = ”保存修改\" End If rs。Close End Sub

Private Sub Form_Unload(Cancel As Integer) SaleData.Enabled = True End Sub

Private Sub GNum_Click()

Set conn = New ADODB。Connection Set rs = New ADODB。Recordset

, 1 1 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

因篇幅问题不能全部显示,请点此查看更多更全内容