DevExpress小结(简略)

又回到Instant Replay项目的BUG修改上来了,Report刚有一点点头绪,暂时就放一下了。也好,从成千上万行的代码中解脱一下也是件好事。

对于报表,因为公司的要求有一点特殊,一般的报表功能都无法完成一些特殊的要求,只好一方面继续确实DevExpress的其它控件用来满足报表,另一方面也学着自己写一些报表控件。当然,我感觉把DevExpressGridControl控件从Window上移植到Report上是一个不错的选择,修改了一些报表的源代码,然后简单的从GridControl继承一个GridReport,然后添加到报表的设计上,呵呵,没想到很好的运行了。当然,也还是存在一些问题,这些问题也不是很好解决。所以暂时也没管,先放着,以后再说。后来又平移了一个PivotGrid,也比较成功。而麻烦的是对RunDesiger的控制,在数据通信上存在一些问题,最后不得不用文件来进行数据传输。它自带的内存数据流通信怎么试都不成功,也没再花太多时间去管它了。

后来的其它几个控件就不行了,像TreeList,不知道为什么,平移过去后,总是报错误。因为这一控件的功能不是很大,所以暂时就没管了。

还有一个麻烦的问题就是也COM的交互上,我们对报表组件以及PS组件都进行了COM封装,但结果是最后COM退出时总会有一个OS的系统异常,同事跟踪了下下,发现是OS平台下的异常,暂时也没仔细研究。

最后自己参考它的PS和控件组织结构,写了一个特殊的报表控件。这比我想像的要简单,主要是放弃了皮肤与版本的控制,所以相对简单一些,直接从EditorFrame继承并实现Iprintable就可以完成一个在DevExpress系统中随处可以打印的控件。想想还真不错。所也决定以后多写一些这样的控件。当然,学习和了解了这几个控件后,对.Net下的控件结构与开发都有了一个非常全面的了解。从组织结构,到控件数据视图,从设计到开发,从设计到运行等一系列的流程都比较了解了。这样,以后开发Web控件或者Window控件都是不错的参考。最主要的还是它丰富的源代码,读的越多,对.net了解的也就越多!

原文地址:https://www.cnblogs.com/WuCountry/p/789525.html