Foxtable(狐表)用户栏目专家坐堂 → 【已解决】DataColChanged表事件导致系统自动退出的问题


  共有5241人关注过本帖平板打印复制链接

主题:【已解决】DataColChanged表事件导致系统自动退出的问题

帅哥哟,离线,有人找我吗?
atmetmicoo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
【已解决】DataColChanged表事件导致系统自动退出的问题  发帖心情 Post By:2013/5/2 20:59:00 [只看该作者]

狐爸,

今天发现一个严重的问题,不知道是不是Bug,特做了一个新实例发上来,问题如下:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.foxdb


请打开项目,当发货明细数量大于订单的数量时候,会运行下面处代码,然后系统就自动关闭掉了,急需请狐爸帮忙,谢谢。

这是发货明细的DataColChanged事件代码

Dim num1,num2 As Double
Select Case e.DataCol.Name
    Case "发货数量"
        If e.NewValue <= 0 Then
            e.DataRow("发货数量") = e.OldValue
            Return
        End If
        Dim dr As DataRow = DataTables("订单明细").Find("ID = '" & e.DataRow("ID") &"'")
        If dr IsNot Nothing Then
            num1 = dr("已发货") - e.OldValue +e.NewValue
            num2 = dr("未发货") + e.OldValue
            
            If num1 > dr("订单数量") Then ' 运行此处代码时系统立即自动关闭
                e.DataRow("发货数量") = num2
                MessageBox.Show("发货数量不得大于订单数量")
                Return
            End If
            
            If num1 < 0 Then ' 运行此处代码时系统立即自动关闭
                e.DataRow("发货数量") = num2
                MessageBox.Show("总发货数量不得小于0")
                Return
            End If
            
            dr("已发货") = num1
        End If
End Select
[此贴子已经被作者于2013-5-3 9:55:12编辑过]

 回到顶部