以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请问我这个错误显示代码哪里出问题了  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78309)

--  作者:yumo123
--  发布时间:2015/12/6 23:14:00
--  [求助]请问我这个错误显示代码哪里出问题了
我设立了3个列,分别为借款总金额、 已还款、未还款
其中总金额为双精度字符,已还款是双精度字符,未还款是表达式。
我写的代码如下:想表示已还大于总金额的时候,在未还款上显示错误,用的DataColChanged事件。

请问我应该如何写,错在哪里?
Select Case e.DataCol.Name
    Case "还款_已还金额","借款_总金额"
        If e.DataRow.Isnull("还款_已还金额") - e.DataRow.Isnull("借款_总金额")<0 Then
            DataTables("应收账款").DataCols("还款_已还金额").RaiseDataColChanged
            e.DataRow.SetError("借款_未还金额", "还款不能超过借款!!!")
        Else
            e.DataRow.SetError("借款_未还金额","")
        End If

End Select


--  作者:Hyphen
--  发布时间:2015/12/7 8:24:00
--  
Select Case e.DataCol.Name
    Case "还款_已还金额","借款_总金额"
        Dim has As Double = IIF(e.DataRow.Isnull("还款_已还金额"),0,e.DataRow("还款_已还金额")  )
        Dim all As Double = IIF(e.DataRow.Isnull("借款_总金额"),0,e.DataRow("借款_总金额")  )
        If has - all < 0 Then
            DataTables("应收账款").DataCols("还款_已还金额").RaiseDataColChanged
            e.DataRow.SetError("借款_未还金额", "还款不能超过借款!!!")
        Else
            e.DataRow.SetError("借款_未还金额","")
        End If
       
       
End Select

--  作者:yumo123
--  发布时间:2015/12/7 10:45:00
--  
谢谢图片点击可在新窗口打开查看
--  作者:yumo123
--  发布时间:2015/12/14 12:22:00
--  

请问 我学习MessageBox.Show  把代码改成了这样 又出现问题了。请问哪里不对呢~~~用在DataColChanging中的

<!--EndFragment-->

 

Select Case e.DataCol.Name
    Case "还款_已还金额","借款_总金额"
        Dim has As Double = IIF(e.DataRow.Isnull("还款_已还金额"),0,e.DataRow("还款_已还金额")  )
        Dim all As Double = IIF(e.DataRow.Isnull("借款_总金额"),0,e.DataRow("借款_总金额")  )
       If has > all  Then
            e.Cancel = True
            MessageBox.Show("还款大于借款","提示",MessageBoxButtons.OK)
        End If
       End Select


--  作者:大红袍
--  发布时间:2015/12/14 15:09:00
--  
Select Case e.DataCol.Name
    Case "还款_已还金额"
        Dim has As Double = IIF(e.newValue=Nothing,0,e.newValue)
        Dim all As Double = IIF(e.DataRow.Isnull("借款_总金额"),0,e.DataRow("借款_总金额")  )
        If has > all  Then
            e.Cancel = True
            MessageBox.Show("还款大于借款","提示",MessageBoxButtons.OK)
        End If
    Case "借款_总金额"
        Dim all As Double = IIF(e.newValue=Nothing,0,e.newValue)
        Dim has As Double = IIF(e.DataRow.Isnull("还款_已还金额"),0,e.DataRow("还款_已还金额")  )
        If has > all  Then
            e.Cancel = True
            MessageBox.Show("还款大于借款","提示",MessageBoxButtons.OK)
        End If
End Select

--  作者:yumo123
--  发布时间:2015/12/14 16:19:00
--  
谢谢!!图片点击可在新窗口打开查看