贸易公司客户关系管理系统的设计与实现(论文)
更新时间:2024-05-07 10:17:01 阅读量: 综合文库 文档下载
- 贸易公司客户关系管理研究推荐度:
- 相关推荐
内容摘要:企业要在激烈的市场竞争中立于不败之地,就必须找一种全新的
管理理念和管理手段,对其内部和外部资源进行有效的整合。新一代ERP产品正在向客户端和供应端延伸,客户端的延伸即是客户关系管理。对于每个企业来说客户管理的完善程度将直接影响企业的经济效益。本文介绍了客户关系管理系统(CRM)的基本概念,通过具体实例介绍了客户关系管理软件(CRM)的设计和开发方法。实现了采用CS模式的客户关系管理系统的基本模块,即基本信息管理模块,己方信息管理模块,统计分析模块,用户管理模块,帮助信息模块等。着重讨论了用C#与SQL Server开发信息管理软件的方法及一些相关技术。
关键词:客户管理系统 C# SQL Server
Abstract: Enterprises, which want to put themselves in an invincible position must find out a new management concept and management approaches, and effectively integrate its internal and external resources. A new generation of ERP product extends to the client side and the supply end, client side extension is the customer relations management. Each enterprise customer management perfect degree directly affects the economic efficiency. The basic concept of Customer Relationship Management System has been introduced in this article. Through the concrete example, it introduces the design and the method of development customer relationship management software (CRM).The basic module of CRM has been realized using the CS pattern, which includes basic information management module, own information management module, statistical analysis module, the user management module, help module and so on. The method and some related technologies of development management information system using the C# and SQL Server are emphatically discussed.
Key words: Customer Management System C# SQL Server
1
目 录
一、系统概述 ······························································································································· 4 (一)CRM的概念 ······················································································· 4 (二)系统背景介绍 ····················································································· 4 (三)项目提出的意义 ·················································································· 5 (四)相关技术及工具介绍 ··········································································· 5 二、需求分析 ······························································································································· 9 (一)可行性分析 ························································································· 9 (二)数据库需求分析 ················································································ 10 (三)系统功能需求分析 ············································································ 10 三、系统设计 ····························································································································· 10 (一)系统总体设计 ··················································································· 10 (二)系统功能总体设计 ············································································ 12 (三)界面设计 ··························································································· 13 (四)数据字典 ··························································································· 14 四、系统详细设计 ···················································································································· 16 (一)主要功能模块详细设计 ····································································· 16 (二)数据库结构设计 ················································································ 20 五、系统实现 ····························································································································· 25 (一)运行环境 ··························································································· 25 (二)登陆界面 ··························································································· 26 (三)系统主界面 ······················································································· 26 (四)区域信息管理 ··················································································· 27 (六)竞争对手信息 ··················································································· 34 (七)客户级别分析 ··················································································· 39 (八)客户来源分析 ··················································································· 40
2
(九)修改密码 ··························································································· 42 六、系统测试 ····························································································································· 43 (一)软件测试的意义 ················································································ 43 (二)软件测试的重要性 ············································································ 43 (三)软件测试的范围 ················································································ 44 (四)软件测试的方法 ················································································ 44 (五)软件测试的目的和原则 ····································································· 44 七、总结 ······································································································································ 45 参考文献 ······································································································································ 46 致 谢 ··········································································································································· 48
3
贸易公司客户关系管理系统的设计与实现
一、 系统概述
(一)CRM的概念
CRM是Customer Relationship Management的缩写,即客户关系管理,简单定义,CRM就是一个获取、保持和增加可获利客户的过程。CRM其实是一个管理学上的概念,是一种管理理念。首先是一套先进的管理思想及技术手段,它通过将人力资源、业务流程与专业技术进行有效的整合,最终为企业涉及到客户或消费者的各个领域提供了完美的集成,使得企业可以更低成本、更高效率地满足客户的需求,并与客户建立起基于学习型关系基础上的一对一营销模式,从而让企业可以最大程度的提高客户满意度及忠诚度,挽回失去的客户,保留现有的客户,不断发展新的客户,发掘并牢牢地把握住能给企业带来最大价值的客户群。CRM的核心内容主要是通过不断的改善与管理企业销售、营销、客户服务和支持等与客户关系有关的业务流程并提高各个环节的自动化程度,从而缩短销售周期、降低销售成本、扩大销售量、增加收入与盈利、抢占更多市场份额、寻求新的市场机会和销售渠道,最终从根本上提升企业的核心竞争力,使得企业在当前激烈的竞争环境中立于不败之地。CRM将先进的思想与最佳的实践具体化,通过使用当前多种先进的技术手段最终帮助企业来实现以上目标。
CRM在整个客户生命周期中都以客户为中心,这意味着CRM将客户当作企业运作的核心。CRM简化了各类与客户相关联的业务流程(如销售、营销、服务和支持等)并将其注意力集中于满足客户的需求上。CRM还将多种与客户交流的渠道,如面对面、电话接洽以及Web访问等方式融合为一体,这样,企业就可以按照客户的喜好使用适当的渠道及沟通方式与之进行交流,并能从根本上提高员工与客户或潜在客户进行交流的有效性。CRM可改善员工对客户的反应能力并对客户的整个生命周期有一个更为全面的了解。与企业ERP系统直接集成在一起的CRM解决方案使得企业可通过一个闭环式的定义明确的步骤和流程来满足客户的需求, 因而可以更好地抓住潜在客户和现有客户。
(二)系统背景介绍
以客户为中心,让客户成为朋友是本客户管理系统所追求的境界,本客户管理系统通过对用户信息资源的整合,在公司内部达到资源共享,从而为客户提供
4
更快速周到的优质服务,吸引和保持更多的客户;通过对业务流程的重新设计,更有效地管理客户关系,降低企业营销管理成本。因此,成功的客户管理系统实施是系统资源和企业文化两方面的,只有这两方面同时满足,才能达到增加企业盈利和改善客户关系这一投资最优化效果。
随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,获得竞争优势。 (三)项目提出的意义
首先,该课题属于管理信息系统范畴。而管理信息系统(Management Information System,简称MIS)在现代社会已深入到各行各业,是一个不断发展的新学科,是由人和计算机设备或其他信息处理手段组成并用于管理信息的系统。再加上行业信息化的热潮才刚刚开始,特别是中小型企业的信息化建设步伐刚刚迈出第一步。管理信息系统的开发的市场将是非常庞大的。这种需求对开发人员在数量上和素质上的要求也是非常迫切的。为了满足市场的需求以及能在竞争中取胜,系统设计人员就不仅仅是单纯地满足用户对功能的要求,还要从设计方法上来加以改进。
其次,面向对象方法是一种非常实用的软件开发方法,它一出现就受到软件技术人员的青睐,现在已经成为计算机科学研究的一个重要领域,并逐渐成为软件开发的一种主要方法。面向对象的程序设计将数据及对数据的操作方法封装在一起,作为一个互相依存、不可分离的整体。采用这种方法来设计系统,可以增加系统的安全性。同时通过继承与多态性,使程序具有很高的可重用性,使软件的开发和维护带来了方便。由于面向对象方法的突出优点,它才被广大用户所爱好。 (四)相关技术及工具介绍 1.C#简介
现在ASP.NET支持的开发语言包括VB.NET、C#.NET、JSCRIPT.NET、VC++.NET以及其它.NET Framework所支持的语言。我所做的基于角色的权限管理设计与实现系统是用C#语言。所以,在这里我介绍一下C#语言。
5
将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。
(2)设计出友好的界面
界面的友好与否是用户评价一个软件优劣的重要方面之一,使用户有一个良好的心情。
(3)实现基本功能和一些特殊功能的操作
该系统要求除了能实现信息的录入,删除,查询等基本功能之外,还要求能够根据用户的需要进行操作。
2. 系统总体架构
本系统采用CS模式结构,CS模式是一种两层结构的系统:第一层是在客户机系统上结合了表示与业务逻辑;第二层是通过网络结合了数据库服务器。CS模式主要由客户应用程序、服务器管理程序和中间件三个部分组成。
首先,交互性强是CS固有的一个优点。在CS中,客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
其次,CS模式提供了更安全的存取模式。由于CS配备的是点对点的结构模式,采用适用于局域网、安全性可以得到可靠的保证。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCPIP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。
由于CS在逻辑结构上比BS少一层,对于相同的任务,CS完成的速度总比BS快,使得C/S更利于处理大量数据。由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。同时由于开发是针对性的,因此,操作界面漂亮,形式多样,可以充分满足客户自身的个性化要求。
在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。
3. 系统总体结构设计原则
系统总体结构设计一般应遵循以下原则:
子系统具有相对的独立性;子系统之间的数据依赖尽量小;子系统的设置应考虑今后管理发展的需要;子系统的划分应便于系统分阶段实现。
公司客户管理系统所涉及的信息非常的全面,主要由基础信息维护、客户信息维护、竞争对手信息、货物信息、历史信息、统计分析、系统管理和帮助信息等几个功能模块组成,规划系统功能模块如下:
基础信息维护模块
11
基础信息维护模块主要包括区域信息设置、客户资料设置和竞争对手信息等功能。
己方信息管理模块
客户信息维护模块主要包括本企业基本信息管理、员工信息管理、货物信息管理、重大历史历程管理等功能。
统计分析模块
统计分析模块主要包括客户的级别分析和来源分析。 用户管理模块
用户管理模块主要包括用户管理、更改密码和权限设置等功能。 帮助信息模块
帮助信息模块主要包括更改窗体布局、重新登录退出等功能。
图3-1是系统设计的总体框架图,通过图示的形式,描述了系统各部分的功能模块结构关系。图中的每一个模块都能够独立地实现其具体的功能。
系统主界面资料管理己方信息管理统计分析用户管理系统管理区域信息客户资料竞争对手基本信息员工信息货物信息重大历史历程客户级别分析来源分析用户管理更改密码权限设置更改窗体布局重新登录
图3-1 系统总体结构图
(二)系统功能总体设计
通过需求分析,可以对系统功能进行总体设计,具体功能说明如下: 本系统是特定某对象使用,登陆系统首先要进行身份验证,验证成功才能对相应角色功能进行使用。
1.资料管理
(1) 区域信息管理:对区域信息进行维护,添加和删除操作。 (2) 客户资料管理:对客户的基本信息进行维护,添加和删除操作。 (3) 竞争对手信息:对竞争对手的基本信息进行维护,添加和删除操作。
2.己方信息管理
12
(1)本企业基本信息管理:对本企业的基本信息进行维护,添加、修改和删除操作。
(2)员工信息管理:对员工的信息进行维护,添加、修改和删除操作。 (3)货物信息管理:对货物的信息进行维护,添加、修改和删除操作。 (4)重大历史历程管理:对重大事件进行维护,添加、修改和删除操作。
3.统计分析管理
(1)客户的级别分析:对客户的级别进行统计图表,数据分析。 (2)客户的来源分析:对客户的来源进行统计图表,数据分析。
4.用户管理
(1)用户管理:对登录用户进行维护。 (2)更改密码:更改登录密码。 (2)权限设置:对用户权限进行设置。 (三)界面设计 1.界面设计规范
本系统是客户关系管理系统,所以,我们设计界面时要遵循如下设计原则: (1)在界面上要限制字体的样式和其他文本格式例如文字大小、颜色等,因为繁多的文字样式容易分散拥护对文字本身的注意力。如果文本样式看起来过于图形化,用户会把它当作广告而忽略。
(2)当然最主要的是页面要易读,这意味着,必须注重规划文字和背景颜色的搭配方案。不要使背景的颜色冲淡了文字的视觉效果,不要用花里胡哨的色彩组合,一般来说,浅色背景下的深色文字为佳。这同时也意味着,最好别把文字的规格设得太小、也不能太大。另外,最好让文本左对齐,而不是居中。按当代中文的阅读习惯,文本大都居左的。当然,标题一般应该居中,因为这也符合读者的阅读习惯。
(3)使用高对比度的文字颜色和背景颜色,从而使文字尽量清晰。 (4)界面并不是越长越好,最佳设计是在一个半版面之内。因为过长的页面会使用户觉得过于拥挤和繁冗。
(5)另外,页面容量越小越好,最好不要超过75K。有研究显示,如果一个网站页面的主体在15秒之内显示不出来,用户会很快失去兴趣。
(6)最好使用动态页面设置,即在设计时最好使用相对位置设置,使界面大小的更改不至于影响到界面质量
(7)网站导航要清晰,即所有的超链接应清晰无误地向读者标志出来,所有导航性质的设置,都要有清晰的标志,让人看得明白。
(8)系统风格要统一,即系统上的图像、文字,包括背景颜色、区分线、字体、标题、注脚等,要统一风格,贯穿全系统,从而给用户一种舒服、顺畅的
13
感觉。
2.界面布局设计
本系统采用的是横菜单的布局,因为系统需要,在界面上方加上了导航条。所以进行布局设计时,我决定使功能整体操作时,占菜单下的工作区,使在加上上边的导航条时,上下不会显得对称失调。
但是,同时出现了一个问题,就是使工作区显得有些空,所以这个问题我采用了底色进行补充。
(四)数据字典
(1)数据库名为DB_FZKJ.mdf
(2)根据系统的分析,数据库表需要设置如下:
表名:tb_Area
序号 1 2 3 列名 AreaID AreaName AreaType 数据类型 varchar varchar char 长度 20 50 10 小数位 0 0 0 标识 主键 是 允许空 否 是 是 默认值 说明 表名:tb_CInfo
序号 1 2 3 4 5 6 7 8 9 列名 CName CManager CPhone CPostCode CFax CEmail CNAddress CAddress CRemark 数据类型 varchar varchar varchar bigint varchar varchar varchar varchar varchar 长度 50 20 20 8 20 50 50 100 1000 小数位 0 0 0 0 0 0 0 0 0 标识 主键 允许空 是 是 是 是 是 是 是 是 是 默认值 说明 表名:tb_ClientInfo
序号 1 2 3 4 5 6 7 列名 ClientID CName CStep CRoot CTrade CBy CArea 数据类型 varchar varchar varchar varchar varchar char varchar 长度 20 50 20 20 20 10 50 小数位 0 0 0 0 0 0 0 14
标识 主键 是 允许空 否 是 是 是 是 是 是 默认值 说明 8 9 10 11 12 13 CPhone CFax CPostCode CAddress CEmail CRemark varchar varchar bigint varchar varchar varchar 20 20 8 50 50 1000 0 0 0 0 0 0 是 是 是 是 是 是 表名:tb_Employee
序号 1 2 3 4 5 6 7 8 9 列名 EID EName ESex EBirthday EWDate EDiploma EDepartment EPosition EType 数据类型 varchar varchar char varchar varchar char varchar varchar varchar 长度 小数位 20 20 4 20 20 10 50 20 20 0 0 0 0 0 0 0 0 0 标识 主键 允许空 默认值 是 否 是 是 是 是 是 是 是 是 说明 表名:tb_Event
序号 1 2 3 4 列名 EventID ETitle EDate EContent 数据类型 varchar varchar varchar varchar 长度 20 100 20 1000 小数位 0 0 0 0 标识 主键 是 允许空 否 是 是 是 默认值 说明 表名:tb_GoodsInfo
序号 1 2 3 4 5 6 7 8 列名 GID GName GType GSpec GIPrice GOPrice GUnit GRemark 数据类型 varchar varchar varchar varchar money money char varchar 长度 20 50 50 50 8 8 10 1000 小数位 0 0 0 0 4 4 0 0 标识 主键 是 允许空 否 是 是 是 是 是 是 是 默认值 说明 表名:tb_Opponent
序号 列名 数据类型 长度 小数位 15
标识 主键 允许空 默认值 说明
1 2 3 4 5 6 7 8 9 10 11 12 OID OName OManager OTrade OArea OSize OPhone OFax OPostCode OAddress OEmail ORemark varchar varchar varchar varchar varchar varchar varchar varchar bigint varchar varchar varchar 20 50 20 20 50 20 20 20 8 100 50 1000 0 0 0 0 0 0 0 0 0 0 0 0 是 否 是 是 是 是 是 是 是 是 是 是 是 表名:tb_User
序号 1 2 3 4 列名 UserID UserName UserPwd UserRight 数据类型 varchar varchar varchar char 长度 20 20 20 10 小数位 0 0 0 0 标识 主键 是 允许空 否 是 是 是 默认值 说明 四、系统详细设计
(一)主要功能模块详细设计 1.区域信息管理
(1)添加:添加区域信息,需要区域名称。 (2)删除:对已添加的区域信息,进行删除。 (3)修改:对已添加的区域信息,进行修改。
以上信息可以通过区域信息管理的流程图来表示,如下图所示:
16
区域信息录入否删除信息是否完整是保存删除区域信息结束 图4-1 区域信息管理流程图
2.客户资料管理
(1)添加:添加客户资料信息,需要客户名称、客户电话、地址等。 (2)删除:对已添加的客户资料信息,进行删除。 (3)修改:对已添加的客户资料信息,进行修改。 以上信息可以通过客户资料的流程图来表示,如下图所示:
客户资料录入否删除信息是否完整是保存删除选择的客户结束 图4-2 客户资料流程图
17
3.竞争对手信息
(1)添加:添加竞争对手资料信息,需要竞争对手名称、竞争对手电话、地址等。
(2)删除:对已添加的竞争对手资料信息,进行删除。 (3)修改:对已添加的竞争对手资料信息,进行修改。 以上信息可以通过竞争对手的流程图来表示,如下图所示:
竞争对手录入否删除信息是否完整是保存删除竞争对手结束 图4-3 竞争对手流程图
4.重大历史历程
(1)添加:添加重大历史历程信息,需要事件名称等。 (2)删除:对已添加的重大历史历程信息,进行删除。 (3)修改:对已添加的重大历史历程信息,进行修改。 以上信息可以通过重大历史历程的流程图来表示,如下图所示:
18
重大历史历程录入否删除信息是否完整是保存删除历程结束 图4-4 重大历史历程流程图
5.客户的级别分析
(1)客户的级别分析:根据选择的客户级别进行分析统计。 以上信息可以通过客户级别分析的流程图来表示,如下图所示:
客户级别分析选择否客户级别是图表分析结束
图4-5 客户的级别分析流程图
6.客户的来源分析
19
(1)客户的级别分析:根据选择的客户来源进行分析统计。 以上信息可以通过客户来源分析的流程图来表示,如下图所示:
客户来源分析选择否客户来源是图表分析结束
图4-6 客户的来源分析流程图
(二)数据库结构设计 1.概念结构设计
概念结构设计是将分析得到的用户需求抽象为概念模型的过程。即在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的相互关系概念结构设计模型。这样才能更好地、更准确地用某一DBMS实现这些需求。它是整个数据库设计的关键。
概念结构的主要特点是能真实、充分地反映现实世界;易于理解;易于更改;易于向关系、网状、层次等各种数据模型转换。描述概念模型的有力工具是E-R模型。
设计概念结构通常有四类方法:
(1)自顶向下。即首先定义全局概念结构的框架,然后逐步细化; (2)自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;
(3)逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;
(4)混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一
20
个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。其中最经常采用的策略是自底向上方法。即自顶向下进行需求分析,然后再自底向上设计概念结构。
2.概念结构设计的方法选择 本系统选择自顶向下的方法。 3.系统的E-R图
ER模型中,包含“实体”、“联系”和“属性”三个基本成分。 ⑴实体
实体是客观世界存在的且可相互区分的事物。它可以是人也可以是动物;可以是具体事物也可以是抽象概念。
⑵联系
联系是指客观世界中各事物彼此间的联系。联系分为三类:一对一的关系,一对多的关系,多对多的关系。
⑶属性
属性是实体或联系所具有的性质,通常一个实体用若干属性来刻画。人们通常就是用实体、联系和属性这三个概念来理解现实问题,因此,ER模型比较接近人的思维方式。此外,ER模型使用简单的图形符号表示系统分析员对问题的理解,不熟悉计算机的人也能理解它,因此,ER模型可以作为用户与系统分析员之间的交流工具。
根据系统功能,确定实体、联系、属性,构建E-R图,如下图所示。
来源,级别客户N拥有公司NN拥有N竞争对手 21
员工1拥有角色基本信息的实体及属性,如下图所示:
企业名称法人代表联系电话传真电话11设置N角色权限1包含菜单N 图4-8 E-R图
基本信息邮政编码联系地址E-mail企业网址备注 图4-9员工信息的实体及属性
员工信息的实体及属性,如下图所示:
员工编号员工姓名员工性别员工生日员工信息学历所在部门当前职务员工类别工作日期 图4-10员工信息的实体及属性
货物信息的实体及属性,如下图所示:
22
货物编号货物名称所属类别货物规格货物信息进货价格销货价格计量单位备注 图4-11货物信息的实体及属性
重大历史事件的实体及属性,如下图所示:
事件编号发生时间事件标题事件内容重大历史事件
图4-12重大历史事件的实体及属性
用户的实体及属性,如下图所示:
用户编号用户名称用户密码用户权限用户信息
图4-13用户实体及属性
区域信息的实体及属性,如下图所示:
23
区域编号区域名称区域类别区域信息图4-14区域信息的实体及属性
客户资料的实体及属性,如下图所示:
客户编号E-mail客户信息备注联系地址传真号码经办人所在区域联系电话客户名称客户等级客户来源邮政编码所属行业 图4-15客户资料的实体及属性
竞争对手的实体及属性,如下图所示:
对手编号E-mail竞争对手信息备注联系地址对手名称法人代表企业规模邮政编码所属行业所在区域联系电话传真号码 图4-16竞争对手的实体及属性
把概念结构设计转化为逻辑结构设计为:
基本信息:(企业名称,法人代表,联系电话,传真电话,邮政编码,联系地址,
E-mail,企业网址,备注)
员工信息:(员工编号,员工姓名,员工性别,员工生日,学历,所在部门,当
前职务,员工类别,工作日期)
货物信息:(货物编号,货物名称,所属类别,货物规格,进货价格,销货价格,
计量单位,备注)
24
重大历史事件:(事件编号,发生时间,事件标题,事件内容) 用户信息:(用户编号,用户名称,用户密码,用户权限) 区域信息:(区域编号,区域名称,区域类别)
客户信息:(客户编号,客户名称,客户等级,客户来源,邮政编码,联系地址,
E-mail,备注,所属行业,经办人,所在区域,联系电话,传真号码)
竞争对手信息:(对手编号,对手名称,法人代表,企业规模,邮政编码,联系
地址,联系电话,E-mail,传真号码,所在区域,所属行业,备注)
4.系统业务流程图
系统流程图(System Flowchart)是描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。
货物名称,数量,种类级别、来源、法人货物信息公司名称,产品客户资料公司竞争对手资料名称、产品、区域 图4-17 系统业务流程图
五、系统实现
(一)运行环境
为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求如下:
(1)软件环境:
客户端: Windows95/98/2000/XP/win7,Internet Explorer(IE)等
服务器端: Windows2000/XP/win7,Internet Information Server (IIS)4.0及其以上版本,IE等。
25
数据库:SQL Server,运行于服务器端。 (2)硬件环境:
服务器 CPU:PIII 500以上 ,内存:256M以上 客户机 CPU:P200MMX以上,内存:32M以上 (二)登陆界面
运行本系统,显示系统的登陆界面,包括用户、密码输入框,登陆、关闭按钮。如下图所示:
图5-1 登陆界面
(三)系统主界面
成功登陆系统以后,显示系统的主界面,包括标题:贸易公司客户关系管理系统;菜单:资料管理、已方信息管理、统计分析、用户管理;下方为工作区和登录时间和操作员;左侧为菜单栏。如图所示:
26
图5-2 系统主界面
(四)区域信息管理
在系统主界面点击资料管理的区域信息,系统显示区域信息列表对话框,包括添加、删除和取消按钮,以及显示信息的界面,通过此对话框可以添加和删除区域信息。如图所示:
图5-3 区域信息管理
其关键代码实现如下:
27
CRM.BaseClass.BaseOperate boperate = new CRM.BaseClass.BaseOperate();
CRM.BaseClass.OperateAndValidate opAndvalidate = new CRM.BaseClass.OperateAndValidate(); protected string M_str_sql = \区域编号,AreaName as 区域名称,AreaType as 区域类型from tb_Area\;
protected string M_str_table = \; protected int M_int_judge; public frmAreaManage() {
InitializeComponent(); }
private void frmAreaManage_Load(object sender, EventArgs e) {
DataSet myds = boperate.getds(M_str_sql, M_str_table); dgvAreaInfo.DataSource = myds.Tables[0]; if (myds.Tables[0].Rows.Count > 0) tsbtnDel.Enabled = true; else
tsbtnDel.Enabled = false;
if (frmLogin.M_str_right.ToString().Trim() == \普通用户\) {
tsbtnAdd.Enabled = false; tsbtnEdit.Enabled = false; tsbtnDel.Enabled = false; } }
private void tsbtnAdd_Click(object sender, EventArgs e) {
opAndvalidate.autoNum(\, \, \, \, \,txtAreaCode);
tsbtnSave.Enabled = true; txtAreaName.Text = \; M_int_judge = 0; }
private void tsbtnEdit_Click(object sender, EventArgs e) {
tsbtnSave.Enabled = true; M_int_judge = 1; }
private void tsbtnSave_Click(object sender, EventArgs e) {
28
SqlDataReader sqlread=boperate.getread(\AreaName='\+txtAreaName.Text.Trim()+\); sqlread.Read(); if (M_int_judge == 0) {
if (txtAreaName.Text == \) {
MessageBox.Show(\区域名称不能为空!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); }
else if(sqlread.HasRows) {
MessageBox.Show(\该区域已经存在!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);
txtAreaName.Text = \; txtAreaName.Focus(); } else {
boperate.getcom(\
+txtAreaCode.Text.Trim()+\+txtAreaName.Text.Trim()+\+cboxAreaType.Text.Trim()+\); frmAreaManage_Load(sender,e);
MessageBox.Show(\区域信息添加成功!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);
tsbtnSave.Enabled = false; } }
sqlread.Close(); if (M_int_judge == 1) {
if (txtAreaName.Text == \) {
MessageBox.Show(\区域名称不能为空!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); } else {
boperate.getcom(\ + txtAreaName.Text.Trim() + \ + cboxAreaType.Text.Trim() + \ + txtAreaCode.Text.Trim() + \);
frmAreaManage_Load(sender,e);
MessageBox.Show(\区域信息修改成功!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);
29
tsbtnSave.Enabled = false; } } }
(五)客户资料管理
在系统主界面点击资料管理的客户资料管理,系统显示客户信息;点击【添加】按钮开始录入客户信息,点击【退出】按钮,取消退货,点击【删除】按钮,删除当前选择的客户记录;点击【修改】按钮,修改当前选择的记录;点击【保存】按钮,保存信息,如图所示:
图5-4 客户资料管理
其关键代码实现如下:
CRM.BaseClass.BaseOperate boperate = new CRM.BaseClass.BaseOperate();
CRM.BaseClass.OperateAndValidate opAndvalidate = new CRM.BaseClass.OperateAndValidate(); protected string M_str_sql = \ClientID as 客户编号,CName as 客户名称,CStep as 客户等级,\
+ \客户来源,CTrade as 所属行业,CBy as 经办人,CArea as 所在区域,CPhone as 联系电话,\
+ \传真号码,CPostCode as 邮政编码,CAddress as 联系地址,CEmail as Email地址,CRemark as 备注from tb_ClientInfo \;
protected string M_str_sql2 = \客户编号,CName as 客户名称,CStep as 客户等级,\
+ \客户来源,CTrade as 所属行业,CBy as 经办人,CArea as 所在区域,CPhone as 联系电话,\
+ \传真号码,CPostCode as 邮政编码,CAddress as 联系地
30
址,CEmail as Email地址,CRemark as 备注from tb_ClientInfo where CBy = '\ + frmLogin.M_str_name + \;
protected string M_str_table = \; protected int M_int_judge; public frmClientManage() {
InitializeComponent(); }
private void frmClientManage_Load(object sender, EventArgs e) {
txtCBy.Text = frmLogin.M_str_name;
opAndvalidate.cboxBind(\, \, \, cboxCArea);
DataSet myds;
if (frmLogin.M_str_right == \超级管理员\) {
myds = boperate.getds(M_str_sql, M_str_table); } else {
myds = boperate.getds(M_str_sql2, M_str_table); }
dgvClientInfo.DataSource = myds.Tables[0]; if (myds.Tables[0].Rows.Count > 0) tsbtnDel.Enabled = true; else
tsbtnDel.Enabled = false; }
private void tsbtnAdd_Click(object sender, EventArgs e) {
opAndvalidate.autoNum(\, \, \, \, \, txtClientCode); tsbtnSave.Enabled = true; M_int_judge = 0; ClearText(); }
private void tsbtnEdit_Click(object sender, EventArgs e) {
tsbtnSave.Enabled = true; M_int_judge = 1;
31
}
private void tsbtnSave_Click(object sender, EventArgs e) {
if (M_int_judge == 0) {
if (txtCName.Text == \) {
MessageBox.Show(\客户名称不能为空!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); } else {
if (!opAndvalidate.validatePhone(txtCPhone.Text.Trim())) {
errorCFax.Clear(); errorCPostCode.Clear(); errorCEmail.Clear();
errorCPhone.SetError(txtCPhone, \电话号码格式不正确\); }
else if (!opAndvalidate.validateFax(txtCFax.Text.Trim())) {
errorCPhone.Clear(); errorCPostCode.Clear(); errorCEmail.Clear();
errorCFax.SetError(txtCFax, \传真号码输入格式不正确\); }
else if (!opAndvalidate.validatePostCode(txtCPostCode.Text.Trim())) {
errorCFax.Clear(); errorCPhone.Clear(); errorCEmail.Clear();
errorCPostCode.SetError(txtCPostCode, \邮编输入格式不正确\); }
else if (!opAndvalidate.validateEmail(txtCEmail.Text.Trim())) {
errorCFax.Clear(); errorCPhone.Clear(); errorCPostCode.Clear();
errorCEmail.SetError(txtCEmail, \地址输入格式不正确\); } else {
errorCFax.Clear();
32
errorCPhone.Clear(); errorCPostCode.Clear(); errorCEmail.Clear(); boperate.getcom(\tb_ClientInfo(ClientID,CName,CStep,CRoot,CTrade,CBy,\
+ \values('\ + txtClientCode.Text.Trim()
+ \ + txtCName.Text.Trim() + \ + cboxCStep.Text.Trim() + \ + cboxCRoot.Text.Trim()
+ \ + cboxCTrade.Text.Trim() + \ + txtCBy.Text.Trim() + \ + cboxCArea.Text.Trim()
+ \ + txtCPhone.Text.Trim() + \ + txtCFax.Text.Trim() + \ + txtCPostCode.Text.Trim()
+ \ + txtCAddress.Text.Trim() + \ + txtCEmail.Text.Trim() + \ + txtCRemark.Text.Trim() + \);
frmClientManage_Load(sender, e);
MessageBox.Show(\客户信息添加成功!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);
tsbtnSave.Enabled = false; } } }
if (M_int_judge == 1) {
if (txtCName.Text == \) {
MessageBox.Show(\客户名称不能为空!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); } else {
if (!opAndvalidate.validatePhone(txtCPhone.Text.Trim())) {
errorCFax.Clear(); errorCPostCode.Clear(); errorCEmail.Clear();
errorCPhone.SetError(txtCPhone, \电话号码格式不正确\); }
else if (!opAndvalidate.validateFax(txtCFax.Text.Trim())) {
errorCPhone.Clear(); errorCPostCode.Clear(); errorCEmail.Clear();
errorCFax.SetError(txtCFax, \传真号码输入格式不正确\);
33
}
else if (!opAndvalidate.validatePostCode(txtCPostCode.Text.Trim())) {
errorCFax.Clear(); errorCPhone.Clear(); errorCEmail.Clear();
errorCPostCode.SetError(txtCPostCode, \邮编输入格式不正确\); }
else if (!opAndvalidate.validateEmail(txtCEmail.Text.Trim())) {
errorCFax.Clear(); errorCPhone.Clear(); errorCPostCode.Clear();
errorCEmail.SetError(txtCEmail, \地址输入格式不正确\); } else {
errorCFax.Clear(); errorCPhone.Clear(); errorCPostCode.Clear(); errorCEmail.Clear();
boperate.getcom(\ + txtCName.Text.Trim()
+ \ + cboxCStep.Text.Trim() + \ + cboxCRoot.Text.Trim() + \
+ cboxCTrade.Text.Trim() + \ + txtCBy.Text.Trim() + \
+ cboxCArea.Text.Trim() + \ + txtCPhone.Text.Trim() + \ + txtCFax.Text.Trim()
+ \ + txtCPostCode.Text.Trim() + \ + txtCAddress.Text.Trim()
+ \ + txtCEmail.Text.Trim() + \ + txtCRemark.Text.Trim() + \ + txtClientCode.Text.Trim() + \); frmClientManage_Load(sender, e);
MessageBox.Show(\客户信息修改成功!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);
tsbtnSave.Enabled = false; } } } }
(六)竞争对手信息
在系统主界面点击资料管理的竞争对手信息,显示竞争对手信息(对手名称、法人、地址等),修改按钮,删除按钮,查询按钮,保存按钮和取消按钮;点击
34
【添加】按钮选择竞争对手信息,输入名称、法人、电话等记录;点击【保存】按钮,可以保存当前记录;选择记录信息,可以进行修改;点击【删除】按钮,删除相应信息。如图所示:
图5-6 竞争对手信息
其关键代码实现如下:
CRM.BaseClass.BaseOperate boperate = new CRM.BaseClass.BaseOperate();
CRM.BaseClass.OperateAndValidate opAndvalidate = new CRM.BaseClass.OperateAndValidate(); protected string M_str_sql = \对手编号,OName as 对手名称,OManager as 法人代表,\
+ \所属行业,OArea as 所在区域,OSize as 企业规模,OPhone as 联系电话,\ + \传真号码,OPostCode as 邮政编码,OAddress as 联系地址,OEmail as Email地址,ORemark as 备注from tb_Opponent\;
protected string M_str_table = \; protected int M_int_judge; public frmOppManage() {
InitializeComponent(); }
private void frmOppManage_Load(object sender, EventArgs e) {
opAndvalidate.cboxBind(\, \, \, cboxOArea);
DataSet myds = boperate.getds(M_str_sql, M_str_table); dgvOppInfo.DataSource = myds.Tables[0];
35
if (myds.Tables[0].Rows.Count > 0) tsbtnDel.Enabled = true; else
tsbtnDel.Enabled = false;
if (frmLogin.M_str_right.ToString().Trim() == \普通用户\) {
tsbtnAdd.Enabled = false; tsbtnEdit.Enabled = false; tsbtnDel.Enabled = false; } }
private void tsbtnAdd_Click(object sender, EventArgs e) {
opAndvalidate.autoNum(\, \, \, \, \, txtOppCode);
tsbtnSave.Enabled = true; M_int_judge = 0; ClearText(); }
private void tsbtnEdit_Click(object sender, EventArgs e) {
tsbtnSave.Enabled = true; M_int_judge = 1; }
private void tsbtnSave_Click(object sender, EventArgs e) {
if (M_int_judge == 0) {
if (txtOName.Text == \) {
MessageBox.Show(\对手名称不能为空!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); } else {
if (!opAndvalidate.validatePhone(txtOPhone.Text.Trim())) {
errorOFax.Clear(); errorOPostCode.Clear(); errorOEmail.Clear();
errorOPhone.SetError(txtOPhone, \电话号码格式不正确\);
36
}
else if (!opAndvalidate.validateFax(txtOFax.Text.Trim())) {
errorOPhone.Clear(); errorOPostCode.Clear(); errorOEmail.Clear();
errorOFax.SetError(txtOFax, \传真号码输入格式不正确\); }
else if (!opAndvalidate.validatePostCode(txtOPostCode.Text.Trim())) {
errorOFax.Clear(); errorOPhone.Clear(); errorOEmail.Clear();
errorOPostCode.SetError(txtOPostCode, \邮编输入格式不正确\); }
else if (!opAndvalidate.validateEmail(txtOEmail.Text.Trim())) {
errorOFax.Clear(); errorOPhone.Clear(); errorOPostCode.Clear();
errorOEmail.SetError(txtOEmail, \地址输入格式不正确\); } else {
errorOFax.Clear(); errorOPhone.Clear(); errorOPostCode.Clear(); errorOEmail.Clear(); boperate.getcom(\tb_Opponent(OID,OName,OManager,OTrade,OArea,OSize,OPhone,\
+ \ + txtOppCode.Text.Trim()
+ \ + txtOName.Text.Trim() + \ + txtOManager.Text.Trim() + \ + cboxOTrade.Text.Trim()
+ \ + cboxOArea.Text.Trim() + \ + cboxOSize.Text.Trim() + \ + txtOPhone.Text.Trim()
+ \ + txtOFax.Text.Trim() + \ + txtOPostCode.Text.Trim() + \ + txtOAddress.Text.Trim()
+ \ + txtOEmail.Text.Trim() + \ + txtORemark.Text.Trim() + \);
frmOppManage_Load(sender, e);
MessageBox.Show(\竞争对手信息添加成功!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);
tsbtnSave.Enabled = false;
37
} } }
if (M_int_judge == 1) {
if (txtOName.Text == \) {
MessageBox.Show(\对手名称不能为空!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information); } else {
if (!opAndvalidate.validatePhone(txtOPhone.Text.Trim())) {
errorOFax.Clear(); errorOPostCode.Clear(); errorOEmail.Clear();
errorOPhone.SetError(txtOPhone, \电话号码格式不正确\); }
else if (!opAndvalidate.validateFax(txtOFax.Text.Trim())) {
errorOPhone.Clear(); errorOPostCode.Clear(); errorOEmail.Clear();
errorOFax.SetError(txtOFax, \传真号码输入格式不正确\); }
else if (!opAndvalidate.validatePostCode(txtOPostCode.Text.Trim())) {
errorOFax.Clear(); errorOPhone.Clear(); errorOEmail.Clear();
errorOPostCode.SetError(txtOPostCode, \邮编输入格式不正确\); }
else if (!opAndvalidate.validateEmail(txtOEmail.Text.Trim())) {
errorOFax.Clear(); errorOPhone.Clear(); errorOPostCode.Clear();
errorOEmail.SetError(txtOEmail, \地址输入格式不正确\); } else {
errorOFax.Clear(); errorOPhone.Clear();
38
errorOPostCode.Clear(); errorOEmail.Clear();
boperate.getcom(\ + txtOName.Text.Trim()
+ \ + txtOManager.Text.Trim() + \ + cboxOTrade.Text.Trim() + \
+ cboxOArea.Text.Trim() + \ + cboxOSize.Text.Trim() + \
+ txtOPhone.Text.Trim() + \ + txtOFax.Text.Trim() + \ + txtOPostCode.Text.Trim()
+ \ + txtOAddress.Text.Trim() + \ + txtOEmail.Text.Trim()
+ \ + txtORemark.Text.Trim() + \ + txtOppCode.Text.Trim() + \);
frmOppManage_Load(sender, e);
MessageBox.Show(\竞争对手信息修改成功!\, \提示\, MessageBoxButtons.OK, MessageBoxIcon.Information);
tsbtnSave.Enabled = false; } } } }
(七)客户级别分析
在系统主界面点击统计分系,显示客户级别分析;选择客户登记,点击【查询】,以图形和表格的形式统计数据。如图所示:
图5-8 客户级别分析
39
其关键代码实现如下:
CRM.BaseClass.OperateAndValidate opAndvalidate = new CRM.BaseClass.OperateAndValidate(); public frmCLAnalyse() {
InitializeComponent(); }
private void frmCLAnalyse_Load(object sender, EventArgs e) {
string P_str_sql = \;
CReportViewer.ReportSource = opAndvalidate.CrystalReports(\, P_str_sql);
this.WindowState = FormWindowState.Maximized; }
private void tsbtnLook_Click(object sender, EventArgs e) {
string P_str_sql = \{tb_ClientInfo.CStep} like '\ + tscboxCLevel.Text.Trim() + \; CReportViewer.ReportSource = opAndvalidate.CrystalReports(\, P_str_sql); }
private void tsbtnExit_Click(object sender, EventArgs e) {
this.Close(); }
(八)客户来源分析
在系统主界面点击统计分系,显示客户来源分析;选择客户来源,点击【查询】,以图形和表格的形式统计数据。如图所示:
40
正在阅读:
关于舟山市海洋经济发展中存在的 - 图文03-30
期权从业考试题含答案分04-16
【优质】财政局201X上半年工作总结和下半年工作思路-精选word文档 (4页) -12-08
治安巡逻志愿者活动记录 - 图文04-24
浅谈汽车美容与汽车保养05-03
优秀教师演讲稿范文:三尺讲台 无悔的选择05-09
父母的恩情作文300字07-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 客户关系
- 管理系统
- 贸易公司
- 实现
- 论文
- 设计
- 网络攻击分类及原理工具详解
- 师师、师生、生生互动式教学调查问卷结果分析报告
- 财务管理练习
- 皖西学院08级电磁场与电磁波答案doc
- 400-3公路工程箱涵施工、竣工资料所需表格目录清单 - 图文
- 2014年广东高考生物含答案及解析
- 彼压洛(马来酸依那普利片)
- 王崧舟《荷花》三下课堂实录及评析
- 业主手册
- 西安工业大学2013运动控制考试课后复习题及思考题答案
- 配电网工程建设监理工作表式
- 明德小学教导处计划
- 学习型组织的企业文化创新分析
- 电厂运行部2012年工作总结及2013年工作计划
- 19.Abaqus累积损伤与失效
- 对中国古建筑空间格局的思考
- 2009-2014安徽理科数学高考卷附详细解析 - 图文
- 双绞线说明书
- 中考初中英语易错题练习及答案(汇总30练)
- 人教版高中历史必修一第25课《两极世界的形成》教案