一直以来,都希望整合一个以客户为中心的平台,有两个方面的考虑:一是实现客户数据、客户关系、客户管理等方面的整合,以便更好利用好客户的相关资源,发挥最大的营销效益;二是整合目前我的开发框架的所有模块和技术,包括权限管理和控制、字典管理模块、分页控件、公用类库、自动更新模块、附件管理模块、邮件短信的信息通知模块、工作流模块,以及来电显示记录模块、群发邮件营销模块、日历管理模块等方面的内容。本随笔系列主要介绍在开发我的CRM系统中的各种场景问题的解决思路,以及相关的功能实现,力求在逐步完善这个CRM系统模块过程中,介绍我目前基于我的Winform开发框架套件和Database2Sharp代码生成工具的CRM系统的开发历程和经验总结,希望记录下的点点滴滴,对自己,对同行都有着一定的借鉴、参考作用,同时也希望吸纳更多的批评指导意见,逐步提高自己整个Winform开发框架体系的深度和广度。

1)CRM系统功能的借鉴和设计

在实际开发之初很长一段时间,都很留意CRM系统的相关信息,包括从华军、天空网站下载了一些不错的CRM系统,以及一些急于B/S的在线CRM系统,吸收其中的一些思路和功能,同时也在Google、Baidu上搜索一些别人设计文档或者介绍文档,了解整个CRM系统可能包含的模块和关联的关系。

主要的功能模块包括:客户管理、服务管理、商品及销售、报表数据等几大块。

其中客户管理包括的内容有:客户管理、客户跟进、联系人管理、客户文档、合同文档、维护记录、售后服务、客户投诉、客户活动、销售机会、产品报价、销售记录、客户拜访、客户来电、发票记录、客户分组、联系人分组等方面的管理,基本上就是,以客户为中心的相关数据的管理。当然,后面还可以扩展添加,客户往来邮件、客户往来短信,以及和客户相关等各方面的数据。例如下面是我设计的客户往来的总体界面,包括了一切和客户相关的模块展示,主界面源自我的《Winform开发框架》的布局效果,整合了主体框架的内容,在主界面里面,也整合了Winform分页控件实现数据的合理高效的展示,并且通过把界面拆分多个可以调整的部分,使得更加友好。

2)客户分类管理

a、常规字典模块的动态加载

一般情况下,我们对客户的分类都需要动态加载,对这个客户分类的管理,我希望能给使用者提供足够的方便,如下面的客户状态、客户类型等节点里面的数据来源数据字典,用户调整对应字典模块的数据,这个树形列表也应该跟着变化。

  

上面的节点数据来自数据字典模块的内容,字典模块直接利用《Winform开发框架》现成的模块即可,界面如下所示。

b、客户省份、客户城市的动态加载

除了从数据字典中加载的节点数据,还有一种如客户省份、客户城市,我们知道这些数据很大,我们如果在树列表里面展示全国的城市,那么肯定是不好的用户体验,想想要在全国几百个城市找一个出来可不容易。

于是,我们应该换一种方法,试着从已有客户所在的省份、所在的城市,把他们动态加载出来,数据就少很多,友好很多,基本上我们看任何一个节点都会有数据,这就是贴心的设计,友好的体验。

以下就是从客户数据里面提取客户所在省份、客户所在城市,然后再在节点中列出。

   

c、客户分组的管理

除了上面两种,还有一种来自个人的客户组别的数据表数据,我们从其中获取到对应的客户分组信息,然后在客户分组节点中展示出来,选择对应的个人分组就可以获取对应的客户

上面的个人分组来自对客户的个人分组表里面,它的管理界面如下所示。

d、客户分类的配置管理

从上面对客户的分类,我们看到已经有很多大的类别了,每个类别展开还有好几项,这样就构成了一个很大的树,但是有时候有些客户可能不一定对所有的分类节点都感兴趣,如果能够给客户一个选择配置的机会,会显得更加友好,因此客户分类的功能需求也就应运而生,我们把这些预先设定一个系统节点表,然后每个用户存储在另外一张用户表里面,这样就可以实现了。

3)客户管理模块的动态加载

以客户为中心的数据管理,就会分为很多名目, 如上面提到的客户管理、客户跟进、联系人管理、客户文档、合同文档、维护记录、售后服务、客户投诉、客户活动、销售机会、产品报价、销售记录、客户拜访、客户来电、发票记录。

管理这些模块,我们在开发的时候,如果在一个TabControl集成那么多模块,也是可以的,不过不够弹性化,比较僵硬死板,而且可能不好动态调整,如果整合一起,字段控件的命名也成问题。

因此,我设计这些模块的时候,每个业务模块作为一个控件,然后再在统一在界面中动态整合,这样还可以实现本节所说的动态加载和配置管理,这里面也用到了Winform分页控件模块,使用代码生成工具Database2Sharp实现所有子模块的列表展示和数据编辑界面的快速开发,具体可以参考上一篇随笔《利用代码生成工具Database2Sharp设计数据编辑界面》。

和上面的客户分类一样,我觉得不是每个人都可能关注所有的相关资料,有些可能只需要关心几项内容,那么应该提供一个模块配置的界面给客户进行必要的调整,配置界面如下所示

4)数据编辑界面的设计

