以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数值的计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159059)

--  作者:青丘狐
--  发布时间:2020/12/12 10:13:00
--  数值的计算

Dim dr2 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "件重","件数"
        If dr2.IsNull("件重") OrElse dr2.IsNull("件数") Then
            dr2("重量") = Nothing
        Else
            dr2("重量") = dr2("件重") * dr2("件数")
        End If
End Select

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "件重","重量"
        If dr1.IsNull("重量") OrElse dr1.IsNull("件重") Then
            dr1("件数") = Nothing
        Else
            dr1("件数") = dr1("重量") / dr1("件重")
        End If
End Select

Dim dr3 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "重量","件数"
        If dr3.IsNull("重量") OrElse dr3.IsNull("件数") Then
            dr3("件重") = Nothing
        Else
            dr3("件重") = dr3("重量") / dr3("件数")
        End If
End Select

 

 

dr2("重量") = dr2("件重") * dr2("件数") 和  dr1("件数") = dr1("重量") / dr1("件重")可以计算没问题

 

dr3("件重") = dr3("重量") / dr3("件数") 输入数据计算数据直接清空了

 

 

[此贴子已经被作者于2020/12/12 10:13:28编辑过]

--  作者:有点蓝
--  发布时间:2020/12/12 10:35:00
--  

Select Case e.DataCol.Name
    Case "件重","件数"

systemready = false
        If dr2.IsNull("件重") OrElse dr2.IsNull("件数") Then 
            dr2("重量") = Nothing
        Else
            dr2("重量") = dr2("件重") * dr2("件数")
        End If

systemready = true
End Select

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "件重","重量"

systemready = false
        If dr1.IsNull("重量") OrElse dr1.IsNull("件重") Then 


--  作者:青丘狐
--  发布时间:2020/12/12 11:18:00
--  

所以比较安全的编码方式为:

SystemReady = False
Try
\'追加数据代码
Catch ex
As Exception
    MessageBox.Show(
"追加数据失败")
End
Try
SystemReady =
True

 

 

现在系统进入锁死状态 怎么解开?


--  作者:有点蓝
--  发布时间:2020/12/12 11:21:00
--  

重启项目,改代码

Select Case e.DataCol.Name
    Case "件重","件数"

systemready = false

Try
        If dr2.IsNull("件重") OrElse dr2.IsNull("件数") Then 
            dr2("重量") = Nothing
        Else
            dr2("重量") = dr2("件重") * dr2("件数")
        End If

finally
systemready = true
End
 Try


End Select


--  作者:青丘狐
--  发布时间:2020/12/12 11:58:00
--  
还是不行 要注释算dr2("重量") = dr2("件重") * dr2("件数") 的  dr3("件重") = dr3("重量") / dr3("件数") 才会计算
--  作者:青丘狐
--  发布时间:2020/12/12 12:14:00
--  

Dim dr2 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "件重","件数"
        systemready = False
        Try
            If dr2.IsNull("件重") OrElse dr2.IsNull("件数") Then
                dr2("重量") = Nothing
            Else
                dr2("重量") = dr2("件重") * dr2("件数")
            End If
        finally
            systemready = True
        End Try
End Select

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "件重","重量"
        systemready = False
        Try
            If dr1.IsNull("重量") OrElse dr1.IsNull("件重") Then
                dr1("件数") = Nothing
            Else
                dr1("件数") = dr1("重量") / dr1("件重")
            End If
        finally
            systemready = True
        End Try      
End Select

Dim dr3 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "重量","件数"      
            If dr3.IsNull("重量") OrElse dr3.IsNull("件数") Then
                dr3("件重") = Nothing
            Else
                dr3("件重") = dr3("重量") / dr3("件数")
            End If      
End Select


--  作者:青丘狐
--  发布时间:2020/12/12 12:22:00
--  
这种计算方式建议可以完善放到帮助里 这种反推计算财务会用到