版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年4月19日企业客户关系管理系统的设计与实现文档仅供参考,不当之处,请联系改正。学校代码10126学号w1043927分类号TP399:F279.23密级工程硕士学位论文企业客户关系管理系统的设计与实现研究生:张程丽指导教师:班志杰学院:计算机学院领域:研究方向:计算机技术年原创性声明本人声明:所呈交的学位论文是本人在导师的指导下进行的研究工作及取得的研究成果。除本文已经注明引用的内容外,论文中不包含其它人已经发表或撰写过的研究成果,也不包含为获得内蒙古大学及其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。学位论文作者签名:张程丽指导教师签名:日期:4月1日日期:在学期间研究成果使用承诺书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:内蒙古大学有权将学位论文的全部内容或部分保留并向国家有关机构、部门送交学位论文的复印件和磁盘,允许编入有关数据库进行检索,也能够采用影印、缩印或其它复制手段保存、汇编学位论文。为保护学院和导师的知识产权,作者在学期间取得的研究成果属于内蒙古大学。作者今后使用涉及在学期间主要研究内容或研究成果,须征得内蒙古大学就读期间导师的同意;若用于发表论文,版权单位必须署名为内蒙古大学方可投稿或公开发表。学位论文作者签名:张程丽指导教师签名:日期:4月1日日期:企业客户关系管理系统的设计与实现摘要客户关系管理系统集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,能够解决企业或组织所面临的问题。该系统根据鑫鑫装饰公司所属客户的实际管理情况进行编写的,为了方便企业对客户来往业务及客户关系信息情况进行集中的查询与管理工作以及满足不同管理层次对各种信息的需求,因此,本文设计和实现了该企业客户关系管理系统。本系统采用三层架构设计,使用VisualBasic6.0和Access数据库进行开发。本文以客户为中心,以管理为目的,经过E-R图表征关键模块的实体及实体之间的联系,根据事件发生的前后顺序及数据流向画出了系统流程图,详细进行了功能需求分析、角色需求分析等,并对现存问题给出解决方案。本文主要包括基本信息管理模块、客户管理模块、商业往来模块、统计模块、销售模块和用户管理模块等六个模块。其中在商业往来和统计模块给出了详细的设计,实现了预期的目的,在模块实现方面给出了部分窗口实现的用户视图和实现代码,并对系统进行了详细的单元测试和集成测试。该系统经过对用户信息资源的整合,在企业内部达到资源共享,从而为客户提供更快速周到的优质服务,吸引和保持更多的客户。关键词:管理系统,数据库,VisualBasicDesignandimplementationofenterprisecustomerrelationshipmanagementsystemAbstractCustomerrelationshipmanagementsystem,managementscience,informationscience,systemscience,moderncommunicationtechnologyandcomputertechnology,cansolvetheproblemsfacedbyenterprisesororganizations.TheactualmanagementofthesystemisbasedonXinxindecorationcompanycustomerisprepared,forconvenienceofclientsbusinessenterpriseandcustomerrelationshipinformationqueryandmanagementworkandmeettheneedsofdifferentlevelsofmanagementofallkindsofinformationdemand,therefore,thispaperdescribesthedesignandimplementationofcustomerrelationshipmanagementsystemfortheenterprise.Thethreelayerarchitecturedesignisadoptedinthissystem,usedforthedevelopmentofVisualBasic6andAccessdatabase.Thethreelayerarchitecturedesignisadoptedinthissystem,developedusingVisualBasic6andAccessdatabase.Thisarticletakethecustomerasthecenter,formanagementpurposes,thekeymodulesoftheE-Rdiagramrepresentationentityandentityrelationship,accordingtotheeventsequenceandthedatatodrawtheflowchartofthesystem,detailedanalyzesthefunctiondemand,theroleofdemandanalysis,theexistingproblemsandsolutionsaregiven.Thispapermainlyincludesthebasicinformationmanagementmodule,customermanagementmodule,businessmodule,statisticsmodule,salesmoduleandusermanagementmodulesixmodules.Inthecommercialexchangesandstatisticsmodulegivesadetaileddesign,toachievethedesiredpurpose,themoduleisauserviewwindowandtherealizationofthecode,andthesystemoftheunittestingandintegrationtestingindetail.Thesystemthroughtheintegrationoftheinformationresources,toachievethesharingofresourceswithintheenterprise,soastoprovideamorerapidandthoughtfulserviceforcustomers,maintainandattractmoreandmorecustomers.Keywords:Managementsystem,Database,VisualBasic目录第一章绪论 11.1主要背景和意义 11.2本文的主要工作 2第二章系统分析 32.1可行性分析 32.2需求分析及系统用例图 32.2.1角色需求分析 32.2.2功能需求分析 42.2.3系统用例图 5第三章系统总体设计 93.1三层架构 93.2系统总体模块设计 93.2.1总体模块 93.2.2客户基本信息模块 103.2.3客户管理模块 103.2.4商业往来管理模块 113.2.5统计模块 113.2.6系统用户管理 113.3系统流程图 113.4业务流程图 12第四章数据库设计 134.1数据库的概念结构设计 134.2数据库的逻辑设计 154.3数据库的表单设计 154.4表间关系图 19第五章系统功能实现 205.1软硬件环境 205.1.1硬件环境 205.1.2软件环境 205.2通用程序块 205.3登录窗体和系统主界面的实现 205.3.1登录窗体 205.3.2主界面 215.4功能模块的实现 255.4.1客户信息跟踪管理 255.4.2商业机会管理 265.4.3客户基本信息模块的实现 345.4.4客户信息管理模块的实现 375.4.5统计模块 44第六章系统测试 496.1系统用户管理测试 496.1.1用户登录单元测试 496.1.2添加用户单元测试 496.1.3用户管理集成测试 506.2客户信息管理模块测试 516.2.1客户基本信息管理模块单元测试 516.2.2客户联系人管理模块单元测试 52致谢 54参考文献 55第一章绪论1.1主要背景和意义信息在社会和经济的发展中所起的作用越来越为人们所重视。信息资源的开发利用水平成为衡量一个国家综合国力的重要标志之一。计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类信息系统对数据管理的要求,在文件系统的基础上发展基础数据库系统,数据库方法针对事物处理中大量数据管理需求。客户关系管理系统的理念是基于对客户的尊重,要有统一的平台能够与客户进行沟通,客户反馈率及员工与客户接触的效率和要提高且需要企业对整个客户生命周期有完整地认识。一个较好的客户关系管理系统至少应包括以下功能:经过传真、Internet、电话、网络通讯工具、E-mail等多种方式与客户保持沟通;使公司员工全面了解客户关系,保证客户根据需求进行交易,记录获得的客户信息,在企业内部做到客户信息共享;对市场计划进行整体规划和评估;跟踪各种销售活动进行;经过积累大量的动态资料,全面分析市场和销售情况。正是在这种背景下开始了本系统的研发。
鑫鑫装饰公司要想在现在日益激烈的市场竞争中获得优势,企业领导人已经深刻认识到有效的管理客户关系的重要性,可是当前还没有全面的实施客户关系管理。该装饰公司是一个刚开始发展不久的小企业,因此在有效的发展壮大自己的同时,当前在企业客户关系管理系统方面主要存在如下问题:1)该企业相比客户而言可能更加注重的是如何提高企业效益和用于扩大再生产,而对于客户的重视不够,还没有形成规范的系统流程。2)该系统只实现了基本的客户关系管理功能,系统在某些方面不够完善。例如只进行了一般的统计,没有进行详细的决策分析。3)关于客户关系管理方面的技术支持比较薄弱;4)鑫鑫装饰公司仅投入了小部分资金进行系统的开发,因此该系统在功能方面较为单调,仅为单机版的客户关系管理系统,不能在网络上得到资源的共享,且缺少专门的维护人员进行系统的维护。为了使现有企业客户关系管理更好的发展,我们应该着力解决现在存在的问题。首先,应该转变企业管理的文化理念,让人们特别该企业的领导着正确的认识客户关系管理,明白客户资源是公司的最大财产,要更高的追求以客户为中心;其次,在系统的实现发面能够聘请专业人员进行技术指导,尽可能对系统进行完善,从而使企业在横向职能机构的设置方面得到加强,加强多部门间的联系,为公司创造更大的利益;再次,在软件的开发与实现中要加强团队合作,为客户提供优良的服务,提升客户满意度,从而提高客户管理水平,为企业创造更多的效益;另外,我们应该充分利用网络的有效资源,不断完善系统,使之早日能在网络上得到资源的共享。1.2本文的主要工作该企业客户关系管理系统以项目流程为主线,以客户为中心,以加强管理为主要,使中小企业能有效的掌握公司所有的客户资料,帮其改进对现有客户的管理混乱状态,加强企业与客户的联系,并有效的挖掘潜在客户。让客户成为朋友是本客户关系管理系统所追求的境界,该系统经过对用户信息资源的整合,在企业内部达到资源共享,从而为客户提供更快速周到的优质服务,吸引和保持更多的客户。该系统总体来讲主要分为以下几个个功能模块:客户基本信息模块、客户信息管理模块、商业往来管理模块、系统用户管理等模块。是一个按统一规范进行业务处理和数据管理的工作平台,提供各类不同管理层次所需的各种相关信息,实现对客户的多方位、综合有效的管理。本文的主要工作包括以下几个方面:第一章、系统的研究背景及意义的介绍;第二章、系统分析;第三章、在需求分析的基础上,对该系统进行总体设计;第四章、根据总体设计对该系统的数据库进行设计;第五章、系统各功能模块的实现;第六章、系统测试;第二章系统分析2.1可行性分析可行性研究是软件开发过程中的第二个阶段,它是在第一个阶段——问题定义的基础上进行的。可行性研究是以相对短的时间和相对低的成原来确定给定的问题是否有解,主要从以下几个方面进行研究。(1)经济可行性采用客户信息管理系统可取代原系统的传统单据传递工作,减少人工开支,节省资金,而且可大大提高信息量的取得,缩短信息处理周期,提高市场信息的利用率,从而使客户的管理水平上一个新台阶。(2)技术可行性该系统所要求的硬件设备是市场上销售且价格较低的,有的甚至能够使用故有的设备,而在软件上,采用Windows系列的操作系统,采用ACCESS数据库用于数据库管理系统,在MIS开发中已大量使用这些软件,且技术上也比较成熟。因此该系统的开发在技术上是可行的。(3)操作可行性系统在实现之后,要由1~2名计算机专业技术人员看管服务器和进行技术支持。用户只需坐在电脑前,轻松实现对往来客户的管理。(4)管理可行性企业的客户能够分布全国各地,因此公司要为客户建立资料档案,便能够轻松的对其进行管理。2.2需求分析及系统用例图需求分析是软件开发中最重要的环节,它直接影响着项目的成功与失败。需求是产品的根源,需求工作的优劣对产品影响最大。需求如此重要,那么什么是需求呢?需求就是那些必须在开始构建产品之前发现的东西,产品必须完成的事情以及必须具备的品质。2.2.1角色需求分析角色需求分析的主要目标是从分析人员的角度看新项目开发有无必要和可能。对本系统经过初步调查,确定了本系统的用户群是各企业负责客户资源管理的员工。这些用户能够分为普通用户、系统管理员。本系统就是为普通用户、系统管理员提供一个信息查询和管理的平台。对用户群进行分析。(1)普通用户需求这里所说的普通用户是指具有一定权限限制的用户群。她们只能以普通用户的身份登入系统,之后能够对客户信息和商业往来信息进行添加,修改和删除,不能对基本信息做任何的操作,包括地域信息,客户类别信息,行业分类信息,职务名称信息,项目类型和销售人员信息。需求所有信息的更新、添加和删除都由系统管理员操作。总体来说,该系统共分为六个模块:基本信息管理,客户信息管理,商业往来管理、销售管理、统计模块和系统用户管理模块。对于一个企业来讲每天都可能发生一些变化,管理员有模块管理的权限能够随时对本系统的信息进行管理和更新。系统管理员管理系统用户、角色与权限,保证系统正常运行。负责所有信息的更新、添加和删除都由系统管理员操作。总的来说,分为以下几个模块:基本信息管理,客户信息管理,商业往来管理、统计管理、销售管理、系统用户管理等。对于一个企业来讲每天都可能发生一些变化,管理员有模块管理的权限能够随时对本系统的信息进行管理和更新。销售人员对客户基本信息及客户的需求进行采集,将采集好的信息交给销售主管。接收售后服务信息,以便公司做好售后服务经及拜访等工作的开展。销售人员能够对销售信息进行添加、修改、删除、查询等操作。(4)销售主管:对客户服务进行分配,分析客户信息,发现潜在客户。并对特定销售机会制定客户开发计划,指定销售人员进行销售。2.2.2功能需求分析1.功能划分(1)客户基本信息的管理(2)对客户进行管理(3)商业往来情况的管理(4)统计功能(5)对销售进行管理(6)对用户进行管理2.功能描述鑫鑫装饰公司是一个刚起步不久的小型企业,针对该系统的功能划分,现对其每个功能进行详细的需求分析。(1)基本信息管理:该模块是针对鑫鑫公司的客户进行的操作,分别能够按地域信息管理,按客户类别管理,按行业分类管理,按职务名称管理,按项目类型管理和按销售人员管理。将客户的基本信息按分类管理,便于工作人员的查找、联系等操作。(2)客户管理:该模块也是主要针对鑫鑫公司客户进行的,能够对客户单位信息管理和联系人管理。(3)商业往来管理:该部分是本系统的核心功能之一,分别能够按合作信息进行管理和按客户信息进行管理。(4)统计模块:分别能够按照类型统计、按照区域统计、按照行业统计和按照销售人员统计。这样能够直观明了的分析出成交的订单情况,便于管理人员对公司下一步工作做出决策。(5)销售管理模块:主要针对对销售信息的添加、修改、查询等操作。(6)用户管理:实现用户权限及密码的管理。3.功能结构图根据上述功能需求分析,做出鑫鑫装饰公司的具体功能结构图如下图2-1所示:图2-1系统功能结构图Figure2-1Thesystemfunctionstructurediagram2.2.3系统用例图\o"用例图"用例图(\o"usecasediagram"usecasediagram)就是由主角、\o"用例"用例以及它们之间的关系构成的图。说明了\o"用例模型"用例模型中的关系。用例图由参与者(Actor)、用例(\o"UseCase"UseCase)、系统边界、箭头组成,用画图的方法来完成。用例图从用户的角度而不是开发者的角度来描述软件产品的需求,分析团建产品所需的功能和行为。下图为该系统的一些用例图。用户管理模块主要是供系统使用的,在该模块中系统管理员为系统用户的信息进行添加、修改、删除和查询,在这个过程中,系统管理员也为每个系统用户分配了相应的权限,方便用户在自己的业务范围内处理信息,用例图如下:图2-2管理员用例图Figure2-2TheAdministratorsusecasediagram普通员工只对自己负责的产品、客户进行管理及相关报表的打印,用例图如下:图2-3普通用户用例图Figure2-3commonusecasemap销售人员负责对销售信息进行添加、修改、删除和查询等操作,下图2-4为销售人员的用例图:图2-4销售人员用例图Figure2-4Salespersonnelintheusecasediagram管理信息系统(本系统就属于管理信息系统)是当前应用最广泛的一类计算机软件,而在这种类型系统的开发过程中或开发工作完成之后,用户需求经常改变,因此这类系统的开发非常需要面向对象的开发方法学以适应系统功能需求不稳定的特点。面向对象分析(OOA)的主要任务是对问题域进行分析,找出问题域中的对象,确定其属性和操作以及对象之间的关系,提出问题域的对象模型。用例模型用于需求分析阶段,描述系统中每个参与者(Actor)进行的活动。用例图中使用椭圆表示使用案例,人形表示角色,箭头表示通讯关系,使用案例是由角色启动的。对于本系统来说,用例图描述了不同角色的人员经过系统进行的不同活动。下面给出本系统的用例图,如图所示。图2-5系统用例图Figure2-5Thesystemusecasediagram系统管理员是模块的主要管理者,登录系统后,系统管理员除了具有普通用户的查询功能外,还要负责对各个模块的管理和维护。系统管理员要对各个模块的信息进行更新,添加,修改,删除等操作。对于这个系统只有管理员有更新各个模块信息的权限。管理员有固定用户名和密码,如果用户名或密码不对,系统自动提示。第三章系统总体设计3.1三层架构将整个业务应用划分为:业务逻辑层、表现层、数据访问层就是一般意义上所说的三层架构。而“高内聚、低耦合”的思想是区分层次的目的。(1)为什么采用三层C/S架构数据控件绑定是一般程序员在设计数据库应用程序时一般采用的方法,用鼠标轻松画几个控件,再利用鼠标设置所需属性,甚至键盘都不用动,便完成了开发一个数据库应用。虽然这是一种快速的开发数据库应用的方式,但快速并不等同于精通.(2)什么时候使用三层架构按照上面所提到的,对于拥有众多客户端的应用系统或者大型的数据库应用系统,需要使用三层结构.本质上说,这是系统规模的大小,如果系统已达到一定规模,需要多人开发,此时就需要三层结构,一方面是分解工作量,另一方面也是分解技术难度.(3)使用三层架构的好处1、采用3层逻辑架构,有效的将系统划分为界面处理层,业务逻辑层和数据访问层。这样划分层的好处是每一层都具有相对独立的职责,降低了层与层之间的依赖性。即使某一层发生变化,也不会影响其它层,从而确保了架构的稳定性。2、将界面与逻辑代码分开,即使页面发生变化,对业务逻辑不会产生影响。因此,客户端界面使用WinForm或者MobileWebForm时,只需新建用户界面层而直接重用业务逻辑层提供的服务即可。3.2系统总体模块设计3.2.1总体模块根据上述系统功能分析,能够得到如图所示的系统功能模块图.从图中能够看出系统包含客户基本信息模块、客户信息管理模块、统计模块、商业往来管理模块、销售模块和系统用户管理模块等,系统的功能模块如下图3-1所示。图3-1总体模块图Figure3-1Theoverallblockdiagram3.2.2客户基本信息模块该模块的所有操作只有系统管理员才有权限,包括按地域信息分类,客户类别分类,按行业分类,按职务名称分类,按项目类型分类和按销售人员分类。该模块为联系人管理和合同信息管理模块提供依据。地域信息模块:系统管理员能够添加,修改,删除和查询地域信息。客户类别模块:系统管理员能够添加,修改,删除和查询客户类别信息。例如:供应商,销售商。行业分类模块:系统管理员能够添加,修改,删除和查询行业类别信息。例如:电子行业,金融行业。职务名称模块:系统管理员能够添加,修改,删除和查询职务类别信息。例如:销售人员、销售主管、客户经理等。项目类型模块:系统管理员能够添加,修改,删除和查询项目类别信息。例如:软件,硬件。销售人员管理模块:系统管理员能够添加,修改,删除和查询销售人员信息,包括员工姓名,性别,所属部门,职务名称。3.2.3客户管理模块添加基本信息后,就能够添加客户信息了。在客户管理模块中能够对联系人单位和客户联系人进行添加,修改,删除和查看等操作。联系人单位信息包括单位名称,客户类别,所在地域,通信地址,邮政编码,所属行业等内容。在添加联系人单位时,需要选择客户类别,所在地域和所属行业。客户联系人信息包括客户单位,联系人姓名,性别,职务,移动电话等内容。在添加客户联系人信息时,需要选择客户单位和职务。3.2.4商业往来管理模块在商业往来管理模块中,能够对合作信息和客户跟踪信息进行添加,修改,删除和查看等操作。合作信息包括客户信息,联系人信息,项目名称,项目类型和销售人员等内容。在添加商业机会信息时,选择客户单位,联系人,项目类型和销售人员等内容。在客户跟踪管理模块中,能够对客户跟踪回访信息进行添加,修改,删除和查看等操作。客户信息包括商业机会,销售人员,任务日期,拜访方式,预计目的和详细介绍等内容。在添加客户跟踪信息时,需要选择商业机会,销售人员和拜访人员等内容。3.2.5统计模块该模块主要针对订单成交的部分,分别能够按行业统计、按类型统计、按区域统计和按销售人员统计。根据统计结果能够帮助客户经理有效的发掘潜在客户,从而为公司的更好发展出谋划策。3.2.6系统用户管理在本用户管理模块中,共有两个模块即用户信息管理部分和修改密码部分。用户信息管理是针对系统管理员来说,能够修改,添加和删除用户名和密码。修改密码模块则是针对普通用户来而言,能够对自己的密码进行修改。3.3系统流程图本系统首先进行管理员身份确定,核实正确,进入本系统工作流程图如下图3-2所示。图3-2系统流程图Figure3-2systemflowchart在该系统流程图中能够看到,每个用户有3次进行身份认证的机会。若输入的用户名和密码3次都没能与数据库中的数据匹配,则强制退出系统。3.4业务流程图如下图3-3该鑫鑫装饰公司的业务流程图图3-3业务流程图Figure3-3TheBusinessprocessdiagram上图为该公司的业务流程图,产品在进行销售之后,分别进行数据统计和老客户跟踪的操作。根据统计结果,例如在行业统计后,若发现在IT类行业使用本公司的产品较多,这时工作人员能够对其进行线索认定,从而为公司挖掘更多的潜在客户或者创造销售机会,若锁定其为潜在客户则尽可能的使之成为该公司的成交客户,从而为企业创造更大的利润。客户一旦成交,则能够对其进行客户管理即按单位进行管理和按联系人管理。然而在确定销售机会之后,能够经过工作人员的谈判使其变为成功的订单,然后签订合同后进行发货出来,售后方面能够采用电话回访和当面拜访的形式进行。第四章数据库设计4.1数据库的概念结构设计本系统是采用Access来作为数据库服务器。并依据前面提到的数据库设计理论,严格依照第三范式的思想进行了本系统数据库的设计。根据前几章对整个系统的需求分析和概要设计,本系统设计的数据库Labequip中包括的主要实体有:系统用户、客户、销售人员和商业机会。以下为该系统总体的E-R图,及各实体的实体图。职务销售人员销售产品职务销售人员销售产品客户材料公司雇佣签合同1NN1N1姓名性别部门单位类别区域行业地址邮编Figure4-1TheGeneralE-Rgraph客户客户单位名称客户类型通信地址所属行业地域名称邮政编码职务名称项目类型图4-2客户实体图Figure4-2Thecustomerentitygraph销售人员销售人员员工姓名性别所属部门职务名称图4-3销售人员实体图Figure4-3TheSalesstaffentitygraph合同合同项目名称创立人签约日期签约金额联系人项目类型当前进度客户名称销售人员图4-4商业机会实体图Figure4-4TheBusinessentitygraph用户用户用户名密码权限图4-5用户实体图Figure4-5Theuserentitygraph4.2数据库的逻辑设计将上面概念结构设计中的E_R图转换为如下关系模型。客户(单位编号、职务名称、单位名称、所属行业、客户类型、项目类型、通信地址、地域名称、邮政编码)该表中客户单位编号是主键,同时也是合同信息表的外键,以此来作为关联。销售人员(编号、所属部门、员工姓名、职务名称、性别)该表中的销售人员编号是主键,同时是合同信息表和客户信息表的外键。合同信息(合同编号、客户编号、联系人编号、产品名称、项目类型编号销售人员编号、预计签订日期、预计成交金额、当前进度、状态、详细介绍、创立日期和创立人)该表中合同编号是主键,而客户单位编号作为外键分别与客户单位信息表和客户信息表关联。用户(用户名、密码、权限)4.3数据库的表单设计根据该鑫鑫装饰公司的系统功能设计要求及功能模块的划分,系统信息数据库能够列出下数据项及数据结构:(1)名称:地域信息情况表表名称标识:Area地域信息情况表包括areaid,areaname,areatype,upperid四个字段,详细信息见下表4-1地域信息表:表4-1地域信息情况表Table4-1TheRegionalinformation名称字段名称数据类型主键非空地域编号areaidIntYesNo地域名称areanameVarchar(50)NoNo地域类型areatypeIntNoNo上级地域编号upperidIntNoNo该表中地域编号是主键,同时也是客户单位信息表和联系人信息表的外键。(2)名称:基本信息表表名称标识:Types基本信息表包括id,typename,flag三个字段,详细信息见下表4-2基本信息表:表4-2基本信息表Table4-2TheBasicinformation名称字段名称数据类型主键非空记录编号id自动编号YesNo信息名称typenameVarchar(50)NoNo类型标记flagIntNoNo该表中的记录编号是主键,同时也是联系人信息表的外键,以此来关联。(3)名称:销售人员信息表表名称标识:Employees销售人员信息表包括empid,empname,sex,depname,etitle五个字段,详细信息见下表4-3销售人员信息表:表4-3销售人员信息表Table4-3Theinformationofsalesstaff名称字段名称数据类型主键非空人员编号empid自动编号YesNo姓名empnameVarchar(50)NoNo性别sexVarchar(50)NoNo所在部门depnameVarchar(50)NoNo职务etitleVarchar(50)NoNo该表中的销售人员编号是主键,同时是合同信息表和客户信息表的外键。(4)名称:客户单位信息表表名称标识:Customer客户单位信息表包括custid,custname,custtypeid,address,postcode,areaid,busstypeid,empid八个字段,详细信息见下表4-4客户单位信息表:表4-4客户单位信息表Table4-4TheClientinformationform名称字段名称数据类型主键非空单位编号custidIntYesNo单位名称custnameVarchar(50)NoNo所属客户类别编号custtypeidIntNoNo通信地址addressVarchar(50)NoNo邮政编码postcodeVarchar(50)NoNo所属地域编号areaid,IntNoNo所属行业类别编号busstypeidIntNoNo销售人员empidIntNoNo该表中客户单位编号是主键,同时也是合同信息表的外键,以此来作为关联。(5)名称:联系人信息表表名称标识:Contact联系人信息表包括id,areaid, custid,cname,sex,titleid,office,mobile,birth,hobby,memol,input_date,input_time十三个字段,详细信息见下表4-5联系人信息表:表4-5联系人信息表Table4-5TheContactinformationform名称字段名称数据类型主键非空记录编号idIntYesNo地域编号areaidIntNoNo客户单位编号custidIntNoNo姓名cnameVarchar(50)NoNo性别sexVarchar(50)NoNo职务编号titleidIntNoNo办公电话officeVarchar(50)NoNo移动电话mobileVarchar(50)NoNo生日birthVarchar(50)NoNo兴趣爱好hobbyVarchar(50)NoNo备注信息memolnoteNoNo记录录入日期input_dateVarchar(50)NoNo记录录入时间input_timeVarchar(50)NoNo该表中联系人编号是主键,同时也是合同信息表的外键,以此来作为关联。(6)名称:合同信息表表名称标识:SaleChance合同信息表包括id,custid,ctid,proname,ptypeid,empid,signdate,signsum,ppercent,status,detail,createdate,poster十三个字段,详细信息见下表4-6合作信息表:表4-6合同信息表Table4-6TheContractinformation名称字段名称数据类型主键非空合同编号idIntYesNo客户编号custidIntNoNo联系人编号ctidIntNoNo产品名称pronameVarchar(50)NoNo项目类型编号ptypeidIntNoNo销售人员编号empidIntNoNo预计签订日期signdateVarchar(50)NoNo预计成交金额signsumIntNoNo当前进度ppercentVarchar(50)NoNo状态statusVarchar(50)NoNo详细介绍detailnoteNoNo创立日期createdateDateNoNo创立人posterVarchar(50)NoNo该表中合同编号是主键,而客户编号作为外键分别与客户单位信息表和客户信息表关联。(7)名称:客户信息表表名称标识:SaleTask客户跟踪表包括id,saleid,empid,taskdate,taskby,purpose,ctid,place,starttime,endtime,detail,result十二个字段,详细信息见下表4-7客户跟踪表:表4-7客户信息表Table4-7TheCustomerinformationtable名称字段名称数据类型主键非空记录编号idVarchar(50)NoNo商业机会编号saleidVarchar(50)NoNo销售人员编号empidIntNoNo任务日期taskdateVarchar(50)NoNo拜访方式taskbyVarchar(50)NoNo预计目的purposeVarchar(50)NoNo拜访人员编号ctidIntNoNo拜访地点placeVarchar(50)NoNo开始时间starttimeVarchar(50)NoNo结束时间endtimeVarchar(50)NoNo详细介绍detailnoteNoNo进展总结resultnoteNoNo该表中合同编号以外键的形式与合同信息表进行关联。(8)名称:用户信息表表名称标识:Users用户信息表包括username,userpwd二个字段,详细信息见下表4-8用户信息表:表4-8用户信息表Table4-8Theuserinformation名称字段名称数据类型主键非空用户名usernameVarchar(50)YesNo密码userpwdVarchar(50)NoNo4.4表间关系图该鑫鑫装饰公司的数据库共涉及八张表,即基本信息表、联系人信息表、合同信息表、客户信息表、客户单位信息表、地域信息表、销售人员表和用户表。下图4-6为数据库各表间关系:图4-6数据库表间的关系Figure4-6TheRelationshipsbetweentablesofthedatabase. 第五章系统功能实现 5.1软硬件环境5.1.1硬件环境硬件环境是指系统选用什么类型的计算机设备,是微型计算机,工作站,还是小型机设备。下面是本系统使用的硬件环境:开发平台:普通兼容机上开发即可。内存需求:内存不得低于128M。5.1.2软件环境软件环境是指操作系统,数据库系统以及一些开发工具的选用。本系统开发所需要的软件环境如下:操作系统:WindowsServerSP3版本以上数据库:Access开发工具:VisualBasic开发语言:VB5.2通用程序块在该系统的设计中,共使用了Const、DbFunc、GeneralFunc和Variable等通用程序块。其中Cons主要用于工程中的常量的管理;DbFunc主要对工程中与数据库操作相关的声明、变量及函数等进行管理;GeneralFunc是对工程中一些常见的自定义函数的管理;Variable则是对工程中的常见的公共变量的管理。而类模块的实例在Variable模块中进行了定义。类的实例在申明时,使用了NEW关键字。它能够在第一次引用该变量的时候创立对象的新实例。相反若没有使用NEW关键字,在第一次引用变量时则会报错。5.3登录窗体和系统主界面的实现当系统运行时,首先打开登陆窗体,只有有权限的用户才能进入系统。登陆成功后,将显示系统主界面。5.3.1登录窗体登陆窗体的名称为FrmLogin,其窗口界面如图5-1所示。图5-1系统登陆窗口的界面Figure5-1TheSystemloginwindowinterface程序运行如下所示:用户必须输入用户名和密码,如果判断出没有输入,则返回到登陆界面,要求输入。输入的用户名及密码赋值给变量NameKey及PasswordKey,方便处理。要判断当前用户名是否存在则调用MyUser.In_DB()函数,假如不存在,则返回并要求用户再次输入,且计数变量Try_times将加1。假如用户名存在,即马上调用MyUser.GetInfo()函数并将此用户的数据读取,然后把用户密码和输入的密码进行比较,若密码不同,则返回并要求重新进行输入,且计数变量Try_times将加1。若Try_times的值大于或等于3,则将退出系统。若密码验证经过,当前用户的信息将保存到CurUser对象中,方便后面的使用。登陆窗体的关闭。5.3.2主界面主界面的窗体名称为FrmMain。它的界面布局如图5-2所示。图5-2主窗口的界面设计Figure5-2Theinterfacedesignofthemainwindow要窗体启动时,则打开“登陆”界面,若身份不能经过验证,则进入系统失败。触发mn-exit-Click事件表示“退出系统”。主要代码实现如下:PrivateSubForm_Load()FrmLogin.Show1EndSubPrivateSubLabel2_Click()EndSubPrivateSubmn_Area_Click()'客户管理员能够进入IfCurUser.UserName="Admin"ThenFrmAreaMan.Show1ElseMsgBox"没有权限"ExitSubEndIfEndSub'行业分类设置PrivateSubmn_BType_Click()'客户管理员能够进入IfCurUser.UserName="Admin"ThenFrmTypes.nFlag=2FrmTypes.Caption="行业分类设置"FrmTypes.Show1'行业分类管理ElseMsgBox"没有权限"ExitSubEndIfEndSubPrivateSubmn_Chance_Click()FrmSaleMan.Show1EndSubPrivateSubmn_ChangeUser_Click()FrmLogin.Try_times=0FrmLogin.Show1EndSubPrivateSubmn_Contact_Click()FrmContactMan.Show1EndSub'客户类别管理PrivateSubmn_CType_Click()'客户管理员能够进入IfCurUser.UserName="Admin"ThenFrmTypes.nFlag=1FrmTypes.Caption="客户类别设置"FrmTypes.Show1'客户类别管理ElseMsgBox"没有权限"ExitSubEndIfEndSubPrivateSubmn_Customer_Click()FrmCustomerMan.Show1EndSubPrivateSubmn_Exit_Click()DBapi_DisconnectEndEndSub'项目类型管理PrivateSubmn_PType_Click()'客户管理员能够进入IfCurUser.UserName="Admin"ThenFrmTypes.nFlag=4FrmTypes.Caption="项目类型设置"FrmTypes.Show1'项目类型管理ElseMsgBox"没有权限"ExitSubEndIfEndSubPrivateSubmn_PwdChange_Click()WithFrmUserEdit.OriUser=CurUser.UserName.txtUserName=CurUser.UserName.Modify=True.Show1EndWithEndSubPrivateSubmn_Sales_Click()'客户管理员能够进入IfCurUser.UserName="Admin"ThenFrmEmpMan.Show1ElseMsgBox"没有权限"ExitSubEndIfEndSubPrivateSubmn_Task_Click()FrmTaskMan.ShowEndSub'管理职务PrivateSubmn_Title_Click()'客户管理员能够进入IfCurUser.UserName="Admin"ThenFrmTypes.nFlag=3FrmTypes.Caption="职务名称设置"FrmTypes.Show1'职务名称管理ElseMsgBox"没有权限"ExitSubEndIfEndSubPrivateSubmn_UserMan_Click()IfCurUser.UserName="Admin"ThenFrmUserMan.Show1ElseMsgBox"没有权限"EndIfEndSub5.4功能模块的实现5.4.1客户信息跟踪管理产品在进行销售之后,需要进行老客户跟踪的操作,为公司挖掘更多的潜在客户或者创造销售机会,若锁定之后尽可能成为成交客户。客户一旦成交,则能够对其进行客户管理。而在确定销售机会之后,要努力使其变为成功的订单,签订合同后进行发货出来,售后方面能够采用电话回访和当面拜访的形式进行。下图5-3、图5-4分别为客户信息跟踪管理和编辑客户跟踪信息结果。图5-3客户跟踪信息管理Figure5-3TheCustomerinformationmanagement图5-4编辑客户跟踪信息Figure5-4TheEditthecustomertrackinginformation5.4.2商业机会管理商业机会管理模块除了对项目进行添加、修改、删除等操作外,还能够对已签过合同的项目进行启动、终止、查看进度等操作。操作时需要选择项目名称、项目类型、销售人员等。下图5-5为商业机会管理界面。图5-5商业机会管理界面Figure5-5TheBusinessopportunitymanagementinterface主要实现代码如下:PublicOriCustIdAsLongPublicOriIdAsLongPublicModifyAsBooleanPrivateSubCmd_Cancel_Click()UnloadMeEndSubPrivateSubCmd_OK_Click()IfLen(Trim(txtSaleId))=0ThenMsgBox"商业机会编号情输入"txtSaleId.SetFocusExitSubEndIfIfLen(Trim(dco_Emps.Text))=0ThenMsgBox"请选择销售人员"ComboName.SetFocusExitSubEndIfIfLen(Trim(txtTaskDate))=0ThenMsgBox"请输入拜访日期"txtTaskDate.SetFocusExitSubEndIfIfLen(Trim(ComboBy.Text))=0ThenMsgBox"请选择拜访方式"ComboBy.SetFocusExitSubEndIfIfLen(Trim(dco_Contact.Text))=0ThenMsgBox"请选择拜访人员"dco_Contact.SetFocusExitSubEndIfIfLen(Trim(txtPurpose))=0ThenMsgBox"请输入拜访目的"txtPurpose.SetFocusExitSubEndIfWithMyTask.EmpId=Val(dco_Emps.BoundText()).TaskDate=Trim(txtTaskDate).TaskBy=Trim(ComboBy.Text).CtId=Val(dco_Contact.BoundText).Place=Trim(txtPlace).Purpose=Trim(txtPurpose).StartTime=Trim(txtSTime)IfModify=FalseThen'判断是否存在此商业机会编号IfMyChance.In_DB(Trim(txtSaleId))=FalseThenMsgBox"不存在此销售编号,请重新输入"txtSaleId.SetFocusExitSubEndIf.SaleId=Trim(txtSaleId).InsertElse.Update(OriId)EndIfEndWithUnloadMeEndSubPrivateSubCmd_Search_Click()IfLen(Trim(txtSaleId))=0ThenMsgBox"输入商业机会编号"ExitSubEndIfRefreshSaleEndSubPublicSubRefreshSale()AdoChance.ConnectionString=ConnTmpSource="SELECTs.ProNameAS项目名称,"_+"c.CustNameAS客户名称,a.CNameAS联系人,"_+"t.TypeNameAS项目类型,e.EmpNameAS销售人员,"_+"s.StatusAS状态,s.PPercentAS当前进度,"_+"s.SignDateAS签约日期,s.SignSumAS签约金额,"_+"s.DetailAS其它内容,s.CustId,s.EmpId"_+"FROMSaleChances,Contacta,Customerc,Typest,Employeese"_+"WHEREs.CustId=c.CustIdANDs.EmpId=e.EmpIdANDs.CtId=a.Id"_+"ANDs.PTypeId=t.IdANDs.Id='"+Trim(txtSaleId)+"'"AdoChance.RecordSource=TmpSourceAdoChance.RefreshSetdg_Chance.DataSource=AdoChancedg_Chance.Columns(0).Width=1400dg_Chance.Columns(11).Width=0LoadSaleContactEndSubPrivateSubForm_Load()'读取销售人员数据数据AdoEmps.ConnectionString=ConnAdoEmps.RecordSource="SELECTEmpId,EmpNameFROMEmployeesOrderByEmpName"AdoEmps.RefreshSetdco_Emps.RowSource=AdoEmpsdco_Emps.ListField="EmpName"dco_Emps.BoundColumn="EmpId"'载入拜访方式ComboBy.AddItem"面谈",0ComboBy.AddItem"电话",1ComboBy.AddItem"电子邮件",2EndSubPrivateSubLoadSaleContact()TmpSource=""AdoContact.ConnectionString=ConnAdoContact.RecordSource="SELECTc.Id,c.CName"_+"FROMSaleChances,Contactc"_+"WHEREs.CustId=c.CustIdANDs.Id='"+Trim(txtSaleId)_+"'ORDERBYc.CName"AdoContact.RefreshSetdco_Contact.RowSource=AdoContactdco_Contact.ListField="CName"dco_Contact.BoundColumn="Id"EndSub商业机会管理主要实现代码如下:DimTmpSourceAsStringDimiEmpIdAsIntegerPrivateSubRefreshSaleChance()TmpSource=""TmpSource="SELECTs.IdAS销售编号,s.CustId,s.CtId,s.PTypeId,s.EmpId,"_+"s.ProNameAS项目名称,c.CustNameAS客户名称,a.CNameAS联系人,"_+"t.TypeNameAS项目类型,"_+"e.EmpNameAS销售人员,s.StatusAS状态,s.PPercentAS当前进度,"_+"s.SignDateAS签约日期,s.SignSumAS签约金额,"_+"s.CreateDateAS创立日期,s.PosterAS创立人,s.DetailAS其它内容"_+"FROMSaleChances,Contacta,Customerc,Typest,Employeese"_+"WHEREs.CustId=c.CustIdANDs.EmpId=e.EmpIdANDs.CtId=a.Id"_+"ANDs.PTypeId=t.Id"'客户名称IfLen(Trim(dco_Customer.Text))<>0ThenTmpSource=TmpSource+"Ands.CustId="+Trim(dco_Customer.BoundText)EndIf'销售人员IfLen(Trim(dco_Emps.Text))<>0ThenTmpSource=TmpSource+"Ands.EmpId="+Trim(Str(dco_Emps.BoundText()))EndIfEndIfTmpSource=TmpSource+"ORDERBYs.Id"'MsgBoxTmpSourceAdodc1.ConnectionString=ConnAdodc1.RecordSource=TmpSourceAdodc1.RefreshSetDataGrid1.DataSource=Adodc1DataGrid1.Columns(0).Width=1000EndSubPrivateSubCmd_Add_Click()FrmSaleEdit.Modify=FalseFrmSaleEdit.ComboPercent.ListIndex=0FrmSaleEdit.lbl_Status="启动"FrmSaleEdit.lbl_CreateDate=DateFrmSaleEdit.lbl_Poster=CurUser.UserNameFrmSaleEdit.Show1RefreshSaleChanceEndSubPrivateSubCmd_Del_Click()IfAdodc1.Recordset.EOF=TrueThenMsgBox"记录选择"ExitSubEndIfIfMsgBox("是否删除当前记录?",vbYesNo,"确认")=vbYesThenCallMyContact.Delete(Adodc1.Recordset.Fields(0))RefreshSaleChanceEndIfEndSubPrivateSubCmd_Finish_Click()IfAdodc1.Recordset.EOF=TrueThenMsgBox"记录选择"ExitSubEndIfIfMsgBox("是否结束当前项目?",vbYesNo,"确认")=vbYesThen'结束项目MyChance.Status="结束"MyChance.UpdateStatus(Trim(Adodc1.Recordset.Fields(0)))MsgBox"项目已结束"RefreshSaleChanceEndIfEndSubPrivateSubCmd_GoOn_Click()IfAdodc1.Recordset.EOF=TrueThenMsgBox"记录选择"ExitSubEndIfIfMsgBox("是否启动当前项目?",vbYesNo,"确认")=vbYesThen'继续进行项目MyChance.Status="启动"MyChance.UpdateStatus(Trim(Adodc1.Recordset.Fields(0)))MsgBox"项目已启动"RefreshSaleChanceEndIfEndSubPrivateSubCmd_Reset_Click()dco_Customer.Text=""dco_PType.Text=""dco_Emps.Text=""ComboStatus.ListIndex=0RefreshSaleChanceEndSubPrivateSubCmd_Back_Click()UnloadMeEndSubPrivateSubCmd_Modi_Click()IfAdodc1.Recordset.EOF=TrueThenMsgBox"记录选择"ExitSubEndIf'从客户单位中提取数据FrmSaleEdit.Modify=TrueFrmSaleEdit.txtSaleId=Trim(Adodc1.Recordset.Fields(0))FrmSaleEdit.LoadContactFrmSaleEdit.dco_Contact.Text=Trim(Adodc1.Recordset.Fields(7))FrmSaleEdit.dco_PType.Text=Trim(Adodc1.Recordset.Fields(8))FrmSaleEdit.dco_Emps.Text=Trim(Adodc1.Recordset.Fields(9))'载入地域名称MyCust.GetInfo(Adodc1.Recordset.Fields(1))'取得客户信息FrmSaleEdit.txtArea=Trim(MyArea.GetName(MyCust.AreaId))'提取联系人职务名称FrmSaleEdit.txtTitle=MyContact.GetTitle(Adodc1.Recordset.Fields(2))FrmSaleEdit.lbl_Status=Trim(Adodc1.Recordset.Fields(10))FrmSaleEdit.txtSaleId.Enabled=FalseFrmSaleEdit.Show1RefreshSaleChanceEndSubPrivateSubCmd_Stop_Click()IfAdodc1.Recordset.EOF=TrueThenMsgBox"请选择记录"ExitSubEndIfIfMsgBox("是否中止当前项目?",vbYesNo,"确认")=vbYesThen'中止项目MyChance.Status="中止"MyChance.UpdateStatus(Trim(Adodc1.Recordset.Fields(0)))MsgBox"项目已中止"RefreshSaleChanceEndIfEndSubPrivateSubCmd_ViewTask_Click()IfAdodc1.Recordset.EOF=TrueThenMsgBox"请选择记录"ExitSub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论