处理上面的分类设计要求,对每项数据的编辑界面,我也希望能给设计符合一般用户的使用习惯,如下面的客户信息的数据编辑界面和联系人数据编辑界面效果。这里面的界面效果,是使用代码生成工具Database2Sharp实现列表展示和数据编辑界面的快速开发,然后进行适当的调整,具体可以参考上一篇随笔《利用代码生成工具Database2Sharp设计数据编辑界面》。

客户联系人数据编辑界面如下所示。

以上就是这个CRM系统模块里面,涉及到的一些比较典型的界面设计,本篇不设计技术代码的研究,后续的文章将对这些设计的细节和实现思路进行分析介绍,希望大家多多支持,提供更多的批评意见,相互促进。

我的该CRM系统系列的几篇随笔链接如下,供阅读。

Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示

Winform开发框架之客户关系管理系统(CRM)的开发总结系列2-基于框架的开发过程

Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现

Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载

Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示的更多相关文章

  1. Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载

    在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的 ...

  2. Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现

    我在本系列随笔的开始,介绍了CRM系统一个重要的客户分类的展示界面,其中包含了从字典中加载分类.从已有数据中加载分类.以及分组列表中加载分类等方式的实现,以及可以动态对这些节点进行配置,实现客户分类的 ...

  3. Winform开发框架之客户关系管理系统(CRM)的开发总结系列2-基于框架的开发过程

    在上篇随笔<Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示>中介绍了我的整个CRM系统的概貌,本篇继续本系列的文章,介绍如何基于我的<winform ...

  4. Winform开发框架之客户关系管理系统(CRM)的报价单和销售单的处理

    在前面介绍了很多CRM相关的界面和实现思路的随笔文章,本篇继续介绍一下系统中用到的一些经验和技巧片段.本篇随笔主要介绍客户关系管理系统(CRM)的报价单和销售单的处理界面效果,使用列表内置的选择代替弹 ...

  5. 客户关系管理系统(CRM)的开发过程中使用到的开发工具总结

    开发<客户关系管理系统(CRM)>软件过程,也就是一个标准的Winform程序的开发过程,我们可以通过这个典型的软件开发过程来了解目前的开发思路.开发理念,以及一些必要的高效率手段.本篇随 ...

  6. Java高级项目实战02:客户关系管理系统CRM系统模块分析与介绍

    本文承接上一篇:Java高级项目实战之CRM系统01:CRM系统概念和分类.企业项目开发流程 先来CRM系统结构图: 每个模块作用介绍如下: 1.营销管理 营销机会管理:针对企业中客户的质询需求所建立 ...

  7. 客户关系管理系统CRM

    http://www.cnblogs.com/Michael2397/tag/SSH%E9%A1%B9%E7%9B%AE-CRM/   客户关系管理系统

  8. 客户关系管理系统-CRM源码

    QQ:2112326142   邮箱:jxsupport@qq.com 本公司开发的CRM源代码系统一份,附源代码,本公司产品唯一销售客服QQ号:2112326142  请联系此QQ号,以免给您的工作 ...

  9. AEAI CRM V1.6.0 升级说明,开源客户关系管理系统

    1 升级说明 AEAI CRM v1.6.0版是AEAI CRM v1.5.2版客户关系管理系统的升级版本,本次版本是基于AEAI DP v3.8.0_20170228进行打包部署的,升级内容主要是针 ...

随机推荐

  1. EF 5.0 帮助类

    EF 5.0 帮助类 加入命名空间: using System; using System.Data; using System.Data.Entity; using System.Data.Enti ...

  2. CSS3学习笔记--line-height:150%与line-height:1.5的真正区别

    代码: <div style="line-height:150%;font-size:16px;"> 父元素内容 <div style="font-si ...

  3. Google 面试题:Java实现用最大堆和最小堆查找中位数 Find median with min heap and max heap in Java

    Google面试题 股市上一个股票的价格从开市开始是不停的变化的,需要开发一个系统,给定一个股票,它能实时显示从开市到当前时间的这个股票的价格的中位数(中值). SOLUTION 1: 1.维持两个h ...

  4. Android上面安装Linux的方法

    方法一: 并行安装Linux(不在Android操作系统之上运行,需要设备已经unlocked并且rooted) 我还没玩过.放两个书签: How to Install Ubuntu on Andro ...

  5. FFRPC应用之Client/Server

    摘要: Ffrpc 进行了重构,精简了代码,代码更加清晰简洁,几乎完美的达到了我的预想.接下来将写几遍文章来介绍ffrpc可以做什么.简单总结ffrpc的特性是: Ffrpc是c++ 网络通信库 全异 ...

  6. Linux监控工具 (Linux Monitor Tools)

    最近发现几个好用的工具,顺便总结下. Zabbix和Nagios属于重量级,企业级Service procps-ng: top, free, ps, pgrep, vmstat ... sysstat ...

  7. [转载]IE678兼容性前缀区分

    符合一贯简单的风格,只需记住两个符号 _ 和 * 看例子: #main { background:black; *background:red; _background:blue; } 第一句会被所有 ...

  8. cocos2d ios 环境搭建

    一.下载cocos2d-x http://cocos2d-x.org/projects/cocos2d-x/wiki/Download cocos2d-x-2.1.4.zip @ June.18, 2 ...

  9. 一起做RGB-D SLAM 第二季 (二)

    本节目标 我们要实现一个基本的文件IO,用于读取TUM数据集中的图像.顺带的,还要做一个参数文件的读取. 设计参数文件读取的类:ParameterReader 首先,我们来做一个参数读取的类.该类读取 ...

  10. 二十七、EFW框架BS系统开发中的MVC模式探讨

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...