计算机毕业设计论文_基于Visual_Basic的售后服务管理系统论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳理工大学
毕业设计(论文)
题目:基于Visual Basic的售后服务
管理系统
目录
前言 (1)
1 开发工具简介 (1)
1.1VB简介 (1)
1.2ADO数据访库技术 (1)
1.3 SQL SERVER简介 (2)
2 需求分析与总体设计 (4)
2.1系统需求分析 (4)
2.2系统体系结构设计 (4)
2.3所需的实用技术 (7)
3 设计工程框架 (8)
3.1工程中的模块 (8)
3.2添加类模块 (8)
3.2.1 BaseInfo 类 (8)
3.2.2 StrvProblem类 (9)
3.2.3 SrvDespatch类 (9)
3.2.4 SrvTask类 (9)
3.2.5 SrvInvestigate类 (9)
3.2.6 SrvFaq类 (9)
3.2.7 Users类 (9)
4 数据库结构设计 (10)
5 详细设计 (13)
5.1登陆模块设计 (13)
5.1.1 设计登录窗体 (13)
5.1.2 设计主界面 (13)
5.2基本信息管理模块设计 (13)
5.2.1 设计问题类别信息管理窗体 (13)
5.2.2 问题级别信息管理窗体 (16)
5.2.3 设计客户信息管理窗体 (16)
5.2.4 在主界面中增加设置代码 (16)
5.3售后服务管理模块设计 (16)
5.3.1 设计客户问题编辑窗体 (16)
5.3.2 设计客户问题提交窗体 (17)
5.3.3 设计客户问题管理窗体 (18)
5.3.4 设计客户服务调查编辑窗体 (20)
5.3.5 设计客户服务调查管理窗体 (20)
5.4工作任务管理模块设计 (21)
5.4.1 设计问题分配信息编辑窗体 (21)
5.4.2 设计问题解决描述编辑窗体 (22)
5.4.4 设计工作记录编辑窗体 (23)
5.4.5 设计工作记录管理窗体 (23)
5.4.6 设计常见问题管理窗体 (24)
5.5用户管理模块设计 (24)
5.5.1 设计用户信息编辑窗体 (24)
5.5.2 设计用户管理窗体 (25)
5.5.3 在主界面中增加用户管理代码 (26)
6 系统测试与维护 (27)
6.1系统测试环境 (27)
6.2系统测试方法 (27)
6.3系统测试结果 (28)
结论 (29)
致谢 (30)
参考文献 (31)
附录A英文原文 (32)
附录B汉语译文 (41)
附录C程序源码 (48)
前言
在计算机技术高速发展的今天,数据库技术也已经日趋完善。
随着现代化管理理念的产生,计算机管理信息系统已经被广泛的应用在各个领域。
使用计算机管理信息系统,可以减少人力的投入,加大信息的处理效率并且可以降低管理的难度。
随着世界经济的蓬勃发展,商业企业售后服务的管理方式的落后已经渐渐引起企业管理者和消费者的重视。
传统的人工管理方式已经不能满足企业和市场的要求了。
所以,我们要借助计算机来提高企业管理的自动化程度。
售后管理系统可以对项目的所有信息进行统一的管理,这样就可以减少管理人员的工作时间,加大工作效率,并且可以把管理人员从以前那种单一的手工管理中解放出来。
售后维护管理系统不但可以对项目信息进行存储,还可以对项目信息进行修改、删除、统计等操作。
计算机管理信息系统的保密性要远远高于手工管理,这样就可以避免项目信息被人为的修改,提高服务质量,达到人性化的管理方式、数字化的管理手段。
目前市场上出现了一些针对企业售后服务的管理软件,这些软件多数是有行业针对性的,例如汽车售后管理系统,家电售后管理系统等。
这些软件使用方便但功能简单,有行业局限性。
有些设计由于设计者对行业工作流程理解不深或是同行业差异,而不能被广返使用。
本系统志在打破瓶颈,通过总结前人的经验,结合自身技术,将售后服务管理系统推广到各个行业。
通过精心设计,本系统基本做到了规划合理,对服务过程没有不良影响。
整个系统的设计从符合操作简便、界面友好、灵活、实用、安全的角度出发,使每个使用者都能通过简单操作就能完成基本信息管理,客户问题管理,工作责任分配管理,工作任务记录管理,客户服务调查管理,常见任务记录管理等工作。
经过实际使用证明,本文所设计的售后服务管理系统可以满足大多数企业对其产品做售后服务的需要。
本系统采用ADO数据访问技术,并将每个数据库表的字段和操作封装到类中,从而成功地将面向对象的程序设计思想应用到数据库应用程序设计中。
这也是本系统的特色和优势。
1 开发工具简介
1.1 VB简介
Visual Basic是在原有BASIC语言的基础上的进一步发展,结合了BASIC语言和Windows的优点,把他们融合在一起,为初学者在Windows环境下编写应用程序提供了良好的开发环境。
1998年Microsoft公司推出了Visual Basic6.0。
其功能和性能较以前版本都有了很大的增强,它还提供了新的灵巧的数据库和Web开发工具,如增加了新改进的SQL Server交互方法,包括数据库的访问,使用数据库的新工具和控件等。
与其他开发工具相比,Visual Basic具有简单易学、灵活方便和易于扩充等特点,越来越多地被用作客户/服务器(Client/Server,简称为C/S)应用程序的前端开发工具,与后端的SQL Server数据库相结合,能够提供一个高性能的管理信息系统解决方案。
因此,本系统采用Visual Basic作为开发工具,SQL Server作为后台数据库。
1.2 ADO数据访库技术
ADO是微软最新的数据访问技术,它被设计用来与OLE DB一起协同工作以提高通用数据访问。
OLE DB是一个低层的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可访问各种数据源,包括传统的关系型数据库,电子邮件系统和自定义的商业对象。
ADO操作数据库的物理机制如图1.1所示。
图1.1 ADO操作数据库的物理机制
应用程序通过ADO组件的通用接口与OLE DB的数据库驱动程序连接,OLE DB根据实际的物理数据库选择相应的驱动程序,完成最后操作。
1.3 SQL Server简介
SQL Server 2000是Microsoft 在21世纪推出的最新关系数据库系统,同时也是首次针对XML语法支持的数据库系统,因此在使用上更加广泛。
而Microsoft又将SQL Server 2000版本定位在 Enterprise Server的.NET服务器产品内,同时也是集成其他服务器产品的最佳利器,所以SQL Server 2000是我们必备的工具之一。
SQL Server 2000数据库管理系统具有以下主要特点。
(1) 丰富的图形化管理工具,使系统管理,操作更为直观方便。
SQL Server企业管理器是一个基于图形用户界面(GUI)的集成管理工具,利用它可以配置管理SQL Server服务器、管理数据库和数据库对象、备份和恢复数据、调度任务和管理警报,实现数据复制和转换操作等。
此外,SQL Server 2000还提供了SQL事件探查器、SQL 查询分析器、SQL Server服务管理器和多种操作向导等图形界面管理工具,大大简化了用户操作,从而增强了系统的易用性。
(2) 动态自动管理和优化功能。
即使SQL Server数据库管理员不做任何设置,SQL Server也能够在运行过程中根据环境配置和用户访问情况动态自动配置,以达到最优性能,从而减轻管理员工作。
(3) 充分的Internet技术支持。
Internet网络发展到今天已经成为一条重要的信息发布渠道,SQL Server增强了对Internet技术的支持,它除保留了前期版本中的数据库Web出版工具"Web助手"外,还增加了对XML和HTTP技术的支持,这使得电子商务系统能够通过XML等访问SQL Server数据库系统,也扩展了SQL Server在数据挖掘和分析服务领域的应用。
(4) 丰富的编程接口工具,使用户开发SQL Server数据库应用程序更加灵活。
SQL Server提供了Transact-SQL、DB-Library for C、嵌入式SQL(ESQL)等开发工具,Transact-SQL与工业标准SQL语言兼容,并在其基础上加以扩充,使它更适合事务处理方面的需要。
此外,SQL Server 2000还支持ODBC、OLE DB、ADO规范,可以使用ODBC、OLE DB、ADO接口访问SQL Server数据库。
(5) 具有很好的伸缩性和可靠性。
SQL Server 2000既能运行在Windows桌面操作系统下,又可运行在服务器操作系统(包括Windows NT和Windows 2000)下;既能运行在单CPU计算机上,又能运行在对称多处理系统下。
所以,它具有很好的伸缩性,能够满足从桌面应用到大型企业分布式应用等不同层次用户的需求。
(6) 简单的管理方式。
SQL Server 2000与Microsoft Windows 2000有机集成,所以可以使用Windows 2000的活动目录(Active Directory)功能对SQL Server进行集中
管理,大大简化大型企业中的系统管理工作。
此外,与Windows 2000的集成还使SQL Server能够充分利用操作系统所提供的服务和功能(如安全管理、事件日志、性能监视器,内存管理和异步I/O等),从而增强了SQL Server数据库系统的功能,并且只需占用很少的系统资源。
[1-3]
2 需求分析与总体设计
要开发一个管理信息系统,首先需要进行需求分析和总体设计,分析系统的使用对象和用户需求,设计系统的体系结构和数据库结构,决定使用的开发工具和后台数据库,规划项目开发进度。
在实际的项目开发过程中,这些工作是非常重要的。
[4-5] 2.1 系统需求分析
根据售后服务管理的主要工作内容,售后服务管理系统的用户是售后服务人员和企业管理人员,系统包括问题类别设置、问题级别管理、客户信息管理、问题管理、客户服务调查、问题分配管理、工作记录管理、常见问题管理等主要功能,具体功能如下:
(1)客户问题类别的添加、修改、删除和查询。
(2)客户问题级别的添加、修改、删除和查询。
(3)客户信息的添加、修改、删除和查询。
(4)客户问题级别的添加、修改、删除、提交和查询。
(5)客户服务调查信息的添加、修改、删除和查询。
(6)客户问题的分配、解决和查询。
(7)工作记录信息的添加、修改、删除和查询。
(8)常见问题的添加、修改、删除和查询。
2.2 系统体系结构设计
根据前面的系统分析和实际应用的需要,系统的功能模块图如图2.1所示。
本系统将用户分为系统管理员用户、审批经理用户和工程师用户3种情况。
这3种用户的权限说明如下:
(1)系统管理员用户:
在系统初始化时,有一个默认的“系统管理员”用户Admin,由程序设计人员手动地添加到数据库中,它的默认密码为Admin。
Admin用户可以创建用户、修改用户信息以及删除用户;除此之外,Admin用户还可以进行问题类别管理、问题级别管理、客户信息管理、客户问题管理、服务调查管理和常见问题管理。
在客户问题管理模块中,系统管理员用户录入客户问题,并将问题提交到相关审批经理。
图2.1售后服务管理系统功能模块示意图
(2)审批经理用户:
审批经理用户可以进行问题分配管理、工作记录管理和常见问题管理。
在常见问题模块中,审批经理用户只有查看的权限。
审批经理用户没有管理其他用户的权限,只能修改自身的用户密码。
(3)工程师用户:
工程师用户可以进行工作记录管理和常见问题管理。
在常见问题模块中,工程师用户只有查看的权限。
审批经理将问题分配给工程师用户,工程师用户则记录解决问题的过程。
工程师用户没有管理其他用户的权限,只能修改自身的用户密码。
简单使用说明:
运行系统后,首先会看到登录窗体,对用户的身份进行认证。
身份认证可以分为以下两个过程:
○1确认用户是否是有效的系统用户
○2确定用户的类型。
第1个过程决定用户能否进入系统,第2个过程根据用户的类型决定用户的操作权限。
本系统的流程分析如图2.2所示:在系统流程分析图中可以看到,每个用户有3次机会进行身份认证。
如果3次输入的用户名和密码都无法与数据库中的数据匹配,则强制退出系统。
图2.2 系统流程分析图
图2.3 系统实体关系E-R 图
进入系统后,不同类型的用户拥有不同的权限,所能进行的操作也不同。
这些操作可以笼统地分为用户管理模块和售后服务管理模块。
系统管理员用户拥有一类权限,审批经理用户拥有二类权限,工程师用户拥有三类权限。
如果需要对普通用户进行管理或录入基本信息、售后服务信息,则使用Admin 用户登录,创建审批经理用户和工程师用户。
在创建用户时,需要输入用户名和密码。
创建用户后,可以为工作人员分配不同的用户,每个用户使用自己的用户名进入系统。
重试
在本系统中,应该首先增加基本信息,之后才能进行售后服务管理。
基本信息包括问题类别信息、问题级别信息和客户信息等。
基本信息管理模块可以添加、修改、删除和查看等操作。
基本信息比较简单,都只包含名称信息。
添加基本信息后,就可以进行售后服务管理了。
售后服务管理包括客户问题管理和服务调查管理等模块。
只有系统管理员用户才能进入售后服务管理模块。
在客户问题管理模块中,可以对客户提出的问题信息进行添加、修改、删除和查看等操作。
客户问题信息包括客户信息、联系人、问题标题、问题描述、解决日期等信息。
在添加客户问题信息时,需要首先选择客户住处问题类别和问题级别等信息。
在服务调查信息管理模块中,可以对客户调查后反馈的信息进行添加、修改、删除和查看等操作。
服务调查信息包括客户信息、问题信息、被调查人、调查方式、总体评价和客户意见等信息。
在添加服务调查信息时,需要首先选择客户信息和问题信息。
添加售后服务信息后,就可以进行工作任务管理了。
工作任务管理包括问题分配管理、工作记录管理和常见问题管理等模块。
在问题分配管理模块中,审批经理用户可以对自己负责的客户问题进行分配,指定负责的工程师,也可以将问题状态设置为解决。
问题分配信息包括分配用户、负责用户、处理意见等信息。
在工作记录管理模块中,可以对解决问题的工作记录进行添加、修改、删除和查看等操作。
工作记录信息包括问题信息、开始解决日期、结束日期、解决方式、具体内容等信息。
在常见问题管理模块中,用户可以录入客户常见的问题及解决方案。
只有系统管理员用户才能编辑常见问题,其他用户只有查看的权限。
常见问题信息包括问题题目、问题类型、问题描述及解决方案等信息。
2.3 所需的实用技术
开发数据库管理信息系统需要掌握如下技术:
(1)所选开发工具的基本编程方法。
(2)基本的后台数据库管理方法,例如创建数据库、创建表、创建视图、备份和还原数据库等。
(3)常用SQL语句的使用。
(4)ADO数据库访问技术。
3 设计工程框架
3.1 工程中的模块
本工程包含如下几个模块:
(1)Const 用来管理工程中的常量。
(2)DbFunc 用来管理工程中与数据库操作相关的声明、变量和函数。
(3)GeneralFunc 用来管理工程中一些通用的自定义函数。
(4)Variable 用来管理工程中的全局变量。
在Const中,数据库连接字符串的定义代码如下:
Public Const Conn As string= "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;" _
+ "User ID=sa;Initial Catalog=Service;Data Source=WINXP-SP2"
Variable 模块的代码如下:
'保存执行SQL语句的字符串
Public SqlStmt As String
'类模块的对象
Public MyPro As New SrvProblem '问题记录对象
Public MyDespatch As New SrvDespatch '问题分配对象
Public MyTask As New SrvTask '任务记录对象
Public MyInv As New SrvInvestigate '调查记录对象
Public MyFaq As New SrvFaq '常见问题对象
Public MyBase As New BaseInfo '类型对象
Public MyUser As New Users '用户对象
Public CurUser As New Users '当前用户对象
3.2 添加类模块
在工程中,需要为每一个表创建一个类模块,将对此表的所有数据库操作封装在类中。
在通常情况下,类的成员变量与对应的表中的字段名相同。
3.2.1 BaseInfo 类
BaseInfo类用来管理表BaseInfo的数据库操作,它保存为BaseInfo.cls。
3.2.2 StrvProblem类
SrvProblem类用来管理表SrvProblem的数据库操作,它保存为SrvProblem.cls。
3.2.3 SrvDespatch类
SrvDespatch类用来管理表SrvDespatch的数据库操作,它保存为SrvDespatch.cls。
3.2.4 SrvTask类
SrvTask类用来管理表SrvTask的数据库操作,它保存为SrvTask.cls。
3.2.5 SrvInvestigate类
SrvInvestigate类用来管理表SrvInvestigate的数据库操作,它保存为SrvInvestigate.cls。
3.2.6 SrvFaq类
SrvFaq类用来管理表SrvFaq的数据库操作,它保存为SrvFaq.cls。
3.2.7 Users类
Users类用来管理表Users的数据库操作,它保存为Users.cls。
4 数据库结构设计
数据库结构设计是总体设计阶段非常重要的环节,好的数据库结构可以简化开发过程,使系统功能更加清晰明确。
数据库包含7个表,即基本信息表BaseInfo、客户问题表SrvProblem、工作任务分配表SrvDespatch、工作任务记录表SrvTask、客户服务调查表SrvInvestigate、常见问题记录表SrvFaq和用户信息表Users。
下面即这些表的结构。
(1)基本信息表BaseInfo,保存基本信息,结构如表4.1所示:
表4.1 BaseInfo的结构
编号字段名称数据类型说明
1 2 3
Id
BaseName
Flag
Int
Varchar 50
tinyint
记录编号
信息名称
信息类别:1表示问题类别;2表示问题级别;3表示客户信息
(2)问题记录表SrvProblem,保存客户投诉的问题信息,结构如表4.2所示:
表4.2 SrvProblem的结构
编号字段名称数据类型说明
1 2 3 4 5 6 7 8 9
10
11
ProId
CustId
Contact
ProLevel
Title
ProType
Status
Detail
SolveDate
Poster
Createdate
Int
Int
Varchar 50
Int
Varchar 200
Int
Varchar 20
Varchar 2000
Varchar 20
Varchar 20
datetime
问题记录编号
客户编号
问题联系人
问题级别编号
问题题目
问题类型编号
记录状态
问题描述
要求解决日期
录入人
创建日期
(3)工作任务分配表SrvDespatch,保存工作任务的分配信息,结构如表4.3所示。
表4.3 SrvDespatch的结构
编号字段名称数据类型说明
1 2 3 4 5 6
ProId
DespUser
RespUser
DespSuggest
DespDate
PostDate
int
Varchar 50
Varchar 50
Varchar 100
Datetime
Datetime
问题记录编号
分配人用户名
负责人用户名
分配人处理建议
分配人处理日期
问题提交日期
(4)工作任务记录表SrvTask,保存工作任务的完成情况,结构如表4.4所示。
表4.4 SrvTask的结构
编号字段名称数据类型说明
1 2 3 4 5 6 7 8
TaskId
ProId
StartDate
EndDate
SolveWay
Place
Detail
LostMemo
int
Int
Varchar 20
Varchar 20
Varchar 100
Varchar 100
Varchar 2000
Varchar 1000
任务编号
问题记录编号
开始解决日期
结束日期
问题解决方式
问题解决地点
具体内容
遗留问题
(5)客户服务调查表SrvInvestigate,记录客户服务调查的反馈信息,结构如表4.5所示。
表4.5 SrvInvestigate的结构
编号字段名称数据类型说明
1 2 3 4 5 6 7 8 9
InvId
ProId
CustId
Contact
InvDate
InvWay
Evaluate
Summary
Poster
int
Int
Int
Varchar 50
Varchar 20
Varchar 20
Varchar 200
Varchar 500
Varchar 40
记录编号
问题编号
客户编号
被调查人
调查日期
调查方式
总体评价
客户意见和建议
调查人
(6)常见问题记录表SrvFaq,保存客户的常见问题信息,结构如表4.6所示。
表4.6 SrvFaq的结构
编号字段名称数据类型说明
1 2 3 4 5 6
FaqId
Title
TypeId
Poster
CreateDate
Detail
Int
Varchar 200
Int
Varchar 50
Datetime
Varchar 4000
记录编号
题目
问题类型
创建者
创建日期
问题描述
(7)用户信息表Users,保存系统用户信息,结构如表4.7所示。
表4.7 Users的结构
编号字段名称数据类型说明
1 2 3 4
UserName
EmpName
UserPwd
UserType
Varchar 40
Varchar 40
Varchar 50
Tinyint
用户名,主键
员工姓名
密码
用户类型(1表示系统管理员用户,2表
示审批经理用户,3表示工程师用户)
另外,在表中为了规定各个表之间的关系,还需要定义一组外键,如表4.8所示。
表4.8 外键定义
关系名主键表主键字段外键表外键字段
FK_ Srvproblem _BsaeInfo
FK_ Srvproblem_BsaeInfo1 FK_ Srvproblem_BsaeInfo2 FK_SrvDespatch_Srvproblem FK_SrvTask_Srvproblem
FK_SrvInvestigate_Srvproblem FK_SrvInvestigate_BaseInfo FK_SrvFAQ_BaseInfo BsaeInfo
BsaeInfo
BsaeInfo
Srvproblem
Srvproblem
Srvproblem
BsaeInfo
BsaeInfo
Id
Id
Id
ProId
ProId
ProId
CustId
Id
Srvproblem
Srvproblem
Srvproblem
SrvDespatch
SrvTask
SrvInvestigate
SrvInvestigate
SrvFAQ
CustId
ProLevel
ProType
ProId
ProId
ProId
CustId
TyoeId
5 详细设计
5.1 登陆模块设计
当系统运行时,首先打开登录窗体,只有有权限的用户才能进入系统。
登录成功后,将显示系统主界面。
5.1.1 设计登录窗体
登录窗体的名称为FrmLogin,其界面布局如图5.1所示。
图5.1登录窗体的界面布局
5.1.2 设计主界面
主窗体是工程的启动对象,可以在系统菜单中选择“工程”/“属性”,打开属性窗口设置启动对象。
打开主窗体的设计窗口,选择“工具”菜单项中的“菜单编辑器”,对菜单内容进行编辑,如图5.2所示。
在主窗体FrmMain中添加如下代码:
Private Sub Form_Load()
FrmLogin.Show 1
End Sub
当主窗体启动时,首先打开“登录”对话框。
如果不能通过身份验证,则不能进入系统。
本系统的主界面如图5.3所示。
5.2 基本信息管理模块设计
基本信息管理模块包括问题类别管理、问题级别设置和客户信息管理。
5.2.1 设计问题类别信息管理窗体
问题类别信息管理窗体的名称为FrmTypes。
窗体FrmTypes的布局如图5.4所示。
图5.2菜单编辑器
图5.3售后服务管理系统主界面
下面即窗体FrmType中部分过程的代码。
(1)全局变量
变量OriId用来标记当前选择的记录的编号,变量OriTypeName 用在修改类别名称时记录原类别编号;变量nFlag保存当前编辑的信息类型,0表示问题类别信息,1表示问题级别信息,2表示客户信息。
图5.4 窗体FrmType的布局
(2)Form_Load过程。
当装入窗体FrmType时触发Form_Load事件,对应的代码如下:
Private Sub Form_Load()
'刷新DataList1中的数据
DataRefresh
End Sub
在此过程中将显示所有的设备类别名称。
Adodc1控件为DataList1控件提供数据源,它根据变量nFlag设置SELECT语句,读取指定类型的数据。
(3)Cmd_Add_Click过程。
在文本框中输入新的类别名称,单击“添加”按钮时触发Cmd_Add_Click事件,其相应代码执行过程为:判断输入文本框是否为空;判断数据库中是否已经存在此名称。
插入新记录;刷新列表。
(4)DataList_Click过程。
选择数据列表中的记录,在文本框中同时显示此类别名称。
(5)Cmd_Modi_Click过程。
选择类别名称,在文本框中对其修改后,单击“修改”按钮触发Cmd_Modi_Click 事件。
其相应代码执行过程为:
判断是否选择了记录;判断新的类别名称是否和旧的类别名称相同;判断数据库中是否已经存在此新的类别名称;更新数据库记录。
刷新类别列表。
(6)Cmd_Del_click过程。
选择要删除的类别名称,用户单击“删除”按钮触发Cmd_Del_Click事件,其相应代码执行过程如下:
判断是否选择了记录;确定是否删除记录;删除类别信息;刷新类别列表。
5.2.2 问题级别信息管理窗体
问题级别信息管理窗体也是FrmTypes,只是公共变量nFlag的值为1。
5.2.3 设计客户信息管理窗体
客户信息管理窗体也是FrmTypes,只是公共变量nFlag的值为2。
5.2.4 在主界面中增加设置代码
当选择“基本信息管理”/“问题类别管理”菜单时触发nm_Type_click事件,代码如下:Private Sub mn_Type_Click()
If erType = 0 Then
FrmTypes.nFlag = 1
FrmTypes.Caption = "问题类别设置"
FrmTypes.Show 1 '问题类别管理
Else MsgBox "没有权限"
Exit Sub
End If
End Sub
CurUser对象中保存了当前用户的信息。
erType表示当前用户的类型,erType=0表示系统管理员用户。
只有系统管理员用户才能进入问题类别管理窗体。
5.3 售后服务管理模块设计
售后服务管理模块包括问题管理和客户服务调查管理。
5.3.1 设计客户问题编辑窗体
问题信息编辑窗体的名称为FrmProblemEdit,窗体布局如图5.5所示。
图5.5窗体FrmProblemEdit的布局
窗体中使用ADO Data控件分别为客户名称、严重级别和问题类型等DataCombo 控件提供数据源。
下面即窗体中部分过程的功能。
(1)公共变量。
窗体中定义了两个公共变量。
变量Modify用来标记当前的数据库访问状态。
当Modify=True时,表示修改已有的数据;当Modify=False时,表示插入新的数据。
变量OriProId用于记录当前编辑的问题编号。
(2)LoadData过程。
LoakData过程的功能是分别设置SELECT语句,读取客户名称、严重级别和问题类型信息,并将它们显示在相应的组合框中。
(3)Cmd_Ok_Click过程。
用户单击“确定”按钮时触发Cmd_Ok_Click事件,程序首先对用户输入的数据进行分析,确保数据的有效性。
然后,程序将录入的数据赋值到MyPro对象中,并调用Insert或Update方法将数据保存到数据库中。
5.3.2 设计客户问题提交窗体
客户问题提交窗体可以把未处理的问题提交给相关的经理用户。
窗体名称为FrmProSubmit,窗体布局如图5.6所示。
图5.6FrmProSubmit的布局
下面即是窗体FrmProSubmit中部分过程的一些功能。
(1)公共变量。
变量OriProId用来标记正在编辑问题的编号,变量OriEmpId 表示选择售后经理的编号。
(2)Form_Load过程。
当载入窗体时触发Form_Load事件。
程序从表Users中获取UserType=1的用户,即审批经理用户,然后将员工姓名作为数据源赋值到DataCombo 控件中。
(3)Cmd_Ok_Click过程。
用户单击“确定”按钮时触发Cmd_Ok_Click事件,程序首先在表srvDespatch中添加一条记录,保存当前的任务分配信息,然后将当前问题记录的状态更新为“提交”。
5.3.3 设计客户问题管理窗体
客户问题管理窗体的名称为FrmProblemMan,窗体中使用ADO Data控件和DataGrid1控件来显示问题信息。
窗体FrmProblemMan的布局如图5.7所示。
图5.7 窗体FrmProblemMan的布局
下面即是窗体中部分过程的代码及功能。
(1)Refresh_Problem过程。
Refresh_Problem过程的功能是更新ADO Data控件的记录源,从而刷新DataGrid1表格中显示的问题数据。
在处理日期数据时,应该注意数据的存储格式。
因为日期的格式随着系统设置的变化而变化,可以是“2007-02-05”,也可以是“2007-2-5”或“2007/2/5”等。
在很多地方需要使用日期数据与匹配条件进行比较,选择符合条件的记录,例如查看2007
年2月5日中所有的新建问题等。
不同的存储格式会给这种比较带来麻烦,所以要使用Format()函数对日期格式进行规范化。
在 SELECT语句中,使用到3个BaseInfo表,它们分别用于提供客户信息、问题类别信息和问题级别信息。
窗体中使用DTPicker控件选择日期。
(2)Form_Load过程。
当装入窗体时触发Form_Load事件,其对应的代码如下:Private Sub Form_Load()
ComboStatus.AddItem "全部", 0
ComboStatus.AddItem "新建", 1
ComboStatus.AddItem "提交", 2
ComboStatus.AddItem "分配", 3
ComboStatus.AddItem "解决", 4
ComboStatus.ListIndex = 0
'把创建日期组合框ComboDate赋值为当前日期
DTDate.Value = Now
Check1.Value = 1
DTDate.Enabled = False
'显示当前日期创建的所有未处理问题
Refresh_Problem
End Sub
客户投诉的问题有4种状态,即新建、提交、分配和解决。
(3)Cmd_Add_Click过程。
当单击“添加”按钮时触发Cmd_Add_Click事件。
程序将打开FrmProblemEdit窗体编辑新的问题记录。
新记录的状态为“新建”,创建时间为当前的系统时间,创建人为当前用户。
(4)Cmd_Modi_Click过程。
单击“修改”按钮时触发Cmd_Modi_Click事件,程序从Adodc1控件中读取当前记录的各字段值,并赋值到FrmProblemEdit窗体的各个控件中显示。
(5)Cmd_Del_Click过程。
当单击“删除”按钮时触发Cmd_Del_Click事件,程序将Adodc1控件中读取当前记录的编号,然后再以编号为参数调用MyPro.Delete 过程,删除指定的记录。
(6)Cmd_Despatch_Click过程。
当单击“提交”按钮时触发Cmd_Despatch_Click。