一直以来,都希望整合一个以客户为中心的平台,有两个方面的考虑:一是实现客户数据、客户关系、客户管理等方面的整合,以便更好利用好客户的相关资源,发挥最大的营销效益;二是整合目前我的开发框架的所有模块和技术,包括权限管理和控制、字典管理模块、分页控件、公用类库、自动更新模块、附件管理模块、邮件短信的信息通知模块、工作流模块,以及来电显示记录模块、群发邮件营销模块、日历管理模块等方面的内容。本随笔系列主要介绍在开发我的CRM系统中的各种场景问题的解决思路,以及相关的功能实现,力求在逐步完善这个CRM系统模块过程中,介绍我目前基于我的Winform开发框架套件和Database2Sharp代码生成工具的CRM系统的开发历程和经验总结,希望记录下的点点滴滴,对自己,对同行都有着一定的借鉴、参考作用,同时也希望吸纳更多的批评指导意见,逐步提高自己整个Winform开发框架体系的深度和广度。
在实际开发之初很长一段时间,都很留意CRM系统的相关信息,包括从华军、天空网站下载了一些不错的CRM系统,以及一些急于B/S的在线CRM系统,吸收其中的一些思路和功能,同时也在Google、Baidu上搜索一些别人设计文档或者介绍文档,了解整个CRM系统可能包含的模块和关联的关系。
主要的功能模块包括:客户管理、服务管理、商品及销售、报表数据等几大块。
其中客户管理包括的内容有:客户管理、客户跟进、联系人管理、客户文档、合同文档、维护记录、售后服务、客户投诉、客户活动、销售机会、产品报价、销售记录、客户拜访、客户来电、发票记录、客户分组、联系人分组等方面的管理,基本上就是,以客户为中心的相关数据的管理。当然,后面还可以扩展添加,客户往来邮件、客户往来短信,以及和客户相关等各方面的数据。例如下面是我设计的客户往来的总体界面,包括了一切和客户相关的模块展示,主界面源自我的《Winform开发框架》的布局效果,整合了主体框架的内容,在主界面里面,也整合了Winform分页控件实现数据的合理高效的展示,并且通过把界面拆分多个可以调整的部分,使得更加友好。
a、常规字典模块的动态加载
一般情况下,我们对客户的分类都需要动态加载,对这个客户分类的管理,我希望能给使用者提供足够的方便,如下面的客户状态、客户类型等节点里面的数据来源数据字典,用户调整对应字典模块的数据,这个树形列表也应该跟着变化。
上面的节点数据来自数据字典模块的内容,字典模块直接利用《Winform开发框架》现成的模块即可,界面如下所示。
b、客户省份、客户城市的动态加载
除了从数据字典中加载的节点数据,还有一种如客户省份、客户城市,我们知道这些数据很大,我们如果在树列表里面展示全国的城市,那么肯定是不好的用户体验,想想要在全国几百个城市找一个出来可不容易。
于是,我们应该换一种方法,试着从已有客户所在的省份、所在的城市,把他们动态加载出来,数据就少很多,友好很多,基本上我们看任何一个节点都会有数据,这就是贴心的设计,友好的体验。
以下就是从客户数据里面提取客户所在省份、客户所在城市,然后再在节点中列出。
c、客户分组的管理
除了上面两种,还有一种来自个人的客户组别的数据表数据,我们从其中获取到对应的客户分组信息,然后在客户分组节点中展示出来,选择对应的个人分组就可以获取对应的客户
上面的个人分组来自对客户的个人分组表里面,它的管理界面如下所示。
d、客户分类的配置管理
从上面对客户的分类,我们看到已经有很多大的类别了,每个类别展开还有好几项,这样就构成了一个很大的树,但是有时候有些客户可能不一定对所有的分类节点都感兴趣,如果能够给客户一个选择配置的机会,会显得更加友好,因此客户分类的功能需求也就应运而生,我们把这些预先设定一个系统节点表,然后每个用户存储在另外一张用户表里面,这样就可以实现了。
以客户为中心的数据管理,就会分为很多名目, 如上面提到的客户管理、客户跟进、联系人管理、客户文档、合同文档、维护记录、售后服务、客户投诉、客户活动、销售机会、产品报价、销售记录、客户拜访、客户来电、发票记录。
管理这些模块,我们在开发的时候,如果在一个TabControl集成那么多模块,也是可以的,不过不够弹性化,比较僵硬死板,而且可能不好动态调整,如果整合一起,字段控件的命名也成问题。
因此,我设计这些模块的时候,每个业务模块作为一个控件,然后再在统一在界面中动态整合,这样还可以实现本节所说的动态加载和配置管理,这里面也用到了Winform分页控件模块,使用代码生成工具Database2Sharp实现所有子模块的列表展示和数据编辑界面的快速开发,具体可以参考上一篇随笔《利用代码生成工具Database2Sharp设计数据编辑界面》。
和上面的客户分类一样,我觉得不是每个人都可能关注所有的相关资料,有些可能只需要关心几项内容,那么应该提供一个模块配置的界面给客户进行必要的调整,配置界面如下所示
处理上面的分类设计要求,对每项数据的编辑界面,我也希望能给设计符合一般用户的使用习惯,如下面的客户信息的数据编辑界面和联系人数据编辑界面效果。这里面的界面效果,是使用代码生成工具Database2Sharp实现列表展示和数据编辑界面的快速开发,然后进行适当的调整,具体可以参考上一篇随笔《利用代码生成工具Database2Sharp设计数据编辑界面》。
客户联系人数据编辑界面如下所示。
以上就是这个CRM系统模块里面,涉及到的一些比较典型的界面设计,本篇不设计技术代码的研究,后续的文章将对这些设计的细节和实现思路进行分析介绍,希望大家多多支持,提供更多的批评意见,相互促进。