经过6天的连续奋战,FxGrid组件开发完成,今天正式投入使用。这个我把这个Grid作为一个轻量级组件,以弥补开发上的部分需求。
现在介绍一下这个组件的特点:
1、支持界面设计,能够设计出任意复杂的表头;
2、能够设计每个字段的汇总行为,汇总行为包括:None,Sum,Avg,Count;
3、能够设定每个字段的中文显示名称;
4、能够设定每个字段的数据对其方式;
5、能够设定表头的颜色;
6、能够设定每个字段的只读属性;
7、双击单元格,触发双击事件;
8、提供扩展接口,当某行某个单元格被选中时,通过该接口,能够控制该单元格的只读属性(该能够能够满足复杂表格数据的编辑)
9、支持DataTable和DataView数据源
以下是该控件在设计时的状态
以下是该控件在运行时的状态
该组件的缺点:
1、不支持鼠标滚轮;
2、是一个.Net组件,只能运行于.Net环境中。
该组件存在的理由:
1、通过表格作为录入界面时,要求表格的表头能够显示更加复杂的内容;
2、作为表格,能够设定是否需要显示合计值;
3、当有需求要求将查询数据和操作数据放在起一处理时(这样做的好处是减少界面数量),该组件的扩展接口提供了对当前选择单元格的只读属性的控制功能。
总而言之,这个表格没有PowerBuilder的DataWindow那么强大,也没有Crystal Report那么华丽,它只是一个轻量级的Grid(和我自己一样^_^),对于它的诞生理由,我一直都在思考,我也希望各位能够各抒己见。
(有关Grid的设计,我会继续下去,这个控件太具有挑战性了。但是下面的路该怎么走,我有几点想法:
1、参照MFC中的View概念,去研究
2、.Net下有关控件的构造
以上是技术上的考虑,从需求分析上
3、进一步细化开发中对Grid的需求,这种细化方法和商人细化市场的思想差不多)
以下是这个组件的源代码,用C++.Net编写完成,由于本人对C++.Net的使用时间只有2个多月,代码拙劣的地方还请高手指教。
(Afx是微软的开发团队,Fx是我自己的定义,呵呵!
这个组件不足之处,希望各位不吝赐教。
有关组件设计与系统分析,非常希望能够和更多的朋友交流。联系QQ:64528619)
源代码点击http://blog.csdn.net/firefox1/archive/2007/01/07/1476553.aspx
首先是设计视图,该视图描述了Grid在创建过程中数据转换的过程,可以说是一个DFD数据流图,但从严格意义上说,它不是DFD,只是我为了能够更加清楚的描述数据的转换过程而制作的一个描述工具。其实我们平时的编码过程也就是一个数据转换过程,我也通过这种方式来分析代码,感觉效果还是挺不错。通过这种描述方法,这个控件在测试时几乎没有出现功能性问题,一步到位。
下面我将这幅图展现给大家,虽然有点乱,但是如果仔细看,就能够找到数据转换的过程,我也很希望大家能够谈谈自己在组件设计和代码分析上的经验。