以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  计算编码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92644)

--  作者:feixianzhi
--  发布时间:2016/11/9 16:20:00
--  计算编码问题
哪位大师帮忙看一下,我的代码错在哪了?

Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "收款合计","预付合计","入库合计","发票合计","返款合计"
        If dr1.IsNull("收款合计") OrElse dr1.IsNull("预付合计") OrElse dr1.IsNull("入库合计") OrElse dr1.IsNull("发票合计") OrElse dr1.IsNull("返款合计") Then
            dr1("预付余额") = Nothing
            dr1("入库余额") = Nothing
            dr1("发票余额") = Nothing
            dr1("返款余额") = Nothing
        Else
            dr1("预付余额") = dr1("收款合计") - dr1("预付合计")
            dr1("入库余额") = dr1("预付合计") - dr1("入库合计")
            dr1("发票余额") = dr1("入库合计") - dr1("发票合计")
            dr1("返款余额") = dr1("收款合计") - dr1("返款合计")
        End If
End Select

--  作者:有点蓝
--  发布时间:2016/11/9 16:32:00
--  
有什么错误?
--  作者:feixianzhi
--  发布时间:2016/11/9 16:34:00
--  
没有计算结果。


--  作者:有点蓝
--  发布时间:2016/11/9 16:46:00
--  
代码只要有其中一个合计为空值都全部不会计算,。检查数据和计算逻辑
--  作者:feixianzhi
--  发布时间:2016/11/9 16:49:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20161109164539.png
图片点击可在新窗口打开查看
我的表结构是这样的,我想的结果是,预付余额=收款合计-预付合计;入库余额=预付合计-入库合计;发票余额=入库合计-发票合计;返款余额=收款合计-返款合计。请老师帮忙。

--  作者:有点蓝
--  发布时间:2016/11/9 16:52:00
--  
Dim dr1 As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "收款合计","预付合计","入库合计","发票合计","返款合计"
        
        dr1("预付余额") = val(dr1("收款合计")) - val(dr1("预付合计"))
        dr1("入库余额") = val(dr1("预付合计")) - val(dr1("入库合计"))
        dr1("发票余额") = val(dr1("入库合计")) - val(dr1("发票合计"))
        dr1("返款余额") = val(dr1("收款合计")) - val(dr1("返款合计"))
        
End Select

--  作者:feixianzhi
--  发布时间:2016/11/9 22:21:00
--  

非常感谢有点蓝老师。