企业客户资源管理系统
摘要
在世界经济一体化的今天,信息技术革命极大地改变了我们的商业模式,尤其对企业与客户之间的互动关系产生了巨大的影响。企业逐渐由原来的“产品”导向型,向“客户”导向型转变。CRM(Customer Ralitiongship Management)客户关系管理已成为企业核心竞争力的关键。
本客户资源管理系统是CRM系统的一个功能模块,主要实现对企业客户的所在地域、客户类别、客户职务、以及客户与企业之间的商业往来进行系统的管理的目的,便于企业查询和CRM其他模块的调用。
本系统的开发是采用先进的三层C/S体系结构,数据库管理系统采用Microsoft SQL Server 2000系统,客户端程序开发工具为面向对象程序设计语言Visual Basic6.0,系统界面设计简单、直观,保证了系统良好的兼容性、灵活性、易操作性和可扩展性。
总体来说,本文以系统设计和实施为主,但兼顾整体性。在本文绪论部分即对本文主体CRM的产生、发展作了简要的介绍,重点阐述了CRM的内涵、应用及发展现状,比较说明了CRM与ERP的关系,以这些理论为基础,读者更容易理解本客户资源管理系统的开发主旨、意图及系统实现的目标。
关键词 客户资源管理系统,客户关系管理,三层C/S体系结构
- I -
哈尔滨理工大学学士学位论文
Enterprise Customer Resource Management
System Abstract
Today,the economic turns integral in the whole world,and the revolution of information technique make the business model changed greatly. Especially,the interaction relation produced influence enormously which is between customer and business enterprise. The enterprise turned its mode that is oriental-production to oriental-custom. CRM has been the key of the core competencies in enterprise.
This Customer Resource Management system is a function mode, which is to implement the item such as where the customs come from 、custom classificatory、custom headship and business exchanging between custom and enterprise,to make enterprise inquiry and applied with other function mode from CRM easilier.
This system uses the advanced three layer C/S system construction. Database Management System use Microsoft SQL Server 2000 system, client program development tools is oriental object language Visual Basic 6.0, the interface is simple, agility, easily operation and expandsibity.
In short, my study focus on system designing and carring into excution, also look after the whole. In the first part of discourse introduct creation、development simply, and focus on the content of CRM, application and development ,explain the relationship between CRM and ERP, base on these theoretics, the readers can easlier to understand the exploiture purpose and goals.
Keywords Enterprise Customere Resource Management System,CRM,Three Layers C/S Architecture
- II -
哈尔滨理工大学学士学位论文
目录
摘要 ...................................................................................................................... I Abstract ............................................................................................................... II
第1章 绪 论 ............................................................................................ 1 1.1 系统开发技术背景 ................................................................................... 1 1.2 CRM概述 .................................................................................................. 1 1.2.1 CRM的产生 ....................................................................................... 2 1.2.2 CRM产生的背景 ............................................................................... 2 1.2.3 CRM的内涵 ....................................................................................... 5 1.2.4 CRM应用现状及发展趋势 ............................................................... 9 1.3 CRM系统与ERP的关系 ....................................................................... 10 1.4 本章小结 ................................................................................................. 12 第2章 多层客户机/服务器(C/S)结构 ....................................................... 13 2.1 计算机网络计算的发展阶段 ................................................................. 13 2.1.1 主机集中式计算模式 ...................................................................... 13 2.1.2 PC/LAN计算模式 ............................................................................ 13 2.2 客户/服务器(C/S)计算模式 ................................................................... 13 2.2.1 两层C/S模式的特点与不足 .......................................................... 14 2.2.2 三层C/S模式 .................................................................................. 15 2.3 三层结构和二层结构的区别 ................................................................. 16 2.4 多层结构 ................................................................................................. 17 2.5 本章小结 ................................................................................................. 17 第3章 系统需求分析 ...................................................................................... 18 3.1 用户需求 ................................................................................................. 18 3.2 功能需求 ................................................................................................. 18 3.3 系统性能需求 ......................................................................................... 19 3.4 本章小结 ................................................................................................. 19 第4章 系统设计 .............................................................................................. 20 4.1 系统功能描述 ......................................................................................... 20 4.2 功能模块划分 ......................................................................................... 21 4.3 系统流程分析 ......................................................................................... 24 4.4 数据库设计 ............................................................................................. 25 4.4.1 数据库逻辑结构设计 ...................................................................... 25 4.5 本章小结 ................................................................................................. 28 第5章 系统实施 .............................................................................................. 29
- III -
哈尔滨理工大学学士学位论文
5.1 系统运行软硬件环境 ............................................................................. 29 5.2 系统开发工具 ......................................................................................... 29 5.2.1 Microsoft SQL Server2000简介 ...................................................... 29 5.2.2 Visual Basic6.0简介 ......................................................................... 30 5.3 系统模块函数 ......................................................................................... 30 5.3.1 Const模块 ......................................................................................... 30 5.3.2 DbFunc模块 ..................................................................................... 31 5.3.3 GeneralFunc模块 ............................................................................. 36 5.3.4 Variable模块 ..................................................................................... 39 5.4 创建和配置ODBC数据源 .................................................................... 40 5.5 系统输入输出设计 ................................................................................. 44 5.6 本章小结 ................................................................................................. 56 结论 .................................................................................................................... 57 致谢 .................................................................................................................... 58 参考文献 ............................................................................................................ 59 附录 .................................................................................................................... 60
- IV -
哈尔滨理工大学学士学位论文
第1章 绪 论
1.1 系统开发技术背景
由于信息化和工业化的发展,客户选择空间不断扩大,市场竞争越来越激烈,企业生产也由原来的“产品”导向转变为“客户导向”。市场竞争的焦点已经从产品竞争转向品牌的竞争、服务的竞争和客户的竞争,特别是谁能与客户建立和保持一种长期、良好的合作关系,掌握客户资源、赢得客户信任、分析客户需求,谁就能制定出科学的企业经营发展战略和市场营销策略,生产出适销对路的产品;谁能提供满意的客户服务,谁就能迅速提高市场占有率,最终获取最大利润。
为了提高“客户满意度”,企业必须大量掌握客户的信息,准确把握客户的需求,快速响应客户个性化需求,提供便捷的购买渠道、良好的售后服务与经常性的客户关怀等。客户、供应商以及合作伙伴联成一片的价值链已经成为企业与企业之间竞争的核心。客户关系,包括供应商和合作伙伴的关系管理和发掘将帮助企业可以针对不同的客户、供应商、合作伙伴而进行识别、分类、建立不同的联系以及确立针对性的产品和服务,也就是所谓 “一对一经营”。客户关系管理在此之中将更为突出。它将帮助企业获得对客户的全面观察,从而使客户与企业的关系以及企业从客户身上获取的利润得到最优化。通过各种渠道收集、整理取得的客户数据,形成庞大的客户数据库,再通过分类、关系连接、建立数据分析模型等步骤,得出客户群或具体客户的需求趋向,发布这些信息给有关部门,从而让企业能充分了解客户对企业的影响,做出对应的策划和市场决策。
鉴于此,客户资源已成为企业最宝贵的资源,客户关系管理(CRM)在企业中的作用及地位也举足重轻,建立企业客户资源管理系统,可以有效地管理企业的客户资源,记录企业与客户之间的商业活动,这对于现代企业是非常重要的。
1.2 CRM概述
CRM(Customerer Relationship Management)是世界各地主要企业正在讨论的一个重要概念,它不是一个产品,也不是一个产品组合,而是触及到
- 1 -
哈尔滨理工大学学士学位论文
企业内许多独立部门的商业理念,它需要一个新的以客户为中心的商业模式,并由集成了前台和后台办公系统的一整套应用系统支持,从而确保了直接关系到企业利润的客户满意。客户关系管理(CRM)是世界各地主要企业正在讨论的一个重要概念。CRM可以使以客户为中心的商业运作实现自动化并加以改进。这一快速成长的市场、参与厂家的多种多样以及大量的兼并活动足以使CRM成为人们关注的热点。分析家预测CRM系统将成为最大的应用领域。
1.2.1 CRM的产生
客户关系管理的定义是由Garter Group(Garter Group是一家对IT业为对象的系统项目论证与决策咨询顾问公司)第一个在美国首先提出的。20世纪90年代前后,一些欧美大企业如美国电话电报公司(AT&T),花旗银行与戴尔电脑等,这些欧美企业为了满足日益竞争的市场需要,纷纷重新设计业务流程,开始开发销售力量自动化系统(SFA),随后又发展客户服务系统(C 55)。1996年后一些公司开始把SFA和CSS两个系统合并起来,再加上营销策划(Marketing)和现场服务(Field service),在此基础上再集成CTI(计算机电话集成技术)形成集销售和服务于一体的呼叫中心。这就是我们今天熟知的CRM的雏形。后来,Garter Group正式提出CRM(Customerer Relationship Management)的概念,加速了 CRM的产生和发展。
在中国,从1999年年中开始,客户关系管理得到了诸多媒体的关注,国内外很多软件商(如Oracle、中圣等)推出了以客户关系管理命名的软件系统,有一些企业开始实施以客户关系管理命名的信息系统。如用友的ICRM系统、联成互动的My CRM系统等。
1.2.2 CRM产生的背景
Garter Group认为CRM产生的背景是与新经济与新技术有关系。新经济的挑战包括经济环境的自由化,打破了国家的垄断,打破了行业的垄断,打破了对资源的垄断。带来的是竞争更加激烈,导致了产品的生命周期更短,客户的需求更加个性化。企业如何保持竞争能力并求得发展,悠关重要。考察企业的生存环境,可以清楚地看到下述条件至关重要。
(1)有最好的产品,这个好是由客户来评判的,并不是由企业来评判
- 2 -
哈尔滨理工大学学士学位论文
的。为什么样的客户提供更加好的产品。 (2)经营效率高,使得企业交付产品与服务的时候能够比竞争对手价格更低。如何管理企业内部的流程才能够是企业的效率更高。
(3)能否与客户建立亲密的关系,使客户对你依赖到不可分离的地步。能够做到这三点,所付出的代价是非常高的。这三个部分都是与企业的客户密切相关的。
对企业而言,客户是最宝贵的资源,你失去了客户就失去了一切。你失去了老客户,就意味着业务无法进行,你失去了新的客户,即潜在客户,就意味着停滞不前,无法向前发展。总起来讲,客户关系管理的兴起与下述三个方面的因素有难以割舍的关系。
(1)需求的拉动
放眼看去,一方面,很多企业在信息化方面已经做了大量工作,收到了很好的经济效益。另一方面,一个普遍的现象是,在很多企业,销售、营销和服务部门的信息化程度越来越不能适应业务发展的需要,越来越多的企业要求提高销售、营销和服务的日常业务的自动化和科学化。这是客户关系管理应运而生的需求基础。
首先,企业的销售、营销和客户服务部门难以获得所需的客户互动信息。
其次,来自销售、客户服务、市场、制造、库存等部门的信息分散在企业内,这些零散的信息使得无法对客户有全面的了解,各部门难以在统一的信息的基础上面对客户。这需要各部门对面向客户的各项信息和活动进行集成,组建一个以客户为中心的企业,实现对面向客户的活动的全面管理。可是,竞争的压力越来越大。在产品质量、供货及时性等方面,很多企业已经没有多少潜力可挖。上面的问题的改善将大大有利于企业竞争力的提高,有利于企业点得新客户、保留老客户和提高客户利润贡献度。很多企业,特别是那些己经有了相当的管理基础和信息基础的企业来说,现在,这个时间已经来临了。
1)企业的客户可通过电话、传真、网络等访问企业,进行业务往来。 2)任何与客户打交道的员工都能全面了解客户关系、根据客户需求进行交易、了解如何对客户进行纵向和横向销售、记录自己获得的客户信
- 3 -
哈尔滨理工大学学士学位论文
息。 3)能够对市场活动进行规划、评估,对整个活动进行360度的透视。 4)能够对各种销售活动进行追踪。
5)系统用户可不受地域限制,随时访问企业的业务处理系统,获得客户信息。
6)拥有对市场活动、销售活动的分析能力。
7)能够从不同角度提供成本、利润、生产率、风险率等信息,并对客户、产品、职能部门、地理区域等进行多维分析。
上面的所有功能都是围绕客户展开的。与“客户是上帝”这种可操作性不强的口号相比,这些功能把对客户的尊重落到了实处。客户关系管理的重要性就在于它把客户单独列了出来,围绕着客户做文章。
(2)技术的推动
计算机、通讯技术、网络应用的飞速发展使得上面的想法不再停留在梦想阶段。办公自动化程度、员工计算机应用能力、企业信息化水平、企业管理水平的提高都有利于客户关系管理的实现。我们很难想象,在一个管理水平低下、员工意识落后、信息化水平很低的企业从技术上实现客户关系管理。有一种说法很有道理:客户关系管理的作用是锦上添花。现在,信息化、网络化的理念在我国很多企业已经深入人心,很多企业有了相当的信息化基础。
电子商务在全球范围内正开展的如火如荼,正在改变着企业做生意的方式。通过Internet,可开展营销活动,向客户销售产品,提供售后服,收集客户信息。重要的是,这一切成本是那样的低。
客户信息是客户关系管理的基础:数据仓库、商业智能、知识发现等技术的发展,使得收集、整理、加工和利用客户信息的质量大大提高。在这方面,看一个经典的案例,一个大型的仓储式超市对顾客的购买清单信息的分析表明,刮胡刀和尿布经常同时出现在顾客的购买清单上。原来,很多男士在为自己购买刮胡刀的时候,还要为自己的孩子购买尿布。而在这个超市的货架上,这两种商品离得很远,因此,这个超市重新分布货架,使得购买刮胡刀的男人很容易地看到尿布。
在可以预期的将来,我国企业的通讯成本将会降低。这将推动互联
- 4 -
哈尔滨理工大学学士学位论文
网、电话的发展,进而推动呼叫中心的发展。网络和电话的结合,使得企业以统一的平台面对客户。 (3)管理理念的更新
经过二十多年的发展,市场经济的观念已经深入人心。当前,一些先进企业的重点正在经历着从以产品为中心向以客户为中心的转移。有人提出了客户联盟的概念,也就是与客户建立共同获胜的关系,达到双赢的结果,而不是千方百计地从客户身上谋取自身的利益。
现在是一个变革的时代、创新的时代。比竞争对手领先一步,而且仅仅一步,就可能意味着成功。业务流程的重新设计为企业的管理创新提供了一个工具。在引入客户关系管理的理念和技术时,不可避免地要对企业原来的管理方式进行改变,变革、创新的思想将有利于企业员工接受变革,而业务流程重组则提供了具体的思路和方法。
在互联网时代,单凭传统的管理思想已经不够了。互联网带来的不仅是一种手段,它触发了企业组织架构、工作流程的重组以及整个社会管理思想的变革。
1.2.3 CRM的内涵
自1997年以来,围绕CRM的争论已经深入到企业、研究机钩、媒体和院校。正是因为这些争论产生了很多有意义的见解,关于CRM有很多解释,就象20世纪80年代关于业务流程再造(BPR)和90年代关于全面质量管理(TQM)的争论,产生了巨大价值。但是企业不应将注意力陷入争论中,应该定位在如何做更成功的CRM实践者。
CRM的核心在于它是基于企业范围的业务流程及一系列相关的规则,例如如何获取、保留及服务客户。从广义上讲,CRM包括面向客户的业务流程:营销、销售和客户服务。CRM并不仅仅包括技术。技术是CRM的赋能者。
技术的不断进步、客户授权的不断增加、竞争环境的不断变化,使得针对企业产生了各种独具特色的CRM,令企业的选择余地大大加强,目前的CRM基本上都提供销售力自动化(SFA)、营销自动化及客户服务等功能,有的还包括相应的伙伴关系管理(PRM)功能。相关的功能主要是针对企业与客户的不同接触点而设计的。无论是自动化电子邮件营销战役,还
- 5 -
哈尔滨理工大学学士学位论文
是销售指定的相关产品,或者允许客户通过Web更新其账单地址,所有这些服务都是从自动化角度考虑的。自动化服务本身确实加强了客户的体验过程,从而使得企业为客户提供了更好的服务,但这远远不够。为了更好地获取、保留和服务客户,企业必须更多地了解自己的客户。企业必须掌握更多的客户信息,例如购买模式、渠道偏好、历史接触信息。所有这一切需要对客户数据进行相应的收集及分析,从而为企业提供正确、全面、及时的客户价值判断。
什么是CRM?它涉及一系列复杂的技术和流程,用于管理潜在和当前的客户,及商业伙伴关系,范围涉及营销、销售及任何沟通渠道的服务。CRM的目标是优化客户及伙伴的满意度、收入及业务效率,进而构建相应的组织结构以保障CRM实现。优秀的CRM应能处理企业组织会涉及的所有关系。
客户关系管理(CRM)是选择和管理客户,以达到对客户价值不断优化的企业战略。CRM需要以客户为中心的企业哲学和文化,从而保证有效地支持企业营销、销售及服务流程。CRM应用可有效增强客户关系管理,其前提是企业必须有正确的领导、战略及文化。
很多企业负责人及CRM项目经理认为,要使CRM富有成效并不是一件很简单的事情。企业如何才能创建“以客户为中心的企业哲学和文化”?不是只靠某个软件包就能解决所有问题。
CRM必须从企业战略开始,通过相应的信息技术的帮助,改善组织和相应的工作流程。否则可能达不到相应效果,因为企业战略本身不能靠自动化来解决。但实际上,很多项目开始往往将重点放在技术本身,而没有将重点放在如何保证实现商业目标,结果自然不会很乐观。但如果能合理正确地使用CRM,大量的实践证明,企业的效益会有比较大的提高。
将CRM作为企业战略并不是新概念。企业负责人一般都知道应该以客户为中心,这样能最大程度地以销售为中心和提升利润,通过良好的服务使得客户能够再次光顾。在CRM理念中,技术并非居于至高无上的地步。对于获得成功的很多小企业,企业主和员工努力工作为客户提供个性化的、高质量的服务,从而也可形成忠诚客户。在这里,计算机并非必不可少。
- 6 -
哈尔滨理工大学学士学位论文
关于CRM的定义,不同的研究机构有着不同的表述。 Gartnet Group认为,所谓的客户关系管理,是为企业提供全方位的管理视角,赋予企业更完善的客户交流能力,从而实现客户收益率的最大化。
德勤咨询有限公司认为,客户关系管理是用来提高客户与公司之间的关系价值的一个旅程。客户关系管理的成果,意味着客户对企业更有价值,企业对客户也更有价值。
IBM所理解的客户关系管理包括企业识别、挑选、获取、发展和保持客户的整个商业过程。IBM把客户关系管理分为三类:关系管理、流程管理和接入管理。
NCR数据仓库系统部亚太区副总裁Geoff Dioksion认为,客户关系管理就是在正确的时间,使用正确的途径为正确的客户提供正确的服务。这其中技术只起到部分的作用,关键在于企业的思想、战略和文化是否配合。一个企业理解客户、影响客户的捷径是通过不断地获得和客户相关的信息,从而达到提高客户的满意度和持久度;进而提高盈利的目的。
Hurwitz Group认为,C心的焦点是自动化。同时也是改善与销售、市场营销、客户服务和支持等领域的客户关系有关的商业流程。CRM既是一套原则制度,也是一套软件和技术。它的目标是缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道,以及提高客户的价值、满意度、赢利性和忠实度。CRM应用软件将最佳的实践具体化,并使用了先进的技术来协助各企业实现这些目标。CRM在整个客户生命期中都以客户为中心,这意味着CRM应用软件将客户当作企业运作的核心。CRM应用软件简化协调了各类业务功能(如销售、市场营销、服务和支持)的过程,并将其注意力集中在满足客户的需要上。CRM应用软件还将多种与客户交流的渠道,如面对面、电话接洽以及web访问协调为一体,这样,企业就可以按客户的喜好,便用适当的渠道与之进钓一交流。
从以上所述,可以得出对CRM定义两个层次的理解,从管理科学的层次来考察,CRM源于市场营销理论,侧重点在于企业行为,是理念于企业管理的实践(某种动态表现)。从应用和解决问题的层次考察,CRM是将市场营销的科学管理理念通过技术手段集成为软件,从而得以大规模应
- 7 -
哈尔滨理工大学学士学位论文
用,其侧重点在于表现形式,这是理念于技术的体现(某种固定形式的表现)。
综合上述两个层次的理解,笔者尝试给CRM下一个简单的定义:客户关系管理是基于企业独特的经营环境,从影响客户的各种因素出发,通过各种管理手段实现企业客户资源最优化的一种动态发展管理模式。按照这一定义,笔者认为CRM其核心不在于思考角度及表现形式如何,而在于是否结合企业实际和坚持客户资源最优化的原则和目标。
对其内涵的进一步理解,可以从以下儿个方面进行:
1、CRM是企业选择和管理客户的经营策略,目的是使客户长期价值达到最优化,它需要以客户为中心的经营理念和企业文化来支持有效的营销销售和服务。如果企业拥有正确的领导、策略和文化,CRM系统则能够有效地管理客户关系。
2、CRM认为客户不仅是企业供应链的终端,也是企业有经营活动的起点和归宿;实施有效的客户关系管理,可以建立企业与客户良好的信任关系,帮助企业维持老客户、吸引和开发新客户,创造更大的效益和竞争优势。
3、CRM扩展了企业的商务模式、营销方法和与客户互动的管理技术,目的是获得客户,识别有价值和有增长趋势的客户类型维持较高客户保留率。
4、CRM是收集和利用客户信息的一门科学和艺术,它把当前的信息技术能力和较高的客户服务期待有效地结合起来,使用获得的客户知识来定制商务类型和策略以满足客户的个性化需求,目的是建立起客户的忠诚并提高客户的价值.
5、CRM目标和作用是增加客户群体并使整个客户生命周期最优化,这可以通过获得新客户、有效服务现有客户并不断提高其满意度和忠诚度来实现。
6、CRM借助于整合客户关系管理系统在市场营销销售客户服务等企业与客户接触的各个领域进行管理,不断开发新客户拓展商机,提高胜算,并通过优质服务稳固客户忠诚度提高利润率。
7、CRM是立足于客户整个价值周期的一种营销理念和管理模式。从
- 8 -
哈尔滨理工大学学士学位论文
具体操作来说客户关系管理体现在企业与客户的每次交互作用上。这些互动的状态和过程可能加强或削弱客户与企业进行交易的愿望。在传统经济体系下,企业经常把与客户的互动当作一个负担,这在售后服务方面表现得尤为明显。但CRM模式认为,企业和客户的每一次交流都是有益的,能够为双方带来增值的效果。客户的忠诚度不是自然而然的结果,而是要通过反复多次的交流和相互作用才能够得以确立。
1.2.4 CRM应用现状及发展趋势
客户关系管理系统在北美、欧洲等发达国家可以说是方兴未艾。据预测,美国到2003年用于实施客户关系管理系统的预算就可以达到168亿美元。全球最大的网络设备供应商Cisco在客户服务中心全面实施了客户关系管理。其通过Internet的在线支持服务占了全部支持服务的70%,使公司能够及时和妥善地回应、处理和分析每一个电话、电子邮件或者其他方式的客户来访,每年公司节省3.6亿美元的客户服务费用。
但是即使在国外,CRM的应用面也还很小。虽然CRM的成本与ERP不一样,ERP系统动辄上百万、千万,CRM要小一些,但从投入产出比来看,CRM的成本相对就算是比较高的了。当前CRM的一个典型应用是客户服务中心。客户服务中心运用先进通信技术和数据库技术集成,并通过高素质的座席代表,服务于广大客户。目前,基于先进的CTI(Computer Telephony Integration)技术的客户中心己经能够实现语音和数据的同步。一组受过专业训练的人员来处理客户的来电,来电经过自动语音系统应答系统指导,或直接选择自己关心的问题,或转入人工座席,而人工座席则可以根据自己的专业知识和屏幕上显示的客户信息,提供最友好之最专业的服务。资料表明,1998年全球客户服务中心的产业规模己达到70亿美元,并且正以每年20%的速度高速成长。
另外,从大量的企业实践活动中可以发现,仅仅购买软件包并不能保证CRM系统充分发挥它的潜能。企业对信息系统的意见容易表现在技术层面上,而问题的实质则不是技术上的,而是在管理理念方面。如果企业自身缺乏对工作流程、管理架构等方面的规范化标准及经验,这将直接影响到CRM系统设计缺乏严谨而行之有效的结构,即使在设计的单方面进行结构的科学规划,但真正上线后的可操作性仍值得怀疑。也就是说,管
- 9 -
哈尔滨理工大学学士学位论文
理方式的改变必须和软件应用同步进行。 为此,企业一线工作人员需要参与到CRM系统规划、设计、制作、试用等环节,否则,再好的系统设计也不能发挥效力。例如:销售人员常常在各地出差,他们很难随时随地把每次接触顾客的细节都记录在系统中,或者他们不愿意把长时间建立起来的“个人销售关系”公诸于众,因此产生抵触情绪。此时CRM系统要在设计中尽量减少数据输入的工作量,尤其是要做好关于销售人员的提成和定额管理的安全设计、保证销售队伍形成明确的管理体系,最有效的信息可以在最短的时间内传达给正确的人,避免企业的内部竞争或商业机密的外泄,因此,若非在系统安装之前就面向全体终端用户进行管理培训,特别是获得企业高层管理者的鼎力支持,很难想象系统将如何实施。
所以,虽然CRM的实施周期比较短,对数据库的内部修改也比较少,但是它的难度并不小,因为它涉及企业的收入,顾客的满意度和忠诚度,是方方面面的企业管理人员关心的重要系统,它的用户也是在商场中“摸爬滚打”的精明队伍,因此,CRM的实施要求头脑灵活有经验、可信赖并且熟悉本地市场的咨询人员深入到企业中,挖掘企业己有的信息资源,用各种生动的、深入浅出的方式推行“以客户为中心”的新文化,充分介绍CRM系统的强大查询和数据开采功能,才能顺利地开展实施工程。
总之,我们不能奢望CRM系统能够解决企业所有的实际问题,但至少应该能适当提高工作效率,在企业内部形成较为科学的工作流程。
1.3 CRM系统与ERP的关系
CRM是英文CUSTOMERER RELATIONSHIP MANAGERMENT的缩写,中文意思是客户关系管理系统;ERP是英文ENTERPRISE RESOURCE PLANNING,中文意思是企业资源管理。那么二者有什么联系和区别呢?
在ERP中也存在一个客户关系管理模块,但是它管理的范围非常的狭窄,主要还是管理企业内部的一些基本信息,而缺乏对客户信息的合理分析和利用,也就是说它在ERP系统中是一个孤立的模块,缺乏和外部信息的互用。而我们所说的CRM是面向整个企业的,通过它,使企业的各个
- 10 -
哈尔滨理工大学学士学位论文
职能部门同客户之间建立起牢固的关系,这样,通过CRM能使企业管理人员对客户的需求改变进行跟踪,而且以低成本来提供给快速的客户响应和个性化的服务。它还能提供客户的完整的材料,监视客户反映,分析企业的产品和策略,同时也能预测客户的行为。而ERP主要是帮助企业优化和自动化的业务过程,如财务、制造、库存管理和人力资源管理等。ERP能帮助企业把资金投向最佳投资方向(从CRM获得),去快速地改变制造和财务策略,以可以接受的成本生产出新的产品。
而对于社会激烈竞争的现状,对于企业生产必须由以产品为中心转向以客户为中心的响应。需要企业对客户信息进行行之有效的管理,保持现有客户,开拓新客户,拓展市场。但是实施一般概念上的CRM (Customerer Relationship Management客户关系管理)系统,需要极大的信息量,单单一个系统并不能完成他所要实现的功能,需要企业成熟ERP系统的数据支持,这与我国当前的现实状况产生极大的矛盾。面对市场的变化,企业急需一种既符合“客户”导向,又符合我国实际情况的管理系统。
把与ERP密切相关的客户关系管理(Customerer Relationship Management)系统的概念进行了扩展,即先部分实施企业信息化工程,把它精简为CRM(Customerer Resource Management客户资源管理)系统,分析所有与客户有关的信息,而忽略对生产过程的精细管理,同时与OA系统紧密结合。这样避重就轻,使单独实施的成功率大大提高,并在实施过程中留出相应的接日,逐步扩充为ERP—CRM—SCM系统,使企业信息化的进程更进一步。
CRM提供了一个同客户进行交流的通用平台,通过CRM应用,能够做到对客户的快速的响应和提供客户全生命周期的全视图。此时,CRM应用提供了一个更好地进行客户服务的框架,而ERP提供了一个企业的骨架、资源和可操作的应用,使企业更有效的达到留住客户的目的。
客户资源管理CRM (Customerer Resource Management)系统是以客户为中心,将企业中一切与客户相关的人、财、物等资源及其进销存等环节进行统一调配、管理,实现客户价值最大化,增加企业效益,降低企业成木。客户资源作为现代企业的重要资源之一,一般包括:企业与客户的
- 11 -
哈尔滨理工大学学士学位论文
关系,企业与客户的经营发展战略、核心竞争力、供应链管理、市场分析、经济状况、营销策略、生产规模、产品质量研发能力、服务水平、技术支持能力、客户满意度和发展瓶颈。而且保留客户关系管理系统的强大的数据分析和挖掘能力,为企业决策和生产导向提供强有力的支持。
1.4 本章小结
本章先阐述CRM系统的技术背景,进而对CRM系统简要的概述,以此为基础,进一步阐述了CRM的现状及发展趋势,并简要说明了CRM与ERP的关系。
- 12 -
哈尔滨理工大学学士学位论文
第2章 多层客户机/服务器(C/S)结构
2.1 计算机网络计算的发展阶段
在进行计算机网络系统的方案设计时,首先面临的是选择一个什么样的系统计算模式。计算机网络计算在过去30年间发生了很大的变化,它大致可划分为主机集中式计算模式、PC/LAN计算模式、客户机/服务器计算模式这样几个阶段。
2.1.1 主机集中式计算模式
在60-70年代,计算机系统均以一台主机(大型机/小型机)为核心,用户通过本地连接终端或拨号终端来访问主机,终端通常是非智能终端,本身没有处理能力,只有显示、输入和主机通信所需的硬件设备。
主机集中式计算模式其优点是集中的安全性以及在存储设备上处理大量数据的能力。集中式系统易于管理,同时集中式系统还可以使用户能共享贵重的硬件设备等。
主机集中式计算模式的主要缺点是有限的处理能力。当访问宿主机的用户不断增多,宿主机的响应速度会急剧下降,甚至崩溃。其另一缺点是购买和维持这样的系统开支太大。
2.1.2 PC/LAN计算模式
80年代初,随着网络技术的发展和个人机上对数据和外部设备的共享要求的提出,导致了PC/LAN计算模式的诞生。
PC/LAN计算模式具有很多优点,如:投资少见效快、小巧灵活、操作简单、易学易用等。它不仅能使一个工作组继续从易于使用的PC机中受益,而且还允许它们向在一个大型机系统上一样共享数据和外部设备。
PC/LAN计算模式的缺点是多用户应用要求的并发性。对同一时间进行操作的用户经常撞在一起,并且被迫排队等待对同一文件进行访问。另外,它并没有改变DBMS的工作方式,文件服务器只不过是在它的磁盘上检索用户需要的数据并通过网络电缆把数据传送到用户的PC上,然后运行PC上的DBMS对数据进行处理。因此,它只适用于小规模应用。
2.2 客户/服务器(C/S)计算模式
90年代以来,客户机/服务器计算模式发展很快,客户机/服务器模式集中了主机与个人机计算方式的优点,具有大型机的大量数据存储和处理能力,且又具有PC机与用户的交互能力。
客户机/服务器计算模式进行数据处理时分为两个方面:服务器和客户计算机。客户机通常是预先给定的或例行的应用程序,以易用、易懂的图
- 13 -
哈尔滨理工大学学士学位论文
形方式给出数据和操作。这些客户机被联网至后台服务器的应用程序,由服务器来完成对数据的存储、检索和保护。这种体系结构提供了支持事物处理应用程序所需的框架,它可以最大限度地利用客户机和服务器的计算能力,并很容易地将不同的系统与应用程序集成。
C/S自从提出以后,发展到今天,又有了新的令人瞩目的进展。因为数据库产品层出不穷,即使是关系数据库,在物理和逻辑上也存在许多差异,所以,为了解决不同数据库产品的互连及其他问题,三层C/S结构体系也应运而生。
2.2.1 两层C/S模式的特点与不足
典型的数据库应用可以分成三部分:表示部分,应用逻辑(或称商业逻辑)部分,数据访问部分。最简单的两层C/S体系结构如下图所示:
Client Server
基本工作方式是客户程序向数据库服务器发送SQL请求,服务器返回数据或结果。具体来讲,又可以分为两种实现方式,一种是由客户来完成表示部分和应用逻辑部分,由服务器完成数据访问部分,这种情况是以客户为中心的,它适用于应用相对简单、数据访问量不大的情况;另一种是以服务器为中心的,在这种实现方式中,把一些重要的应用逻辑部分放到服务器上,这样可以充分利用服务器的计算能力,减少网络上需传送的数据,提高系统性能.
但是,双层C/S模式也存在一些不足之处。
首先,由于客户端和服务器端直接连接,服务器将消耗部分系统资源用于处理与客户端的连接工作。那么每当同时存在大量客户端数据请求时,服务器有限的系统资源将被用于频繁应付与客户端之间的连接,从而无法及时响应数据请求.客户端数据请求堆积的直接后果将导致系统整体运行效率的大幅度降低甚至全面崩溃。
其次,主一从式的结构中,唯一在线的数据库服务器成为系统可靠性的极大隐患。如果数据库服务器因为某种原因停止工作,那么整个系统将趋于瘫痪。
最后,客户端应用程序的分发工作非常烦琐,令人难以接受。系统开发过程完成后,随之而来的程序分发除了要求为每台客户机客户端的执行文件(*.exe)以外,还要求安装程序运行所必需的动态链接库文件(*.DLL)、程序初始化文件(* .ini)等许多其他文件。另外,还必须配置
- 14 -
哈尔滨理工大学学士学位论文
每台客户机的ODBC或专用数据库接口。如果要对客户端程序进行修改和升级,则意味着分发过程的又一次重复。
正是由于上述的缺点,C\\S模式自从问世之日起,人们就不断致力于改进和完善它。于是,三层C/S模式便应运而生了。
2.2.2 三层C/S模式
三层C/S结构将应用的三部分(表示部分,应用逻辑部分,数据访问部分)明确进行分割,使其在逻辑上各自独立,并且单独加以实现,分别称之为客户、应用服务器、数据库服务器。与两层C/S结构相比,其应用逻辑部分被明确地划分出来。在硬件的实现上有两种方式:1.客户位于客户机上,应用服务器和数据库服务器位于同一主机上,这种方式在主机具有良好性能的前提下,能保证应用服务器和数据库服务器之间的通讯效率,减少客户和应用服务器之间网络上的数据传输,使系统具有良好的性能:2.客户位于客户机上,应用服务器和数据库服务器位于不同的主机上,这种方式比前一种方式更加灵活,能够适应客户机数目的增加和应用处理负荷的变动,在增加新的应用逻辑时,可以追加新的应用服务器,系统规模越大时,这种方式的优点越显著。
三层C/S的体系结构如下图所示: Client Application Server Database Server
其中,客户是应用程序的用户接口部分,负责用户与应用程序的交互,它接受用户的输入和请求,将结果以适当的形式(如图形、报表)返回给用户,与两层C/S结构的客户部分相比,三层C/S的客户功能更加简洁清晰,大部分的应用逻辑部分被转移到应用服务器上,客户的界面容易生成和修改,尽量与其他两层保持独立,以适应应用的变化;应用服务器是应用逻辑处理的核心,它是具体业务的实现,应用服务器一般和数据库服务器有密集数据数据交换,应用服务器向数据库服务器发送SQL请求,数据库服务器将数据访问结果返回给应用服务器,当应用逻辑变得复杂和或增加新的应用时,可增加新的应用服务器;数据库服务器以传统的基于SQL的DBMS实现,完成数据的存储、数据的访问、数据的完整性约束等。 传统的两层C/S结构实际上是一种“胖客户机(Fat Client)”、“瘦服务器(Thin Server)”的网络计算模式,而三层c/S结构则是一种“瘦客户机(Fat Client)”、“胖服务器(Thin Server)”的网络计算模式。目前,流行的趋势是客户机更“瘦”,服务器更“胖”,有些三层C/S系统己经实现了客户端的零代码编程,这就是基于WWW的数据库应用系统,它采
- 15 -
哈尔滨理工大学学士学位论文
用统一的浏览器作为用户界面,形成浏览器-Web服务器-数据库服务器的结构,这种结构就是通常所说的B/S结构,它是三层C/S结构的一种特殊形式。
相对两层C/S模式,三层C/S结构具有以下优点:
1.它简化了客户端,只需要在客户端上安装浏览器软件既可〔IE或Netscape〕.不用在不同的客户端上安装不同的客户应用程序;
2.简化了系统的开发和维护。B/S结构的所有功能都在web服务器上实现,使开发和维护工作大大减轻;
3.使用户的操作使用更加简单; 3.适用于网上信息的发布。
2.3 三层结构和二层结构的区别
1)三层C/S结构与二层C/S的最大区别在于他们的逻辑划分
过去的客户服务器系统为两层结构,即客户端程序+数据库服务器。客户端直接与数据库系统连接,它们可分为两种模式:胖客户型和胖服务器型。胖客户型客户服务器系统的特点是数据计算和数据处理集中在客户端。这种系统的网络负荷大,直接影响业务处理的速度,且用户连接多时容易在数据库端发生访问冲突;胖服务器型客户服务器系统的特点是数据计算和数据处理集中在数据服务器端。数据库服务器端是这种系统的瓶颈,当用户连接多时, 这里就会发生“交通”堵塞,系统性能急剧下降,根本无法适应多用户的需要。
在三层结构客户服务器系统中,数据计算和数据处理集中在中间层部件,而三层结构系统能够实现分布计算功能。具体地说,可以根据需要把各个部件分别或重复地分布在不同的计算机上,使整个系统的工作量平衡分配到网络中。
2)维护和升级
将COM组件集中置于中间层,组件对象C哪的可重用性减少了应用系统整体的管理和维护费用。业务流程改变时,不必改变整个程序,只须调整或替换中间层相应的COM组件,避免了客户端应用程序版本控制和更新的困难。
3)这种应用模式显著提高了系统的运营效率和安全性。
应用程序使用组件可以共享与数据库的连接,使数据库不再和每个活动客户保持一个连接,而是若干个客户通过共享组件和数据库连接,降低了数据库的负担,提高系统性能。此外,客户通过组件访问数据库时,MTS的安全管理可以按权限将特定组件授给不同的用户组,使商务活动的安全性和系统结构有机的结合在一起。
- 16 -
哈尔滨理工大学学士学位论文
2.4 多层结构 三层结构是以“客户层/中间层/数据服务层”三层体系结构为构架的,并将COM概念应用于中间层。所谓多层结构其实质也就是三层结构,增加中间层的层数就是多层结构。层次的划分并不是物理上的划分,而是逻辑结构上的划分。三层逻辑结构可以位于同一台计算机上,也可以分别位于不同的计算机上,甚至中间层就可以分布在不同的计算机中,这就是分布式应用; 数据服务层也可以分布在不同的计算机中,形成分布式数据库。比如,客户端程序要调用的某个业务功能组件要求响应速度很快.并且体积较小,那么就可以把这个业务组件配置在客户端,以DLL的形式存在;又如,客户要访问的某个业务组件包含大量对数据库的操作(类似于数据库服务器中的存储过程所做的工作),那么可以把它配置在数据库服务器上,以减少网络负载,提高运算速度;如果某些业务组件中包装的业务逻辑需要大多数客户机程序访问,那么就可以单独构建一台独立的服务器,将这些组件放在其中,供客户机程序访问,而不必在每台客户机上安装。
2.5 本章小结
本章介绍了分布式客户机/服务器体系结构,阐述了二层C/S模式的缺点及存在的问题,三层C/S体系结构的优势,并在本章末尾简要介绍了多层体系结构。
- 17 -
哈尔滨理工大学学士学位论文
第3章 系统需求分析
3.1 用户需求
企业客户资源管理系统是完全基于三层C/S模式的,该系统面向的用户群分为三类:系统管理员,商业用户,企业内部普通用户。各自访问系统服务的权限不尽相同,其中权限最高的是系统管理员,其次为企业普通用户,最后是商业用户。系统可同时为多个不同权限的用户服务,它们之间互不干扰。基于用户的角色不同,系统功能需求如下:
系统管理员:除了有权对商业用户和普通用户的信息进行管理,赋予相应的权限之外,管理员还负责对系统的各类数据模块,包括地域信息,客户基本信息,客户类型,客户职务,商业往来等模块进行全权管理。并且对系统所有用户的所有信息拥有一切权限。
企业内部普通用户:普通用户有权对自己的信息及属于自己的资源拥有所有操作权限,对系统内部其他资源拥有管理员所赋予的权限,通常普通用户的默认权限为浏览,可以浏览相应的客户资源的相关信息,且对于属于自己的客户的所有信息又有左右操作权限。
商业用户:商业用户即指与本企业有商业往来的客户,基本客户资源管理系统的主体资源。在进入系统之前,商业用户通过相应的企业内部用户信息注册,即可登陆系统对商业往来模块进行相应的操作,包括相应订单及合同的管理。
3.2 功能需求
随着社会的进步,商业竞争的日趋激烈,企业之间的竞争已不仅仅局限于产品的质量、技术的先进等方面,企业的重心已经转向服务和客户。人们对服务的期望不断增加,谁能留住客户,谁就拥有市场。
本客户资源管理系统主要针对现代企业中客户资源的复杂性,分散性,不确定性以及可变性强,不易管理的特点而开发的。
客户资源的不易管理主要表现在以下几个方面:
1.地域分散。由于企业的业务范围不同,相应的客户分布就相对比较分散,遍布全国很多地区,这就要求有一个管理系统能够对客户所在的区域进行分级管理,层层细化。系统用户只要点击相应的地域,就能够看到相应的客户信息,方便查询和汇总
2.客户类别混乱。企业的客户类型有很多,企业对待不同的客户,会有相应不同的方案,产品,及相应的营销对策。由此,客户类别的混乱会给企业分析客户带来诸多不便,因此对企业客户类型的管理也必不可少。
- 18 -
哈尔滨理工大学学士学位论文
3.客户职务复杂。由于企业客户公司有大有小,公司的性质,业务范围也有所不同,洽谈业务的客户方人员的职务也有高有低,不尽相同,这样会给公司的接待工作带来诸多不便。对企业客户职务系统化的管理,将为企业节省大量的时间,提高工作效率。
4.客户商业往来的频繁性。客户与企业之间的商业往来所涉及的日期、客户单位、联系人、商业往来的类型、涉及金额等信息无规则性,不易管理,企业要随时掌握相应的客户与企业之间的商业往来情况,产品销售情况,这就需要对客户与企业的往来进行系统的管理。
3.3 系统性能需求
企业客户资源管理系统的开发目标是以最经济的方式和最先进的技术提供一种科学、高效的客户管理手段。为了达到这一目标,系统必须具备一定的实用性、安全性、可扩展性、易维护性和使用便捷性。
1)实用性。系统提供强大的交互能力,在企业与客户、企业内部员工与员工、甚至系统用户与环境之间建立方便、可靠的交互。这样才能对企业的客户资源进行有效的管理,提高效率。
2)安全性。系统运行安全可靠是决定软件质量的重要因素,而现在企业所运行的网络是一个开放的网络,安全性较差。为了保证系统的安全性,必须采取一定安全措施,防止用户越权使用或非法用户的侵入,防止工作数据被非法篡改、破坏和泄露等。
3)可扩展性。系统设计要充分考虑未来技术和企业发展的需要。这不仅包括系统管理模式、客户资源访问及设计、数据库设计等开发内容,而且也包括开发平台、编程模式等的选择。
4)易维护性。一个交互性强的企业客户资源管理系统的复杂性可想而知,因此在设计系统时应充分考虑它的运行、管理和维护问题,尽可能的实现运行速度快、管理方便、维护容易的目标。
5)使用便捷性。基于C/S模式,符合“瘦客户机”的原则,极大的简化了客户机的工作;既免去了客户端的维护,同时降低了用户操作的难度。
3.4 本章小结
本章主要是对用户对系统的功能需求,性能需求,用户需求三个方面对系统进行系统的分析,简要概述系统的需求分析。
- 19 -
哈尔滨理工大学学士学位论文
第4章 系统设计
客户资源是企业的宝贵财富,企业客户资源管理系统可以有效地管理企业的客户资源,记录企业与客户之间的商业活动,这对于现代企业是非常重要的。
4.1 系统功能描述
企业客户资源管理系统的主要任务是实现对企业在各地区,各行业客户的综合管理。为了使本系统具有更广泛的实用性,系统中设计了地域管理,客户类别管理和客户职务管理等模块。
企业客户资源管理系统的主要功能包括: 1.地域信息管理功能
地域信息的录入,包括地域编号、地域名称、地域类型、和上
级地域等信息; 地域信息的修改; 地域信息的删除; 地域信息的查询。 2.客户类别管理功能
客户类别的录入,包括客户类别编号、类别名称和排序编号
等信息;
客户类别的修改; 客户类别的删除; 客户类别的查询。 3.客户职务管理功能
客户职务的录入,包括客户职务编号、职务名称和排序编号
等信息;
客户职务的修改; 客户职务的删除; 客户职务的查询。 4.客户单位信息管理功能
客户单位信息的录入,包括单位编号,单位名称,所属客户
类别,通信地域等信息; 客户单位信息的修改; 客户单位信息的删除; 客户单位信息的查询。 5.客户通讯录管理功能
客户联系人信息的录入,包括所在单位、客户姓名、联系
- 20 -
哈尔滨理工大学学士学位论文
人、商业往来类型、涉及金额和活动描述等信息; 客户联系人信息的修改; 客户联系人信息的删除; 客户联系人信息的查询。 6.客户商业往来管理功能
客户商业往来信息的录入,包括日期、客户单位、联系人、
商业往来类型、涉及金额和活动描述等信息; 客户商业往来信息的修改; 客户商业往来信息的删除; 客户商业往来信息的查询。 7.系统用户管理功能
系统用户信息的录入,包括用户名、密码等信息; 系统用户信息的修改; 系统用户信息的删除; 系统用户信息的查询。
4.2 功能模块划分
从功能描述的内容可以看到,本系统可以实现七个完整的功能。我们根据这些功能,设计出系统的功能模块,如图4.1所示。
企业客户资源管理系统地域信息系统客户类别管理客户职务管理客户单位管理客户通讯录管理商业往来管理系统用户管理根据各个模块不同的表实现添加记录、修改记录、删除记录、以及查询显示记录等功能 图4.1 - 21 -
哈尔滨理工大学学士学位论文
在功能模块示意图的树状结构中,每一个叶结点都是一个最小的功能模块,每一个功能模块都需要针对不同的表完成相同的数据库操作,即添加记录、修改记录、删除记录、以及查询显示记录信息。
企业客户资源管理系统的功能模块之间的关系如图4.2所示。
客户职务管理提供职务数据客户类别管理提供类别数据地域信息管理提供地域数据客户单位信息管理提供客户单位数据客户通讯录信息管理- 22 - 图4.2 提供客户数据客户商业往来管理哈尔滨理工大学学士学位论文
从模块关系图中可以看出,地域信息管理、客户类别管理和客户职务管理都是为了更完善地描述客户信息。其中不同客户类别有对应着不同的客户职务,例如在企业单位中有总经理、行政总监等职务,而且在一些机关单位中有局长、处长、科长等职务。
客户信息管理分为客户单位和客户通讯录两个模块来描述。客户通讯录中记录客户联系人的信息,其中包括客户所属的单位。因为每个单位通常会有多个客户联系人,所以这种管理方式避免了重复录入客户单位信息的情况,也使系统的结构更加清晰。
客户通讯录可以为客户商业往来提供客户信息。
在本系统中,用户管理模块的功能比较简单。在系统初始化时,有一个默认的“系统管理员”用户Admin,由程序设计人员手动地添加到数据库中。Admin用户可以创建用户、修改用户信息、以及删除用户;普通用户则只能修改自己的用户名和密码。
用户功能模块的关系如图4.3所示。
修改Admin用户的密码Admin用户系统用户信息管理普通用户
图4.3
- 23 -
创建、修改和删除普通用户信息修改自身用户名、密码哈尔滨理工大学学士学位论文
4.3 系统流程分析 所谓系统流程分析就是用户在使用系统时的工作过程。多用户系统的工作流程就是从用户登录模块开始,对用户的身份进行认证。身份认证可以分为以下两个过程:
1.确认用户是否是有效的系统用户; 2.确定用户的类型。
第一个过程决定用户能否进入系统。第二个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。
在系统的工作流程中,还将体现各个功能模块之间的依存关系。例如,必须在地域管理模块中添加至少一个地域信息,才能添加客户单位信息;必须有一条客户单位信息,才能添加客户联系人信息等等。
本系统的流程分析如图4.4所示
开始重试否用户登录失败超过3次是退出程序成功读取用户类型用户管理模块企业客户资源管理模块地域信息管理Admin用户1.管理自己的用户信息2.管理普通用户的信息客户类别管理客户职务管理客户单位管理普通用户管理自已的用户信息客户人员管理客户交往管理图4.4
- 24 -
哈尔滨理工大学学士学位论文
在流程分析图中可以看到,每个用户有3次机会进行身份认证。如果3次输入的用户名和密码都无法与数据库中的数据匹配,则强制退出系统。
本系统并没有对用户的权限作详细的划分。除了Admin用户具有用户管理权限外,在客户资源管理模块中,所有用户的权限是完全相同的。也就是说,只要能够进入系统,就可以适用本系统的全部功能。
4.4 数据库设计
4.4.1 数据库逻辑结构设计
数据库ClientSys包含一下7个表:地域表Area、客户类型表CltType、客户职务表CltJob、客户单位表CltOrg、客户通讯录表Contact、商业往来表Business、用户信息表Users。
1.地域信息表Area
地域信息表Area用来保存地域信息。本系统采用树状结构来管理地域数据,也就是在地域之间建立从属关系,树状结构的根为“全球地域”,这只是一个逻辑值,并不存放在表中。下面依次为洲,国家,省,市县等。表Area的结构如下表所示 编号 1 2 3 字段名称 AreaId AreaName AreaType 数据结构 Int Varchar 40 Smallint 说明 地域编号 地域名称 地域类型,1-洲,2-国家,3-省,4-市县 上级地域编号 4 UpperId Int 2.客户类别信息表CltType
客户类别信息表CltType用来保存客户的类别信息。 表CltType结构如下表所示。 编号 1 2 3 字段名称 TypeId TypeName SortId 数据结构 Int Varchar 100 Int 说明 客户类型编号 客户类型名称 排序编号,为了方便用户查询,系统允许用户自定义客户类型的排列顺序 3.客户职务信息表CltJob
- 25 -
哈尔滨理工大学学士学位论文
客户职务信息表CltJob用来保存客户的职务信息,不同的客户类型拥有不同的客户职务。
表CltJob的结构如下表所示。 编号 字段名称 数据结构 说明 1 OrgId Int 客户单位编号 2 OrgName Varchar 200 客户单位名称 3 TypeId Int 所属客户类别编号 4 Address Varchar 400 通信地址 5 Postcode Varchar 40 邮政编码 6 AreaId Int 所在地域编号 7 Deleted Bit 删除标记 4.客户单位信息表CltOrg
客户单位信息表CltOrg用来保存客户单位的基本信息。表CltOrg的结构如下表所示。 编号 1 2 3 4 5 6 7
5.客户通讯录表Contact
客户通讯录表Contact用来保存客户联系人的基本信息。表Contact的结构如下表所示。
字段名称 OrgId OrgName TypeId Address Postcode AreaId Deleted 数据结构 Int Varchar 200 Int Varchar 400 Varchar 40 Int Bit 说明 客户单位编号 客户单位名称 所属客户类别编号 通信地址 邮政编码 所在地与编号 删除标记 - 26 -
哈尔滨理工大学学士学位论文
编号 字段名称 数据结构 说明 1 CltId Int 客户编号 2 OrgId Int 客户单位编号 3 CltName Varchar 50 联系人姓名 4 Sex Varchar 10 性别 5 JobId Int 职务Id 6 Office Varchar 30 单位电话 7 Mobile Varchar 30 移动电话 8 Home Varchar 30 家庭电话 9 Level Smallint 客户等级 10 Address Varchar 200 家庭住址 11 Postcode Varchar 20 邮政编码 12 Id_Card Varchar 60 身份证 13 Deleted Smallint 删除标记 14 Input_date Varchar 40 录入日期 15 Input_time Varchar 40 录入时间 在表Contact和表CltOrg中,都有一个Deleted字段,它是记录的删除标记。使用Deleted字段可以实现类似Windows中的回收站功能。当用户删除一条记录时,系统并不是真正地把它从表中删除,而是将磁记录的Deleted字段设置为1。Deleted字段为1的记录只有在回收站中才是可见的,用户可以在回收站中选择将记录还原,还是将其真正地删除。这样就大大减少了因为误操作而造成数据丢失的可能性。
6.商业交往表Business
商业交往表Business用来记录企业与客户之间的商业交往。表Business的结构如下表。 编号 1 2 3 4 字段名称 BusiId BusiDate CltId BusiType 数据结构 Int Varchar 20 Int Varchar 30 说明 商业交往编号 商业交往日期 客户编号 商业往来类型(1-采购,2-销售,3-合作开发,4-日常交往,5-其他) Decimal 15,2 涉及金额 Varchar 400 活动描述 Varchar 30 经办人姓名 - 27 -
5 6 7 Amount Describe Operator 哈尔滨理工大学学士学位论文
商业往来可以包含非常广泛的内容,既可以使企业之间的销售活动、合作开发,也可以是普通的馈赠礼物、业务交流等。
7.户信息表Users
用户信息表Users用来保存系统用户信息。表Users的结构如下表所示。 编号 1 2 字段名称 数据结构 UserName Varchar 40 Pwd Varchar 40 说明 用户名 密码 4.5 本章小结
本章主要阐述了系统的相关功能模块的基本功能,并设计了系统的层次机构及功能模块的划分。在此基础上,初步设计了系统的工作流程,并简要说明了系统内部各功能模块的关系。
- 28 -
哈尔滨理工大学学士学位论文
第5章 系统实施
5.1 系统运行软硬件环境
1.系统硬件环境
服务器:采用IBM xSeries 255服务器;
客户机:Intel Pentium Ⅳ2.0以上处理器;256M以上内存; 磁盘恢复技术:双磁盘同步镜像技术 2.系统运行软件环境
服务器:
Windows 2000 Advance Server或更高服务器版本操作系统; Microsoft SQL Server 2000数据库管理系统; 客户机:
Windows 2000或更高版本操作系统。
5.2 系统开发工具
5.2.1 Microsoft SQL Server2000简介
SQL Server是关系数据库管理系统的杰出代表,它是为最优化的CLIENT/SERVER体系结构而设计的关系数据库。Microsoft SQL Server的高速、高度安全性和稳定性以及它不仅在功能强劲而且在低廉的硬件上运行也同样自如且威力不减--高性能价格比,使它成为今日数据库开发的首选。
Microsoft SQL Server是高性能、客户/服务器的RDBMS(关系型数据库管理系统),能够支持大吞吐量的事务处理,也能在Microsoft Windows 2000 Server网络环境下管理数据存取以及开发决策支持应用程序。由于Microsoft SQL Server是开放式的结构,其他系统(如UNIX系统)可以与它进行完好的互操作。
SQL Server数据库系统之所以得到广泛的应用,一方面是因为Microsoft公司在个人操作系统和网络操作系统方面具有无可比拟的优势,可以将这些优势覆盖到相应的应用产品中;另一方面SQL SERVER始终体现着最前沿的是数据库技术。具体说来,它具有如下特点:
可实现与Windows 2000 或 Windows NT网络操作系统间的无缝
连接;
良好的伸缩性;
同时支持同步与异步分布式系统; 完善的多线索、多服务器的体系结构;
- 29 -
哈尔滨理工大学学士学位论文
提供了开放的客户接口和服务器接口。 5.2.2 Visual Basic6.0简介
自从Microsoft推出Windows系列操作系统以来,Visual Basic一直是受人们青睐的语言之一,它的可视化界面、简洁的语句、强大的功能以及丰富的资源使之成为程序员和计算机爱好者们编写Windows应用程序时经常使用的开发工具。
Windows95操作系统出台后,Microsoft将应用开发平台全面向32位系统转移。Visual Basic6.0是Visual Basic最新版本Visual Basic6.0。与以前的版本相比,Visual Basic6.0功能更强,速度更快,它在全面继承Visual Basic6.0的基础上,Internet功能、数据库功能、控件功能也有了较大改进和增强。在Internet功能上,可以用Visual Basic6.0代码编写IIS应用程序,可以为DHTML编写代码响应HTMI页面上的操作,应用程序可以通过Web发布向导发布到Web站点,还可以支持Internet Explorer 4.x中对ActiveX文档的下载;在数据库方面,特别是ADO数据访问模型的完整推出,为Visual Basic程序开发人员提供了一个高效的统一的数据访问对象:在控件功能上,值得一提的是添加了ADOData控件、Coolba控件、Date Time Picker控件、Flat Sorollbar控件、ImageCombo控件、Month View控件,并增强了一些控件的功能,比如Image List控件现在支持.gif .jpg .cur文件。并且可以动态添加控件,允许控件失去焦点之前验证控件的内容,LoadPicture现在可以指定尺寸和颜色深浅。这些新增功能使得Visual Basic程序开发人员可以更高效、灵活地开发应用程序,用户界面也更友好。通过Visual Basic 6.0的本地代码优化编译器,Visual Basic6.0 编译速度与代码运行速度都有了较大的提高。可以说,利用Visual Basic6.0开发客户用及务器应用程序是程序开发人员优先选择的开发方法之一。
5.3 系统模块函数
根据系统设计的要求及Visual Basic6.0功能模块的划分原则,创建以下几个模块:
Const:用来管理工程中的常量;
DbFunc:用来管理工程中与数据库操作相关的声明、变量和函
数;
GeneralFunc:用来管理工程中一些通用的自定义函数; Variable:用来管理工程中的权局部变量。
5.3.1 Const模块
本系统使用Const模块来管理工程中的常量,如果使用Public关键字
- 30 -
哈尔滨理工大学学士学位论文
定义一个常量,则可以在工程中的任何地方使用它。内容如下: '数据库访问常量
Public Const SQL_C_CHAR As Long = 1
Public Const SQL_COLUMN_LABEL As Long = 18 Public Const SQL_DROP As Long = 1 Public Const SQL_DRROR As Long = -1
Public Const SQL_NO_DATA_FOUND As Long = 100 Public Const SQL_SUCCESS As Long = 0
Public Const SQL_SUCCESS_WITH_INFO As Long = 1 Public Const SQL_ATTR_MAX_LENGTH As Long = 100 '数据源信息常量
Public Const DATABASE As String = \"ClientSys\" Public Const DSN As String = \"ClientSys\"
Public Const DB_USER_NAME As String = \"sa\" Public Const DB_PASSWORD As String = \"sa\" '一次执行connect操作可以访问数据库的次数 Public Const CONNECT_LOOP_MAX = 10
5.3.2 DbFunc模块
DbFunc模块管理与数据库操作相关的声明、变量和函数。由于DbFunc模块的内容较多,根据其功能将它划分为几个部分。
1.声明变量
DbFunc模块中包含了与数据库操作相关的变量,相应代码如下: '== 声明odbc32.dll中定义的ODBC API函数 ==
Public Declare Function SQLAllocEnv Lib \"odbc32.dll\" (phenv&) As Integer
Public Declare Function SQLAllocConnect Lib \"odbc32.dll\" (ByVal Henv&, phdbcd&) As Integer
Public Declare Function SQLAllocStmt Lib \"odbc32.dll\" (ByVal Hdbc&, phstmt&) As Integer
Public Declare Function SQLConnect Lib \"odbc32.dll\" (ByVal Hdbc&, ByVal szDSN$, _
ByVal cbDSN%, ByVal szUID$, ByVal cbUID%, ByVal szPWD$, ByVal cbPWD%) As Integer
Public Declare Function SQLColAttributes Lib \"odbc32.dll\" (ByVal Hstmt&, ByVal icol%, _
ByVal fDescType%, ByVal rgbDesc As String, ByVal cbDescMax%, pcbDesc%, pfDesc&) As Integer
Public Declare Function SQLDisconnect Lib \"odbc32.dll\" (ByVal Hdbc&) As Integer
Public Declare Function SQLExecDirect Lib \"odbc32.dll\" (ByVal Hstmt&, ByVal szSqlStr$, _
- 31 -
哈尔滨理工大学学士学位论文
ByVal cbSqStr&) As Integer Public Declare Function SQLFetch Lib \"odbc32.dll\" (ByVal Hstmt&) As Integer
Public Declare Function SQLFreeConnect Lib \"odbc32.dll\" (ByVal Hdbc&) As Integer
Public Declare Function SQLFreeEnv Lib \"odbc32.dll\" (ByVal Henv&) As Integer
Public Declare Function SQLFreeStmt Lib \"odbc32.dll\" (ByVal Hstmt&, ByVal fOption%) As Integer
Public Declare Function SQLGetData Lib \"odbc32.dll\" (ByVal Hstmt&, ByVal icol%, ByVal fCType%, _
ByVal rgbValue As String, ByVal cbValueMax&, pcbValue%) As Integer Public Declare Function SQLNumResultCols Lib \"odbc32.dll\" (ByVal Hstmt&, pccol%) As Integer
Public Declare Function SQLGetDiagRec Lib \"odbc32.dll\" (ByVal HandleType%, ByVal Handle&, _
ByVal RecNumber%, Sqlstate%, NativeErrorPtr%, MessageText As String, _
ByVal Bufferlenchgth%, TextlenchgthPtr%) '== 标记数据库是否连接 == Private IsConnect As Boolean
'== 标记执行Connect()函数后,访问数据库的次数 == Private Connect_Num As Integer
Private Henv As Long '环境句柄 Private Hdbc As Long '连接句柄 Private Rc As Long Public Hstmt As Long
Henv Henv变量是ODBC的环境句柄,使用SQLAllocEnv()函数
可以得到分配的环境句柄,同一时刻只允许有一个连接到数据库的环境句柄。Henv是DbFunc模块的私有变量,只在模块范围内使用。当DbFunc模块功能实现后,在其他模块中连接数据库是就无需考虑环境句柄了。
Hdbc Hdbc变量是ODBC的连接句柄,使用SQLAllocConnect
()函数可以得到与环境句柄Henv相关联的连接句柄。Hdbc是DbFunc模块的私有变量,只在模块范围内使用。当DbFunc模块的功能实现后,在其他模块中连接数据库时,就无需考虑连接句柄了。
Rc Rc变量通常用来接受SQLDisconnect(),SQLFreeConnect
()和SQLFreeEnv()等函数的返回值。
Hstmt Hstmt变量是ODBC的语句句柄,使用SQLAllocStmt
- 32 -
哈尔滨理工大学学士学位论文
()函数可以得到与连接句柄Hdbc相关系得语句句柄。 2.用户自定义的数据库操作函数
DbFunc模块中包含了连接数据库,断开连接,执行SQL语句等几种数据库操作函数。
底层连接数据库函数Connect() Connect()函数是DbFunc模
块的私有函数。它的作用是连接到数据库。Connect()函数工作流程如下图5.1所示。
IsConnect=True是返回分配环境句柄分配连接句柄连接数据库成功连接数据库,设置IsConnect=True- 33 -
否失败成功失败成功 失败成功连接失败,退出程序图5.1 哈尔滨理工大学学士学位论文
Connect()函数如下: '连接数据库
Private Sub Connect()
Dim TmpStat As Long 'SQLConnect()函数的返回值 '如果连接标记为真,则返回。否则会出错 If IsConnect = True Then Exit Sub End If
'分配环境句柄,保存在变量Henv中 If SQLAllocEnv(Henv) Then
MsgBox \"无法初始化ODBC环境!\执行错误\" End End If
'根据环境句柄,分配连接句柄,保存在变量Hdbc中 If SQLAllocConnect(Henv, Hdbc) Then
MsgBox \"无法连接ODBC!\执行错误\" End End If
'根据连接句柄、数据源、用户名和密码连接指定的数据库
TmpStat = SQLConnect(Hdbc, DSN, Len(DSN), DB_USER_NAME, _ Lench(DB_USER_NAME), DB_PASSWORD, Len(DB_PASSWORD))
'如果连接不成功则退出程序
If TmpStat <> SQL_SUCCESS And _
TmpStat <> SQL_SUCCESS_WITH_INFO Then
MsgBox \"无法获得连接句柄!\执行错误\" IsConnect = True Disconnect End End If
'设置连接标记 IsConnect = True End Sub
底层断开连接数据库函数Disconnect() Disconnect()函数是
DbFunc模块的私有函数。它的作用是断开已有的数据库连接。Disconnect()函数的工作流程如下图5.2所示。
- 34 -
哈尔滨理工大学学士学位论文
IsConnect=False是返回断开连接释放连接句柄释放环境句柄成功断开与数据库的连接,设置IsConnect=FalseDisconnect()函数如下: '断开与数据库的连接 Private Sub Disconnect() Dim Rc As Long
'如果连接标记为假,标明已经断开连接,则直接返回 If IsConnect = False Then Exit Sub End If '断开连接
Rc = SQLDisconnect(Hdbc) '释放连接句柄
Rc = SQLFreeConnect(Hdbc) '释放环境句柄
- 35 -
否图5.2
哈尔滨理工大学学士学位论文
Rc = SQLFreeEnv(Henv) IsConnect = False End Sub
5.3.3 GeneralFunc模块
GeneralFunc模块用来管理通用的用户自定义函数。这些函数与数据库操作无关,可以应用在所有Visual Basic程序中。模块代码如下。 Public Sub Add_AreaToTree(TreeView1 As TreeView) Dim Id As Long
Dim TmpNode As Node
Dim CurKey, UpperKey As String MyArea.Load_Area i = 0
Do While Arr_AreaName(i) <> \"\"
'生成地域对应的键,格式为“字母”+“数字” '字母为:全球地域为a,洲为b,国家为c,等等 '数字为:地域的编号
CurKey = Chr(Asc(\"a\") + Arr_AreaType(i)) CurKey = CurKey + Trim(Str(Arr_AreaId(i))) '找到上一级节点 UpperKey = \"\"
If Arr_AreaUpper(i) = 0 Then UpperKey = \"a0\" Else j = 0
Do While Arr_AreaName(j) <> \"\"
If Arr_AreaId(j) = Arr_AreaUpper(i) Then
UpperKey = Chr(Asc(\"a\") + Arr_AreaType(j)) UpperKey = UpperKey + Trim(Str(Arr_AreaId(j))) End If j = j + 1 Loop End If
'如果找到上一级地域 If UpperKey <> \"\" Then
If MyArea.HaveSon(Arr_AreaId(i)) = True Then
Set TmpNode = TreeView1.Nodes.Add(UpperKey, _ tvwChild, CurKey, Arr_AreaName(i), 1, 3) TmpNode.ExpandedImage = 2 Else
Set TmpNode = TreeView1.Nodes.Add(UpperKey, _ tvwChild, CurKey, Arr_AreaName(i), 4, 5)
- 36 -
哈尔滨理工大学学士学位论文
End If If FocusAreaName <> \"\" And Arr_AreaName(i) = FocusAreaName Then
TmpNode.Selected = True FocusKey = CurKey End If
If FocusAreaId > 0 And Arr_AreaId(i) = FocusAreaId Then TmpNode.Selected = True FocusKey = CurKey End If
If FocusKey <> \"\" And CurKey = FocusKey Then TmpNode.Selected = True End If End If i = i + 1 Loop End Sub
Public Function In_Single(KeyAscii As Integer) As Boolean Dim Ch_Accept_Single(20) As String '可以接受的字符数组 Ch_Accept_Single(0) = \"0\" Ch_Accept_Single(1) = \"1\" Ch_Accept_Single(2) = \"2\" Ch_Accept_Single(3) = \"3\" Ch_Accept_Single(4) = \"4\" Ch_Accept_Single(5) = \"5\" Ch_Accept_Single(6) = \"6\" Ch_Accept_Single(7) = \"7\" Ch_Accept_Single(8) = \"8\" Ch_Accept_Single(9) = \"9\" Ch_Accept_Single(10) = \".\" Ch_Accept_Single(11) = \"-\" Ch_Accept_Single(12) = Chr(8) '检查输入字符是否在数组中 In_Single = False For i = 0 To 12
If Chr(KeyAscii) = Ch_Accept_Single(i) Then In_Single = True End If Next
End Function
Public Function In_Int(KeyAscii As Integer) As Boolean Dim Ch_Accept_Int(20) As String
- 37 -
哈尔滨理工大学学士学位论文
'可以接受的字符数组 Ch_Accept_Int(0) = \"0\" Ch_Accept_Int(1) = \"1\" Ch_Accept_Int(2) = \"2\" Ch_Accept_Int(3) = \"3\" Ch_Accept_Int(4) = \"4\" Ch_Accept_Int(5) = \"5\" Ch_Accept_Int(6) = \"6\" Ch_Accept_Int(7) = \"7\" Ch_Accept_Int(8) = \"8\" Ch_Accept_Int(9) = \"9\" Ch_Accept_Int(10) = Chr(8) '检查输入字符是否在数组中 In_Int = False For i = 0 To 10
If Chr(KeyAscii) = Ch_Accept_Int(i) Then In_Int = True End If Next
End Function
Public Function InCombo(ByVal Str As String, _
ByVal ComboArea As ComboBox) As Boolean i = 0
Do While i < ComboArea.ListCount
If ComboArea.List(i) = Trim(Str) Then InCombo = True Exit Function End If i = i + 1 Loop
MsgBox Str + \" 不在列表中,请重新设置\" InCombo = False End Function
Public Function Lench(ByVal TmpStr As String) As String Lench = LenB(StrConv(TmpStr, vbFromUnicode)) End Function
Public Function TrimStr(ByVal Str As String) As String If InStr(Str, Chr(0)) <= 0 Then TrimStr = Trim(Str) Else
TrimStr = Trim(Left(Str, InStr(Str, Chr(0)) - 1)) End If
- 38 -
哈尔滨理工大学学士学位论文
End Function Public Function MakeStr(ByVal Str As String) As String MakeStr = Trim(Replace(Str, \"'\End Function
Public Sub EnterTAB(KeyAscii As Integer) If KeyAscii = 13 Then '13表示回车键 SendKeys \"{TAB}\" '转换为TAB键 End If End Sub
Add_AreaToTree()函数 Add_AreaToTree()函数是为系统得
地域树结构中添加新节点,即添加新的地域。
In_Single()和In_Int()函数 In_Single()和In_Int()两个
函数实现对输入字符的过滤,即对输入文本框中的字符与相应字段的数据类型比较,避免因文本框输入字符与数据库字段的数据类型不符而在写入数据库时出错。
InCombo()函数 InCombo()函数是判断指定字符串是否在组
合框中,控制输入字符不再Combo的List列表中出错。 Lench()函数 Lench()函数是计算字符串长度的函数。
5.3.4 Variable模块
Variable模块用来管理工程中的全局变量。模块代码如下: '保存执行SQL语句的字符串 Public SqlStmt As String '读取表中列值的变量 Public ColVal As String '地域数组
Public Arr_AreaName() As String Public Arr_AreaType() As Integer Public Arr_AreaId() As Long Public Arr_AreaUpper() As Long '客户类别数组
Public Arr_CltTypeName() As String
Public Arr_CltTypeId() As Integer '类别排序id '客户职务数组
Public Arr_CltJob() As String
Public Arr_CltJobId() As Integer '排序id '客户单位数组
Public Arr_CltOrg() As String '客户联系人
Public Arr_Contact() As String
- 39 -
哈尔滨理工大学学士学位论文
'设置焦点地域 Public FocusAreaName As String Public FocusAreaId As Integer '声明类模块变量
Public MyArea As New Area
Public CurArea As New Area '当前地域信息 Public MyType As New CltType Public MyJob As New CltJob Public MyOrg As New CltOrg Public CurOrg As New CltOrg Public MyClt As New Contact Public MyBusi As New Business Public MyUser As New Users Public CurUser As New Users
5.4 创建和配置ODBC数据源
访问SQL Server数据库,必须要配置系统ODBC数据源。数据源是一个存储定义,它可以记录以下信息:
连接到数据源所使用的ODBC驱动程序; ODBC驱动程序连接到数据源所使用的信息; 连接所使用的驱动程序特有的选项。
按照以下方式将SQL Server2000数据库添加到ODBC数据源中。 1.单击“用户DSN”选项卡,进入系统数据源页面。如图5.3
图5.3
- 40 -
哈尔滨理工大学学士学位论文
2.单击“添加”按钮,出现“创建新数据源”对话框。如图5.4 图5.4
3.在驱动程序列表中,选择SQL Server,然后单击“Finish”按钮,打开“创建数据源向导”窗口。输入数据源名称、说明和连接的SQL Server服务器。如图5.5所示。
图5.5
4.单击“Next”,打开设置身份验证窗口,根据数据库的具体设置选择身份验证方式。选择“使用用户输入登录ID和密码的SQL Server验证”,然后输入登录ID:sa,密码:sa。如图5.6
- 41 -
哈尔滨理工大学学士学位论文
图5.6
5.单击“Next”按钮,打开设置数据库选项对话框。然后选择“更改默认数据库”,在下拉列表中选择ClientSys数据库。如图5.7
图5.7
6.单击“Next”按钮,进入“建立新的数据源到SQL Server”对话框。如图5.8
- 42 -
哈尔滨理工大学学士学位论文
图5.8
7.单击“Finish”按钮,数据源向导会弹出一个总结报告,汇总此数据源的所有信息。如图5.9
图5.9
8.单击“测试数据源”按钮,可以检查数据源配置是否成功。如果配置成功。如图5.10
- 43 -
哈尔滨理工大学学士学位论文
图5.10
自此系统ODBC数据源配置完成。
5.5 系统输入输出设计
系统登录模块设计
用户要使用本系统,首先要通过系统的身份认证,这个过程叫做登录。登录过程需要完成以下任务:
根据用户名和密码来判断是否可能进入系统; 根据用户类型决定用户拥有的权限。 登录模块界面设计。如图5.11
图5.11
部分源程序:
Private Sub Cmd_OK_Click() Dim j As Single '数据有效性检查 If txtUser = \"\" Then
- 44 -
哈尔滨理工大学学士学位论文
MsgBox \"请输入用户名\" txtUser.SetFocus Exit Sub End If
If txtPwd = \"\" Then
MsgBox \"请输入密码\" txtPwd.SetFocus Exit Sub End If
NameKey = MakeStr(txtUser) PasswordKey = MakeStr(txtPwd) '判断用户是否存在
If MyUser.In_DB(NameKey) = False Then MsgBox \"用户名不存在\" Try_times = Try_times + 1 If Try_times >= 3 Then
MsgBox \"您已经三次尝试进入本系统,均不成功,系统将关闭\" DBapi_Disconnect End Else
Exit Sub End If End If
'判断密码是否正确
If MyUser.GetPwd(NameKey) <> PasswordKey Then MsgBox \"密码错误\"
Try_times = Try_times + 1 If Try_times >= 3 Then
MsgBox \"您已经三次尝试进入本系统,均不成功,系统将关闭\" DBapi_Disconnect End Else
Exit Sub End If End If
'登录成功,将当前用户的信息保存在CurUser中 CurUser.UserName = MyUser.UserName '关闭自己 Unload Me
End Sub
系统主界面设计。如图5.12
- 45 -
哈尔滨理工大学学士学位论文
图5.12
地域管理模块界面设计。如图5.13
图5.13
部分源代码:
Private Sub Cmd_OK_Click() Dim TmpId As Integer
If Trim(txtArea) = \"\" Then MsgBox \"请输入地域名称\" Exit Sub End If
'将用户输入的输入赋值到MyArea对象中 With MyArea
- 46 -
哈尔滨理工大学学士学位论文
.AreaName = Trim(txtArea) .AreaType = CurArea.AreaType + 1 .UpperId = CurArea.AreaId If Modify = False Then '插入
If .In_DB(Trim(txtArea), .UpperId) = True Then MsgBox Trim(txtArea) + \" 已经存在\" Exit Sub End If
TmpId = .Insert
'生成TreeView控件中新结点的关键字 Tmp_Key = Chr(Asc(\"a\") + .AreaType) Tmp_Key = Tmp_Key + Trim(Str(TmpId))
FrmAreaMan.TreeView1.SelectedItem.Image = 1
FrmAreaMan.TreeView1.SelectedItem.ExpandedImage = 2 FrmAreaMan.TreeView1.SelectedItem.SelectedImage = 3 SetTmpNode = FrmAreaMan.TreeView1.Nodes.Add(FrmAreaMan.TreeView1.SelectedItem.Key, _
tvwChild, Tmp_Key, .AreaName, 4, 5) TmpNode.Selected = True Else '修改
If CurArea.AreaName <> Trim(txtArea) Then If .In_DB(Trim(txtArea), .UpperId) = True Then MsgBox Trim(txtArea) + \" 已经存在\" Exit Sub End If End If
Call .Update(CurArea.AreaId)
If CurArea.AreaName <> Trim(txtArea) Then
FrmAreaMan.TreeView1.SelectedItem.Text = Trim(txtArea) End If
CurArea.AreaName = Trim(txtArea) End If End With Unload Me End Sub
结构管理(即客户类型,客户职务管理)界面设计。图5.14
- 47 -
哈尔滨理工大学学士学位论文
图5.14
部分源代码:
Private Sub Cmd_Add_Click() Dim TmpName As String Dim TmpId As Integer
If Trim(txtType) = \"\" Then MsgBox \"请输入客户类别\" Exit Sub End If
TmpName = MakeStr(txtType)
If MyType.In_DB(TmpName) = True Then MsgBox Trim(txtType) + \" 已经存在\" Exit Sub End If
MyType.TypeName = TmpName TmpId = MyType.Insert List1.AddItem TmpName
ReDim Preserve Arr_CltTypeId(List1.ListCount) ReDim Preserve Arr_CltTypeName(List1.ListCount) Arr_CltTypeId(List1.ListCount - 1) = TmpId
Arr_CltTypeName(List1.ListCount - 1) = TmpName List1.ListIndex = List1.ListCount - 1 If List1.ListIndex = 0 Then Cmd_Up.Enabled = False End If
Cmd_Down.Enabled = False txtType = \"\"
txtType.SetFocus End Sub
Private Sub Cmd_Del_Click() Dim TmpOrg As String
- 48 -
哈尔滨理工大学学士学位论文
If List1.ListIndex = -1 Then MsgBox \"请选择要删除的客户类别\" Exit Sub End If
TmpOrg = MyOrg.TypeId_In_CltOrg(Arr_CltTypeId(List1.ListIndex)) If TmpOrg <> \"\" Then
MsgBox \"客户类别在客户- \" + Trim(TmpOrg) + \" -中使用,为保证数据完整性,不允许删除此客户类别\" Exit Sub End If '删除
MyType.Delete (Arr_CltTypeId(List1.ListIndex)) '调整数组
i = List1.ListIndex
Do While i < List1.ListCount
Arr_CltTypeId(i) = Arr_CltTypeId(i + 1)
Arr_CltTypeName(i) = Arr_CltTypeName(i + 1) i = i + 1 Loop
'从列表中删除,在单击“确定”按钮时,再将结果保存到数据库中 i = List1.ListIndex
List1.RemoveItem List1.ListIndex If i < List1.ListCount - 1 Then List1.ListIndex = i Else
If List1.ListCount > 0 Then List1.ListIndex = i - 1 End If End If List1_click txtType = \"\" End Sub
客户管理模块界面设计。如图5.15
- 49 -
哈尔滨理工大学学士学位论文
图5.15
部分源代码:
Private Function Check() As Boolean If CurArea.AreaId <= 0 Then MsgBox \"请选择地域\" Check = False Exit Function End If
If Trim(txtOrg) = \"\" Then MsgBox \"请输入客户单位\" txtOrg.SetFocus txtOrg.SelStart = 0
txtOrg.SelLength = Lench(Trim(txtOrg)) Check = False Exit Function End If
If ComboType.ListIndex < 0 Then MsgBox \"请选择客户类型\" ComboType.SetFocus Check = False Exit Function End If
Check = True End Function
- 50 -
哈尔滨理工大学学士学位论文
Private Sub Cmd_OK_Click() If Check = False Then Exit Sub End If
With MyOrg
.OrgName = MakeStr(txtOrg)
.TypeId = MyType.GetId(Trim(ComboType.Text)) .Address = MakeStr(txtAddr) .Postcode = MakeStr(txtCode) .AreaId = CurArea.AreaId If Modify = False Then .Insert Else
.Update (OriOrgId) End If
End With TmpOk = True Unload Me End Sub
客户名录管理模块。如图5.16
图5.16
部分源代码:
Private Sub Cmd_OK_Click() Dim TmpCltId As Integer
- 51 -
哈尔滨理工大学学士学位论文
If CurOrg.OrgId <= 0 Then MsgBox \"请选择客户单位\" Exit Sub End If
If Trim(txtName) = \"\" Then MsgBox \"请输入联系人\" txtName.SetFocus txtName.SelStart = 0
txtName.SelLength = Len(Trim(txtName)) Exit Sub End If
If ComboJob.ListIndex < -1 Then MsgBox \"请输入客户职务\" ComboJob.SetFocus End If
'判断联系人是否已经存在
If Modify = False Or (OriOrg <> Trim(CurOrg.OrgName) Or OriClt <> Trim(txtName)) Then
If MyClt.In_DB(CurOrg.OrgId, Trim(txtName)) = True Then
MsgBox \"客户“\" + Trim(Lbl_Org) + \":\" + Trim(txtName) + \"”已经存在,请重新输入\" txtName.SetFocus txtName.SelStart = 0
txtName.SelLength = Len(txtName) Exit Sub End If End If
MyClt.OrgId = CurOrg.OrgId MyClt.CltName = Trim(txtName) MyClt.Sex = Trim(ComboSex.Text)
MyClt.JobId = MyJob.GetId(ComboJob.Text, MyType.GetId(OriType)) MyClt.Office = Trim(txtOffice) MyClt.Mobile = Trim(txtMobile) MyClt.Home = Trim(txtHome)
MyClt.Level = ComboLevel.ListIndex + 1 MyClt.Address = Trim(txtAddr) MyClt.Postcode = Trim(txtCode) MyClt.Id_Card = Trim(txtCard) If Modify = False Then MyClt.Insert Else
TmpCltId = MyClt.GetId(MyOrg.GetId(OriOrg), OriClt)
- 52 -
哈尔滨理工大学学士学位论文
Call MyClt.Update(TmpCltId) End If
ClickOK = True Unload Me End Sub
商业往来模块界面设计。如图5.17
图5.17
部分源代码:
Private Sub Cmd_OK_Click() Dim TmpCltId As Integer If CurOrg.OrgId <= 0 Then MsgBox \"请选择客户单位\" Exit Sub End If
If ComboName.Text = \"\" Then MsgBox \"请输入联系人\" Exit Sub End If
With MyBusi .BusiDate = lblDate
.CltId = MyClt.GetId(CurOrg.OrgId, MakeStr(ComboName.Text)) .BusiType = ComboType.Text .Amount = Val(txtAmount)
.Describe = MakeStr(txtDescribe) .Operator = MakeStr(txtOperator)
- 53 -
哈尔滨理工大学学士学位论文
If Modify = False Then .Insert Else
.Update (OriBusiId) End If End With
ClickOK = True Unload Me End Sub
Private Sub ComboOrg_GotFocus() ComboName.SetFocus
'确定选择客户单位窗体的位置
FrmOrgSel.Left = Me.Left + ComboOrg.Left + 350
FrmOrgSel.Top = Me.Top + ComboOrg.Top + ComboOrg.Height + 450 FrmOrgSel.Show 1
'将读取的客户单位数据显示到窗体中 If FrmOrgSel.ClickOK = True Then CurArea.GetInfo (CurArea.AreaId)
ComboOrg.Text = MyArea.GetName(CurArea.UpperId) + \" \" CurArea.AreaName _
+ CurOrg.OrgName Lbl_Addr = CurOrg.Address Lbl_Postcode = CurOrg.Postcode
'因为选择了新的单位,所以要更新联系人列表 ComboName.Clear
MyClt.LoadClt (CurOrg.OrgId) i = 0
Do While Arr_Contact(i) <> \"\"
ComboName.AddItem Arr_Contact(i) i = i + 1 Loop
If ComboName.ListCount > 0 Then ComboName.ListIndex = 0 End If End If End Sub
用户管理模块界面设计。如图5.18
- 54 -
+ 哈尔滨理工大学学士学位论文
图5.18
部分源代码:
Private Sub Cmd_OK_Click() If Trim(txtUserName) = \"\" Then MsgBox \"请输入用户名\" txtUserName.SetFocus Exit Sub End If
If Len(txtPass) < 6 Then
MsgBox \"密码长度不能小于6\" txtPass.SetFocus txtPass.SelStart = 0
txtPass.SelLength = Len(txtPass2) Exit Sub End If
If txtPass <> txtPass2 Then
MsgBox \"密码和确认密码不相同,请重新确认\" txtPass2.SetFocus txtPass2.SelStart = 0
- 55 -
哈尔滨理工大学学士学位论文
txtPass2.SelLength = Len(txtPass2) Exit Sub End If
With MyUser
If Modify = False Or OriUser <> Trim(txtUserName) Then If .In_DB(Trim(txtUserName)) = True Then MsgBox \"用户名已经存在,请重新输入\" txtUserName.SetFocus txtUserName.SelStart = 0
txtUserName.SelLength = Len(txtUserName) Exit Sub End If End If
.UserName = MakeStr(txtUserName) .Pwd = MakeStr(txtPass) If Modify = False Then .Insert Else
.Update (OriUser) End If
If CurUser.UserName <> \"Admin\" Then CurUser.UserName = Trim(txtUserName) CurUser.Pwd = Trim(txtPass) End If End With Unload Me End Sub
5.6 本章小结
本章主要是系统实施的部分,简单阐述了系统运行的软硬件环境,并阐述了系统ODBC的配置,接下来对系统界面的设计,以及部分源代码。
- 56 -
哈尔滨理工大学学士学位论文
结论
CRM不仅仅是一个管理名词和管理概念,更是一套人机交互系统和一种解决方案,它能帮助企业更好地吸引潜在的客户和留住最有价值的客户。统计数据表明,现代企业57%的销售额是来自12%的重要客户,而其余58%中的大部分客户对企业是微利甚至是无利可图:开发一个新客户的成本是留住一个老客户的5倍,而流失一个老客户的损失需要争取到10个新客户才能弥补。因此企业要想获得最大程度的利润,就必须对不同客户采取不同的策略,CRM系统正是达到这一目的一个好工具和好帮手。
本企业客户资源管理系统是CRM系统中的一个模块,是对企业客户资源基本信息进行管理的系统,为CRM系统其他功能模块的运行提供方便的客户信息的查询。
首先本文简要介绍了CRM(Customere Relationgship Management)的产生的背景、CRM的内涵、CRM的现状及发展以及CRM与ERP的关系,为后面的系统设计奠定了理论基础,给读者一个基本的概念,使读者对于CRM有初步的了解。
由于本客户资源管理系统是基于三层C/S体系结构的,所以本文对三层C/S体系结构进行了简要地介绍,并对比了传统的两层C/S体系结构与三层C/S体系结构的缺点和优势。
有了这些理论基础做铺垫,本文进而分三个方面对本系统进行需求分析。本文先后从用户需求、功能需求、系统性能需求三个方面分析本系统的开发需求,阐述了现存的问题,阐明了系统的开发目标。
通过系统分析,即系统开发目标,设计系统的基本层次结构,划分系统功能模块,分析系统的工作流程,并进行数据库设计,设计数据库逻辑模型和表结构,为系统实施做好了充足的准备。
有了前面的准备工作,就可以顺利进行系统实施。首先对系统的开发工具Visual Basic6.0及数据库管理系统Microsoft SQL Server2000进行了简要介绍,并说明了系统运行的软硬件环境,对开发系统所用的基本模块简要说明,并说明了创建和配置ODBC的方法和步骤。设计系统的工作界面。
客户是企业生存和发展的荃础,市场竞争的实质其实就是争夺客户资源。随着这一竞争的不断加剧,将促使更多的企业投入到CRM当中,学习如何从客户的角度来重新设计,从而推动CRM系统的不断发展和完善.企业将会越来越多地利用CR加I,进行客户需求分析、客户数据分析、市场预测等,并为此制定相应的计划和行动,达到为客户提供最好的服务的目的。
- 57 -
哈尔滨理工大学学士学位论文
致谢
在整个学习和完成论文过程中,我得到了我的指导教师李怡老师的悉心指导,李老师严谨的治学态度、不断进取的工作作风。深厚的理论知识和丰富的实践经验以及对我的关怀给我留下了深刻的印象,使我受益匪浅,在此我表示衷心的感谢!
四年的大学生活,我得到了经济管理学院许多领导和老师的帮助教导,使我在学识与能力等各方面都得到了很大的提高;同时,在我学习和生活中,同学们也给了我热情的关心与帮助。我得益于他们,深深的感谢他们。
在此我也向那些给予我帮助同学和朋友致以最诚挚的谢意!
- 58 -
哈尔滨理工大学学士学位论文
参考文献
[1] 王光宁《客户关系管理(CRM):网络经济中的企业管理理论和应用解决
方案》 经济管理出版社2001/6 [2] 薛华成等,《管理信息系统》第三版,北京,清华大学出版社,1999 [3] 弗雷德里克.纽厄尔[美]《网络时代的顾客关系管理(李安方,译
者)》.北京:华夏出版社,2001/10
[4] 宋华.《CRM客户关系管理:企业制胜之道》.工业企业管理,2001:4. [5] (美)罗纳德.5.史威福特著,杨东龙等译.《客户关系管理》.2001. 北京:中国经济出版社.
[6] 王广宇《客户关系管理(C RM):网络经济中的企业管理理论和应用解
决方案》 经济管理出版社2001 .6
[7] (美)约翰·麦凯恩(John Mckean)《信息大师:客户关系管理的秘密》 上海交通大学出版社2001 .1
[8] 任甲林.《企业管理软件的需求获取力法》.中国系统分析员,2002.3. [9] 赵春泉.《客户/服务器开发工具实用手册》.清华大学出版社.1997 [11] 侯云峰,刘睿,杨正洪,张立平.《三层次Client/Server》.电子工
业出版社.2000.6
[12]张海蟠.《软件工程导论(修订版)》.清华大学出版社.1992
[13]李晓喆,张晓辉,李祥胜.《SQL Server2000管理及应用系统开发》.
人民邮电出版社 .2002-12 [14](美)Anthony T.Mann,贺民,王雷等译.《轻松学用SQL
Server2000》.电子工业出版社.2001-6
[15]Frederick, F.Reichheld. The Loyalty Effect: The Hidden Force Behind Growth, Profit, and lasting value[M].Boston Massachusetts Harvard business School Press, 1996. [1]
[16]Alan W. H. Grant, Leonard A. Schlesinger .Realize your Customerers Full Profit Potential [J].HBR, September-octomber , 1995,(1). [17]Cronroos C. Value-driven relationship marketing: fromproduct to resources and competencies[J].Joural of Marketing Management, 1997,(13).
- 59 -
哈尔滨理工大学学士学位论文
附录:英文文献
Legal pitfalls of CRM production and
distribution
Traceable and comparable measurements are important cornerstones in consumer protection, in preservation of man and nature, free and fair trade and economic development. The globalisation of the processes involved has also brought about an increasing necessity to standardize measurements on an international scale and to assure their quality, e.g. by the use of certified reference materials (CRMs). As example, legal limits or threshold values for banned or restricted chemical substances can only be enforced when the necessary calibration standards and matrix CRMs are available for the respective analyses.
One single reference material producer (RMP), however, cannot cover the broad range of chemical, biochemical and other measurements that require CRMs. Consequently, an awareness of the need to co-operate between the different CRM producers has been growing; an expression of which is the continuous and successful work of the ISO Committee on Reference Materials(ISO/REMCO). The establishment of quality requirements for both the RMP and the provided materials, but also the implementation of guidance for the use of CRMs, has had a major impact on the global measurement scene. Today, several important RMPs have already, or are striving for, an accreditation according to ISO-Guide 34.
While the quality requirements are set, there are still a number of legal pitfalls that hamper the distribution and use of CRMs. Other regulations and restrictions, e.g.concerning the liability and legal responsibilities of RMP exist, but are ignored by “occasional” reference material producers. This paper highlights the most frequently encountered problems, mentions the different
- 60 -
哈尔滨理工大学学士学位论文
aspects of them and tries to trigger a discussion among RMPs and CRM-users, which might lead to an improvement of the current situation. Several million chemical substances are used commercially world-wide and every year several thousands of new ones enter the market. In order to survey threshold and limit values, e.g. in case of restricted or banned substances, laboratories require suitable calibration standards and CRMs for method development, validation and quality control. The number of producers of high quality CRMs is rather limited as the activity is a typical pre-market activity, which can often only be afforded by public or semi-public bodies, such as the US National Institute of Standards and Technology (NIST), the EU Institute for Reference Materials and Measurements(IRMM) or the National Metrology Institute of Japan(NMIJ).
As a matter of fact, both producers and users (measurement laboratories, universities and research institutes,regulators and control agencies, industrial laboratories,accreditation bodies) complain about the lack of worldwide availability and free circulation of CRMs as a consequence of problems related to their transport, export and/or import in certain countries. The underlying reason for this is that CRMs are mostly treated and legislated by authorities as bulk quantities of their matrix substance (human, animal or vegetal material, chemical substance,explosive, drug, etc) and not as a mandatory tool needed to perform correct (often legal regulatory control!) measurements. CRMs are frequently subject to the same technical trade barriers as they should help to overcome.
Although since 1 January 2002, CRMs have their ownCustom Tariff Number (3822.00) [1] and should thus be considered as specific items, it still happens that national custom authorities hamper their dispatch and import because they consider them as their matrix product. As an example, Switzerland recently prohibited the dispatch of CRM for the determination of nitrogen in fertilisers(20 g!), because this European CRM (BCR-178) is forbidden as fertiliser in Switzerland. Similarly, the US FDA recently reported the problems
- 61 -
哈尔滨理工大学学士学位论文
in importing suitable raw material for the production of a botanical CRM(Ephedria sinica Staff) [2]—it took more than a year to overcome all problems related to import/export requirements!
An enquiry on this issue, organised within ISO/REMCO in 2002, indicates that if transport regulations related to CRM-shipment are well established, existing problems are more generally related to national customs problems. This confirms experience gained at IRMM: since the creation of the single market, this type of problem is barely encountered when dispatching CRMs within the European Union, but it is still frequent when exporting outside. Possibly confusion still exists in the mind of custom authorities about what CRMs are, especially when CRMs are named according to their matrix or to their most prominent component (e.g. “PCBs inoils”, “human blood” or “dioxins in milk”).
The official definition of a CRM “for the purpose of heading 3822” is: Reference materials which are accompanied by a certificate which indicates the values of the certified properties, the methods used to determine these values, and the degree of certainty associated with each value and which are suitable for analytical, calibrating or referencing purposes. The WCO explanatory notes further specify that “with the exception of the products of Chapter 28 or 29, for the classification of certified reference materials, heading 3822 shall take precedence over any other heading in the nomenclature”. In other words, all certified analysis or measurement samples documented by a certificate, and which have been conceived to be used to calibrate, validate, control or monitor measurement procedures and/or processes should be classified under Customs Tariff Number 3822.00. However, some aspects of the explanatory note are still open for interpretation, and therefore further clarification of the definition of CRMs in the guide for custom inspectors would certainly improve the situation.
Compliance with shipment regulations of individual countries for specific types of reference materials has to be fulfilled. But, frequently laws and regulations concerning hazardous materials are written without consideration of
- 62 -
哈尔滨理工大学学士学位论文
the specific characteristics of CRMs. They are mostly treated and legislated by authorities as bulk amounts of their matrix substance (human, animal or vegetal material, chemical substance, explosive, drug,etc.) and not as—sometimes even legally—a mandatory tool needed to perform correct measurements. Thereby, it is fully ignored that: The content of the nocive or sensitive material present in the CRM is generally insignificantly low. CRMs classified as hazardous materials such as narcotic drugs, explosives, poisons and other dangerous substances only contain amounts of substances or solutions of them in concentrations which are such that these substances can neither be considered as dangerous nor that they can be misused as narcotic drugs,explosives or poisons.
The volume of CRMs containing flammable and/or toxic solvents is generally small, mostly less than 30 mL. Many CRMs consist of milligram, microgram or even lower levels of substances in solution, e.g. in few millilitres of methanol. However, methanol is classified as flammable and toxic and must therefore be transported according to ADR as LQ 0 (no limited quantity, no exception from the ADR-regulations). In Germany it was possible to make an additional decree to ADR, the “Gefahrgut-Ausnahmeverordnung” (hazardous material exception decree), with exceptions e.g. for materials of the ADR-classes 3 (flammable liquid materials), 6.1 (toxic materials) and 8 (corrosive materials) up to 5 kg or 5 L. This is an example to be followed by other authorities.CRMs of biological origin are neither part of the food chain, nor are they used in clinical treatments. Moreover, biological CRMs are generally processed in a form that is inappropriate for consumption.CRMs are exclusively used for analytical or physical measurement purposes, and therefore the fact they may contain pathogens is not very relevant.
- 63 -
因篇幅问题不能全部显示,请点此查看更多更全内容