以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请问下面的代码错误在哪……  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=25081)

--  作者:zjyhsf320
--  发布时间:2012/10/30 21:12:00
--  [求助]请问下面的代码错误在哪……

Dim v As String
If e.DataRow.IsNull("金额") = False And e.DataRow("收支") = "支出" Then 

    Dim r As Single = e.DataRow("金额")   ‘金额列为单精度类型。
    v="-" & CStr(r)
    r=CSng(v)
    e.DataRow("金额") = r
End If

 

想法是:如果“收支”列为“支出”,则在“金额”中加上“-”号。以上代码是“DataColChanged”事件中编写的,请大仙们指出错误在哪……


--  作者:狐狸爸爸
--  发布时间:2012/10/30 21:21:00
--  

If e.DataCol.name = "收支" Then \'判断列名是必须的
    If e.DataRow.IsNull("金额") = False And e.DataRow("收支") = "支出" Then
        If e.DataRow("金额") > 0 Then
            e.DataRow("金额") = - e.DataRow("金额")
        End If
    End If
End If


--  作者:zjyhsf320
--  发布时间:2012/10/30 21:30:00
--  

谢狐爸,错误消失了,要改一下所判断的列名。原来我将求相反数想复杂了!

 

If e.DataCol.name = "金额" Then \'判断列名是必须的
  If e.DataRow.IsNull("金额") = False And e.DataRow("收支") = "支出" Then
    If e.DataRow("金额") > 0 Then
      e.DataRow("金额") = - e.DataRow("金额")
    End If
  End If
End If

[此贴子已经被作者于2012-10-30 22:06:23编辑过]

--  作者:zjyhsf320
--  发布时间:2012/10/30 21:46:00
--  
哈,搞定了……谢谢哈
--  作者:woiz
--  发布时间:2012/10/30 21:49:00
--  

-1*e.DataRow("金额")