Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 基于DevExpress XtraGrid控件实现的凭证式录入
【标  题】:基于DevExpress XtraGrid控件实现的凭证式录入
【关键字】:DevExpress,XtraGrid
【来  源】:http://timiil.cnblogs.com/archive/2006/05/16/401981.html

基于DevExpress XtraGrid控件实现的凭证式录入

Your Ad Here      个人而言,一直觉得XtraGrid是个非常不错的窗格控件,也基于它做了若干个微型的应用,最终用户们也比较能接受。当然,现在商业的Grid很多,同质化也很严重,好像Infragstics的UltraGrid,ComponentOne的,DataDynamic的SharpGrid,还有Janus的GridEx。。。反正什么列锁定,拖放,排序,过滤,单元格合并,导出。。。都成了Basic Feature了:)
    最近有朋友问过,如何在XtraGrid上显示出象会计凭证一样的录入方式,其实之前几个客户也向我提过,不过一直都很忙,总没有空尝试做这个东西。这两天因为准备仔细的研究DevExpress的源码,就用这个题目进行了一次热身了,这里也不揣简陋,让各位高人晒笑一下:)
    首先我想到的实现方法,是从RepositoryItem中继承出一个新的文本编辑器,里边进行数位间隔,但由于不能直接从Winform.TextBox里边继承,想了想重绘的种种恐怖,我就放弃了。
    第2条路是做一个UserControl,在里边动态生成若干个文本诓(你要多少位有效数字,就生成多少个),一个埃一个的排列,UserControl作为容器。我想这是最懒惰的方法了,几乎没有什么高难度的地方。。。只是,亲爱的XtraGrid不支持在单元格中直接挂接UserControl!!!(PopupContainer可以,不过是弹出一个小窗口,在这里没用),所以这个方法也行不通。(BTW,Janus的GridEX可以这样做,你在单元格里边挂接任意的控件都无任欢迎,所以GridEx是我的Second Choice。。。)
    现在采取的办法,其实最笨,就是直接动态生成数位列,为了好看,再重绘一下ColumnHeader,具体代码这里不拜弄了,各位可以自由欣赏。运行效果如下:
    


        现在基本上可以使用,包括录入和显示都正常,不足之处还有很多: 
        1,不支持列拖放(因为我找不到"捕捉列拖放完成"的事件)
        2,可以排序,但升序和降序的Indicator不能显示(不知到在那里重绘)
        3,不支持分组和过滤(不过想来没有人会在凭证列干这两件事吧)
       
        测试窗体的代码:
        定义一个私有对象
private GridCurrencyEdit gce;

public Form1()
        
{
            InitializeComponent();

            
// 加载数据

            
this.gce = new GridCurrencyEdit(this.colSinglePrice, this.dsTest.dtOrderMaster, 42, Color.Beige);
        }


private void UpdateData()
        
{
            
this.gce.PreUpdate();
            
//执行了上述函数再更新数据
        }


     具体源代码一并奉上,对应DevExpress版本2.0.0到最新的6.1.4都可以; 代码基于.net 2.0,如果要“回迁”到1.1的,就把那几个匿名事件改一下就可以了. 希望各位高手提出宝贵意见和整改代码,或者是对其进一步优雅的封装,都非常期待:)
        /Files/timiil/GridCurrencyHelper.rar
LightweightCTI开发实录(4)系统如何工作:【上一篇】
使用ASP.NET Atlas开发检测密码强度的自定义Behavior:【下一篇】
【相关文章】
  • 使用DEVEXPRESS部件打印时标题的处理
  • DevExpress打印相关代码
  • 《经典.NET XP/2003风格控件》((Component .NET) DevExpress 9 Components)1.5.0.1-2.1.4
  • DevExpress ExpressOrgChart V1.3.2 For D7
  • DevExpress Inspector v2.01 For D6-7
  • DevExpress FlowChart v1.3.2 For D7
  • DevExpress MemData v1.8.2 For D7
  • DevExpress VerticalGrid v3.0.1 For D7
  • DevExpress SpreadSheet FS v1.1.11 For D6,7
  • Devexpress Page Control FS v2.12 For D7
  • 【随机文章】
  • 巧用日期转换函数验证用户输入(DLEPHI)
  • 拓扑排序专题
  • Flash游戏制作:贪食蛇
  • 处理solaris系统不能引导一例
  • 2006 香格里拉
  • 还是喜欢原来的那个blog
  • 注册表工具
  • CSS文本属性
  • JSP动态输出Excel及中文乱码的解决
  • ASP 中 Split 函数的实例
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.