VB+SQL 销售合同管理系统论文.docx
- 文档编号:6795658
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:35
- 大小:344.58KB
VB+SQL 销售合同管理系统论文.docx
《VB+SQL 销售合同管理系统论文.docx》由会员分享,可在线阅读,更多相关《VB+SQL 销售合同管理系统论文.docx(35页珍藏版)》请在冰豆网上搜索。
VB+SQL销售合同管理系统论文
目录
[摘要]2
一、概述2
1.绪论2
2.VisualBasic开发工具2
3.SQLServer2000简介2
二、系统需求分析3
三、系统总体设计3
2、体系结构功能模块图:
3
1、用户管理功能模块关系图:
4
3、简单使用说明4
4、数据表设计4
5、使用到的模块6
三、详细设计6
1、登录窗体6
2、系统主界面8
3、产品管理模块设计8
3.1产品信息编辑窗体8
3.2产品信息管理窗体,名称为Frmproductman。
窗体布局如下:
9
4、合同管理模块设计11
4.1合同信息编辑窗体11
4.2合同信息管理窗体13
4.3合同产品信息编辑窗体15
5、合同费用管理模块设计16
5.1合同费用信息编辑窗体16
5.2合同费用信息管理窗体18
6.1合同收帐信息编辑窗体19
6.2合同收帐信息管理窗体21
7、合同统计管理模块22
7.1创建视图22
7.2合同成本利润统计月报22
7.3合同成本利润统计年报表,23
8、用户信息管理模块设计24
8.1用户信息编辑窗体24
8.2用户管理窗体25
小结:
27
参考文献:
27
销售合同管理系统
王小群
(浙江海洋学院石化学院,浙江舟山316004)
[摘要]:
销售合同是企业经营的重要组成部分,它可以体现一个企业的经营情况和效益。
企业销售合同管理系统可以有效地提高企业宏观控制和经营管理的质量,是企业现代化管理的重要组成部分。
后台数据库使用SQLServer,前台开发工具使用VisualBasic。
本系统采用目前比较流行的ADO数据访问技术,并将每个数据库表的字段和操作封装到类中,从而成功地将面向对象的程序设计思想应用到数据库应用程序设计中。
这也是本系统的特色和优势
[关键词]:
销售合同管理系统SQLServer数据库VisualBasic开发语言管理信息系统
一、概述
1.绪论
信息时代到来,电脑信息管理技术越来越受到各企业的高度重视,逐渐成为企业在现代化发展中不可缺少的一部分。
在当今IT技术日新月异,而企业市场化进程加快的时刻,电脑信息管理技术几乎涉及到每一家优秀企业的整个经营活动。
对公司经营、效率甚至策略的变化都有直接而深远的影响。
因此,我们需要一种能对数据进行各种操作的工具——数据库管理系统。
一个公司或者个人都需要经常签订各种大大小小的合同。
随着签订合同数量的增多,合同的管理必然成为一种负担。
在信息化程度越来越高的当今社会,可以使用信息化的手段来管理合同的信息。
合同管理系统可以高效、有序地管理本企业合同。
完善的合同管理是公司是公司健康动作的一个重要标志。
2.VisualBasic开发工具
VisualBasic作为VisualStudio家族中的一员,以其开发速度快、使用简单而被广泛使用。
VisualBasic的主要功能特点:
(1)可视化编程、(2)面向对象的程序设计、(3)结构化程序设计语言、(4)事件驱动编程机制、(5)访问数据库
3.SQLServer2000简介
SQLServer2000以其卓越的性能逐渐成为Windows操作系统平台下进行数据库应用开发中较为理想的选择之一。
SQLServer2000由一系列相互协作的组件构成,能最大程度地满足Web站点和企业数据处理系统存储和分析数据的需要。
SQLServer2000的特性:
(1)Internet集成、(2)可伸缩性、(3)企业级数据库功能、(4)易于安装、部署和使用、(5)数据仓库
二、系统需求分析
销售合同管理系统的用户是企业中负责销售的管理人员,包括产品信息管理、合同费用管理、合同收帐管理、合同信息管理、合同信息统计等主要功能,具体功能如下:
(1)产品信息的添加、修改、删除和查询。
(2)合同费用信息的添加、修改和查询。
(3)合同收帐信息的添加、修改和查询。
(4)合同信息的添加、修改和查询。
(5)合同成本利润统计月报表和合同成本利润统计年报表。
三、系统总体设计
2、体系结构功能模块图:
1、用户管理功能模块关系图:
3、简单使用说明
(1)运行系统后,首先会看到登录窗体,对用户的身份进行认证。
如果需要对普通用户进行管理,则使用Admin用户登录;否则建议使用Users用户登录。
如果还要创建其他用户,可以在用户管理模块中创建和管理其他普通用户。
(2)在本系统中,应该首先增加产品信息,之后才能增加合同信息。
产品信息管理模块可以添加、修改、删除和查看等操作。
(3)添加产品信息后,就可以添加合同信息了。
在合同信息管理模块中可以对合同信息进行添加、修改、更改状态和查看等操作。
(4)在合同费用管理模块中,可以对合同费用信息进行添加、修改和查看等操作。
(5)在合同收帐管理模块中,可以对合同收帐信息进行添加、修改和查询等操作。
(6)在合同统计管理模块中,可以对合同成本利润月报表和年报表等查询。
4、数据表设计
(1)产品表Product,保存产品信息。
(2)同费用表Cost,保存合同费用信息。
(3)合同收帐表Income,保存合同收帐信息。
(4)合同产品表ConProduct,保存合同中包含的产品信息。
(5)合同信息表Contract,保存合同的基本信息。
(6)用户信息表Users,保存系统用户信息UserName(用户名)、UserPwd(密码)。
5、使用到的模块
(1)Const.用来管理本系统中的全局常量。
(2)DbFunc.用来管理本系统中与数据库操作相关的的声明、变量和函数,例如连接数据库、断开与数据库的连接等。
(3)PGeneralFunc.用来管理通用的用户自定义函数。
(4)Variable.用来管理工程中的全局变量,包括全局数组和全局对象。
三、详细设计
1、登录窗体,名称为Frmlogin,布局如下:
(1)变量声明:
PublicPasswordKeyAsString
PublicNameKeyAsString
PublicTry_timesAsInteger
Namekey保存用户名,passwordkey保存密码,try_times记录尝试登录的次数。
(2)Cmd_ok_click过程:
PrivateSubCmd_OK_Click()
DimjAsSingle'数据有效性检查
IftxtUser=""Then
MsgBox"请输入用户名"
txtUser.SetFocus
ExitSub
EndIf
IftxtPwd=""Then
MsgBox"请输入密码"
txtPwd.SetFocus
ExitSub
EndIf'将用户输入赋值到变量中
NameKey=MakeStr(txtUser)
PasswordKey=MakeStr(txtPwd)'判断用户是否存在
IfMyUser.In_DB(NameKey)=FalseThen
MsgBox"用户名不存在"
Try_times=Try_times+1
IfTry_times>=3Then
MsgBox"您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
ExitSub
EndIf
EndIf'判断密码是否正确
MyUser.GetInfo(NameKey)
IfMyUser.UserPwd<>PasswordKeyThen
MsgBox"密码错误"
Try_times=Try_times+1
IfTry_times>=3Then
MsgBox"您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
ExitSub
EndIf
EndIf'登录成功,将当前用户的信息保存在CurUser中
CurUser.GetInfo(MyUser.UserName)'关闭登录对话框
UnloadMe
EndSub
2、系统主界面。
主窗体是本系统的启动对象,名为FrmMain。
在主窗体中添加如下代码:
Privatesubfrom_load()
Frmlogin.show`1
End
当主窗体启动时,首先打开“登录”寻话框。
如果不能通过身份验证,则不能进入系统。
mn_exit_click过程:
Privatesubmn_exit_click()
Dbapi_Disconnect
End
Endsub
3、产品管理模块设计
3.1产品信息编辑窗体,为Frmproductedit,布局如下:
(1)
Cmd_ok_click事件:
PrivateSubCmd_OK_Click()
DimTmpIdAsString
IfTrim(txtId)=""Then
MsgBox"请输入产品编号"
ExitSub
EndIf
IfTrim(txtName)=""Then
MsgBox"请输入产品名称"
ExitSub
EndIf
TmpId=MakeStr(txtId)'判断产品编号是否已经存在
IfModify=FalseOrOriId<>Trim(txtId)Then
IfMyPro.In_DB(TmpId)=TrueThen
MsgBox"产品编号“"+Trim(txtId)+"”已经存在,请重新输入"
txtId.SetFocus
txtId.SelStart=0
txtId.SelLength=Len(txtId)
ExitSub
EndIf
EndIf
WithMyPro
.ProId=TmpId
.ProName=MakeStr(txtName)
.ProMark=MakeStr(txtMark)
.ProStyle=MakeStr(txtStyle)
.ProUnit=MakeStr(txtUnit)
IfModify=FalseThen
.Insert
Else
.Update(OriId)
EndIf
EndWith
ClickOK=True
UnloadMe
EndSub
程序首先对用户输入的数据进行分析,确保数据的有效性。
然后判断输入的产品编号是否已经存在数据库中,如果已经存在,则不能添加。
3.2产品信息管理窗体,名称为Frmproductman。
窗体布局如下:
在窗体中,使用了ADOData控件和DATAGrid1控件来显示产品信息。
(1)refresh_pro过程的功能是更新ADOData控件的记录源,从而刷新Datagrid1表格中显示的产品数据。
rivateSubRefresh_Pro()
Adodc1.ConnectionString=conn
Adodc1.RecordSource="SELECTProIdAs产品编号,ProNameAs产品名称,"_+"ProMarkAs产品商标,ProStyleAs产品型号,ProUnitAs计量单位"_+"FROMProductORDERBYProId"
Adodc1.Refresh
EndSub
(2)当装入窗体时触发From_load事件:
PrivateSubForm_Load()
Refresh_Pro
EndSub
(3)cmd_Add_click过程:
PrivateSubCmd_Add_Click()
FrmProductEdit.Modify=False
FrmProductEdit.txtId=""
FrmProductEdit.txtName=""
FrmProductEdit.txtMark=""
FrmProductEdit.txtStyle=""
FrmProductEdit.txtUnit=""
FrmProductEdit.Show1
Refresh_Pro
EndSub
(4)cmd_modi_click过程:
privateSubCmd_Modi_Click()
DimTmpProIdAsInteger
IfAdodc1.Recordset.BOF=TrueThen
MsgBox"请选择记录"
ExitSub
EndIf
'保存光标位置
p=Adodc1.Recordset.AbsolutePosition
'读取当前记录的各列数据
FrmProductEdit.OriId=Trim(Adodc1.Recordset.Fields(0))
FrmProductEdit.txtId=Trim(Adodc1.Recordset.Fields(0))
FrmProductEdit.txtName=Trim(Adodc1.Recordset.Fields
(1))
FrmProductEdit.txtMark=Trim(Adodc1.Recordset.Fields
(2))
FrmProductEdit.txtStyle=Trim(Adodc1.Recordset.Fields(3))
FrmProductEdit.txtUnit=Trim(Adodc1.Recordset.Fields(4))
FrmProductEdit.Modify=True
FrmProductEdit.Show1
Refresh_Pro'恢复光标位置
Adodc1.Recordset.Move0
Adodc1.Recordset.Movep-1
EndSub
程序将使用ADodc1.recordset.fields(n)从当前记录中获取n+1列数值,并将其赋值到frmproductedit窗体的对就控件中。
(5)Cmd_del_click过程:
PrivateSubCmd_Del_Click()
DimTmpProIdAsString
IfAdodc1.Recordset.BOF=TrueThen
MsgBox"请选择记录"
ExitSub
EndIf
p=Adodc1.Recordset.AbsolutePosition
TmpProId=Trim(Adodc1.Recordset.Fields(0))'确认删除
IfMsgBox("是否删除当前行?
",vbYesNo,"确认")=vbYesThen
CallMyPro.Delete(TmpProId)
Refresh_Pro
Ifp-1>0Then
Adodc1.Recordset.Move0
Adodc1.Recordset.Movep-1
EndIf
EndIf
EndSub
4、合同管理模块设计。
合同管理模块是本系统的核心部分。
4.1合同信息编辑窗体,名称为FrmContractEdit,窗体布局如下:
在窗体中使用DTPicker输入日期数据。
(1)refresh_pro过程的作用是显示合同产品信息。
代码如下:
PrivateSubRefresh_Pro()
Adodc1.ConnectionString=conn
Adodc1.RecordSource="SELECTProIdAs产品编号,UnitPriceAs产品单价,QuantityAs产品数量,"_+"DeliveryDateAs交货日期,MemoAs备注信息"_+"FROMConProductWHEREContractId='"+Trim(MyContract.ContractId)_+"'ORDERBYProId"
Adodc1.Refresh
EndSub
(2)Cmd_save_click过程:
PrivateSubCmd_Save_Click()
DimTmpIdAsString
IfTrim(txtId)=""Then
MsgBox"请输入合同编号"
ExitSub
EndIf
IfTrim(txtClient)=""Then
MsgBox"请输入客户单位"
ExitSub
EndIf
TmpId=MakeStr(txtId)
'判断产品编号是否已经存在
IfModify=FalseOrOriId<>Trim(txtId)Then
IfMyContract.In_DB(TmpId)=TrueThen
MsgBox"合同编号“"+Trim(txtId)+"”已经存在,请重新输入"
txtId.SetFocus
txtId.SelStart=0
txtId.SelLength=Len(txtId)
ExitSub
EndIf
EndIf
WithMyContract
.ContractId=TmpId
.Client=MakeStr(txtClient)'规范日期格式
.SignDate=Format(DTSignDate.Value,"yyyy-mm-dd")
.EmpName=MakeStr(txtEmpName)
.DeliveryWay=MakeStr(txtDeliveryWay)
.DeliveryDate=Format(DTDeliveryDate.Value,"yyyy-mm-dd")
.SettleWay=ComboSettle.ListIndex+1
.Validation=Format(DTValidation.Value,"yyyy-mm-dd")
.Contents=MakeStr(txtContents)
.Additional=MakeStr(txtAdditional)
IfModify=FalseThen
.Status=1
.Insert
Modify=True
OriId=.ContractId
Else
.Update(OriId)
EndIf
EndWith
MsgBox"合同保存完成"
EndSub Status字段等于1表示合同状态与签定合同。
4.2合同信息管理窗体,名称为FrmContractMan,布局如下:
(1)当单击日历控件时触发MonthView_click事件,代码如下:
PrivateSubMonthView1_Click()
DimSelDateAsString'获取选择的日期
SelDate=Format(MonthView1.Value,"yyyy-mm-dd")
Adodc1.ConnectionString=conn
Adodc1.RecordSource="SELECTContractIdFROMContractWHERESignDate='"_+SelDate+"'"
Adodc1.Refresh
DataList1_Click
EndSub
(2)当窗体启动时触发from_load事件,代码如下:
PrivateSubForm_Load()
MonthView1.Value=Now
MonthView1_Click
EndSub
(3)Datalist1-click过程:
程序将根据选择的合同编号调用Mycontract.getinfo过程,读取合同的基本信息,并显示在右侧的“合同信息”栏处。
PrivateSubDataList1_Click()
WithMyContract
.GetInfo(DataList1.Text)'签定日期
lblSignDate=.SignDate'客户单位
lblClient=.Client'合同状态
SelectCase.Status
Case1
lblStatus="签定合同"
Case2
lblStatus="实施合同"
Case3
lblStatus="完成合同"
CaseElse
lblStatus=""
EndSelect
'负责人
lblEmpName=.EmpName
'结算方式
SelectCase.SettleWay
Case1
lblSettleWay="支票"
Case2
lblSettleWay="现金"
Case3
lblSettleWay="签单"
Case4
lblSettleWay="汇款"
CaseElse
lblSettleWay=""
EndSelect
'有效期限
lblLastDay=.Validation
EndWith
EndSub
(4)Cmd_status_click过程:
将根据当前合同的状态提示用户更新到一级合同状态,如果当前合同已经是“完成合同”,则不能再改变合同状态。
最后调用Datalist_click过程更新合同状态的显示。
PrivateSubCmd_Status_Click()
SelectCaseMyContract.Status
Case1
IfMsgBox("是否将合同状态改变为-实施合同?
",vbYesNo,"请确认")=vbYesThen
CallMyContract.UpdateStatus(MyContract.ContractId,2)
EndIf
Case2
IfMsgBox("是否将合同状态改变为-完成合同?
",vbYesNo,"请确认")=vbYesThen
CallMyContract.UpdateStatus(MyContract.ContractId,3)
EndIf
Case3
MsgBox"完成合同将无法改变状态"
CaseElse
MsgBox"无效的合同状态"
EndSelect
DataList1_Click
EndSub
4.3合同产品信息编辑窗体,名称为frmConProductEdit,布局如下:
(1)当窗体启动时触发from-_load事件,代码如下:
PrivateSubForm_Load()
MyPro.Load_ProI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB+SQL 销售合同管理系统论文 VB SQL 销售 合同 管理 系统 论文