Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示
一直以来,都希望整合一个以客户为中心的平台,有两个方面的考虑:一是实现客户数据、客户关系、客户管理等方面的整合,以便更好利用好客户的相关资源,发挥最大的营销效益;二是整合目前我的开发框架的所有模块和技术,包括权限管理和控制、字典管理模块、分页控件、公用类库、自动更新模块、附件管理模块、邮件短信的信息通知模块、工作流模块,以及来电显示记录模块、群发邮件营销模块、日历管理模块等方面的内容。本随笔系列主要介绍在开发我的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-界面功能展示的更多相关文章
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载
在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的 ...
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现
我在本系列随笔的开始,介绍了CRM系统一个重要的客户分类的展示界面,其中包含了从字典中加载分类.从已有数据中加载分类.以及分组列表中加载分类等方式的实现,以及可以动态对这些节点进行配置,实现客户分类的 ...
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列2-基于框架的开发过程
在上篇随笔<Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示>中介绍了我的整个CRM系统的概貌,本篇继续本系列的文章,介绍如何基于我的<winform ...
- Winform开发框架之客户关系管理系统(CRM)的报价单和销售单的处理
在前面介绍了很多CRM相关的界面和实现思路的随笔文章,本篇继续介绍一下系统中用到的一些经验和技巧片段.本篇随笔主要介绍客户关系管理系统(CRM)的报价单和销售单的处理界面效果,使用列表内置的选择代替弹 ...
- 客户关系管理系统(CRM)的开发过程中使用到的开发工具总结
开发<客户关系管理系统(CRM)>软件过程,也就是一个标准的Winform程序的开发过程,我们可以通过这个典型的软件开发过程来了解目前的开发思路.开发理念,以及一些必要的高效率手段.本篇随 ...
- Java高级项目实战02:客户关系管理系统CRM系统模块分析与介绍
本文承接上一篇:Java高级项目实战之CRM系统01:CRM系统概念和分类.企业项目开发流程 先来CRM系统结构图: 每个模块作用介绍如下: 1.营销管理 营销机会管理:针对企业中客户的质询需求所建立 ...
- 客户关系管理系统CRM
http://www.cnblogs.com/Michael2397/tag/SSH%E9%A1%B9%E7%9B%AE-CRM/ 客户关系管理系统
- 客户关系管理系统-CRM源码
QQ:2112326142 邮箱:jxsupport@qq.com 本公司开发的CRM源代码系统一份,附源代码,本公司产品唯一销售客服QQ号:2112326142 请联系此QQ号,以免给您的工作 ...
- AEAI CRM V1.6.0 升级说明,开源客户关系管理系统
1 升级说明 AEAI CRM v1.6.0版是AEAI CRM v1.5.2版客户关系管理系统的升级版本,本次版本是基于AEAI DP v3.8.0_20170228进行打包部署的,升级内容主要是针 ...
随机推荐
- Ant自动编译打包&发布 android项目
Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...
- fast db 学习
见 http://code.google.com/p/mmdbsolution/source/browse/trunk/+mmdbsolution+--username+SiliangDu1987%4 ...
- iOS方法类:CGAffineTransform的使用大概
CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放.旋转和平移操作: 另称放射变换矩阵,可参照线性代数的矩阵实现方式0. ...
- JMir——Java版热血传奇2之资源文件与地图
我虽然是90后,但是也很喜欢热血传奇2(以下简称“传奇”)这款游戏. 进入程序员行业后自己也对传奇客户端实现有所研究,现在将我的一些研究结果展示出来,如果大家有兴趣的话不妨与我交流. 项目我托管到co ...
- SQL语句 - 基本查询
select select_list [ into new_table ] from table_source [ where search_condition ] [ group by broup_ ...
- CSS基础(六):浮动深入
参考了<CSS彻底设计研究>的文章,说的很不错,所以拿来做笔记. 浮动 在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素边界:而在竖直方向和兄弟元素依次排列,不能并排.使用浮 ...
- HDU 3999 The order of a Tree
The order of a Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- DMSFrame 之简单用法(二)
上次说了下DMSFrame的一些查询方式,之前也有好多朋友问了下这个ORM与EF有什么样的区别. 要论区别,我自己也总结了几点.如果有其它朋友知道的,可以回复补充下. 1.不需要编辑的时候需要再次查询 ...
- JS获取跨域的cookie实例
如果说JS能实现跨域cookie,你可能觉得不太可能实现,不过事实上,这个还是可以搞定的,不过需要一定的条件才行的哦!具体方案如下: 一共需要3个文件,第一个文件为需要获取cookie的页面,在这个页 ...
- ListView具有多种item布局——实现微信对话列
这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...