以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于在DataColChanged事件使用IsNumeric判断出错?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=123019)

--  作者:kylin
--  发布时间:2018/8/6 17:35:00
--  关于在DataColChanged事件使用IsNumeric判断出错?
1、原代码:

Dim dtn As String = e.DataTable.Name
Select Case dtn
    Case "McsEntDtl","McsOutWSDtl"
        Dim cl As DataCol = e.DataCol
        If cl.IsNumeric
           Dim cn As String = cl.Name
           Dim qsz,hsz As Double
           hsz = e.NewValue
           qsz = e.OldValue
           Functions.Execute("AutoSum",dtn,cn,qsz,hsz)         
        End If              
End Select

测试,在字段QTY上输入数值,错误提示按确定直接退出系统。各个数值型字段,除了QTY是整数,其余都是双精度的。

2、改了代码:

Dim dtn As String = e.DataTable.Name
Select Case dtn
    Case "McsEntDtl","McsOutWSDtl"
        Dim cl As DataCol = e.DataCol       
        Dim cn As String = cl.Name
        Select Case cn
            Case "QTY","NMWgt","GSWgt","AllWgt","GSMC","AllC","MyBillPay","GdBillPay"
                Dim qsz,hsz As Double
                hsz = e.NewValue
                qsz = e.OldValue
                Functions.Execute("AutoSum",dtn,cn,qsz,hsz)
        End Select        
        \' Case
       
End Select

数据测试没有任何问题

3、结论:整数型自动与这个IsNumeric“配合”得不是那么完好?!


--  作者:有点甜
--  发布时间:2018/8/6 17:39:00
--  

你的情况肯定是死循环了,修改某列的时候同时会触发datacolchanged事件的。

 

不然你加上systemready http://www.foxtable.com/webhelp/scr/2218.htm

 


--  作者:kylin
--  发布时间:2018/8/6 18:23:00
--  
我试试先