以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  点击删除按钮出现的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=83679)

--  作者:xiaohuli
--  发布时间:2016/4/14 14:48:00
--  点击删除按钮出现的问题

当我新增了一条明细记录,但是啥都没填,然后删除明细记录的时候,出现错误,表A的DataColChanged,调用的目标发生了异常,值对于Decimal太大或太小,这个怎么回事?


--  作者:大红袍
--  发布时间:2016/4/14 15:04:00
--  
 贴出对应出错的代码。
--  作者:xiaohuli
--  发布时间:2016/4/14 15:10:00
--  

明细表DataColChanged里面的代码:

Dim zdmc As DataRow
\'在总表表查找所输入的单号行
zdmc = DataTables("订单总表").Find("[订单ID] = \'" & e.DataRow("订单ID") & "\'")
If zdmc IsNot Nothing Then \'如果找到
    \'将找到名称内容填入到正在输入的行中.
e.DataRow("id2") = zdmc("id2")
    e.DataRow("订单日期") = zdmc("订单日期")
    e.DataRow("月份") = zdmc("月份")
e.DataRow("年份") = zdmc("年份")
    e.DataRow("订单类型") = zdmc("订单类型")
e.DataRow("部门1") = zdmc("部门1")
e.DataRow("部门2") = zdmc("部门2")
   e.DataRow("编号") = zdmc("编号")
    e.DataRow("客户名称") = zdmc("客户名称")
    e.DataRow("区域") = zdmc("区域")
    e.DataRow("实际用途") = zdmc("实际用途")
 \'   e.DataRow("备注说明") = zdmc("备注说明")
    e.DataRow("省市") = zdmc("省市")
    e.DataRow("县市") = zdmc("县市")
e.DataRow("终点") = zdmc("终点")
e.DataRow("订单区域") = zdmc("订单区域")
End If
Dim je As DataRow = e.DataRow \'定义je为当前行
Select Case e.DataCol.Name \'如果列名称
    Case "单价","数量","包装系数" \'变化的是这些列
        If  je.IsNull("数量") Then
            je("件数") = Nothing
            je("金额") = Nothing
            Tables("订单总表").Current("订单金额")=DataTables("订单明细表").Compute("sum(金额)" ,"[订单ID] = \'" & e.DataRow("订单ID") & "\'")
           
        Else
            je("件数") = je("数量") / je("包装系数")
            je("金额") = je("数量") * je("单价")
            Tables("订单总表").Current("订单金额")=DataTables("订单明细表").Compute("sum(金额)" ,"[订单ID] = \'" & e.DataRow("订单ID") & "\'")
           
        End If
       
End Select

If e.DataCol.Name = "提交" Then \'如果是已结帐列的内容变动
    If e.NewValue = True Then \'而且变动后的值是True(已勾选)
        e.DataRow.Locked = True \'那么锁定此行
    End If
End If


--  作者:大红袍
--  发布时间:2016/4/14 15:16:00
--  

 把这两句去掉,看看是否还报错?

 

je("件数") = je("数量") / je("包装系数")
je("金额") = je("数量") * je("单价")