以文本方式查看主题 - 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 把代码改成了这样 又出现问题了。请问哪里不对呢~~~ <!--EndFragment-->
Select Case e.DataCol.Name |
-- 作者:大红袍 -- 发布时间: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 -- 谢谢!! ![]() |