以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在drawcell获取显示的值 赋值到另一列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62081)

--  作者:896539326
--  发布时间:2014/12/25 9:17:00
--  在drawcell获取显示的值 赋值到另一列
在drawcell中输入
If e.Col.Name = "数量" Then
    If e.Row(e.Col.Name) IsNot Nothing AndAlso e.Row(e.Col.Name).StartsWith("=") Then
        e.text = Eval(e.Row(e.Col.Name).substring(1))
    End If
End If

这面的功能是实现 输入=1+2 显示3,我想获取 显示3的值 并赋值到 另一个新的列数量2中,求指教

--  作者:Bin
--  发布时间:2014/12/25 9:22:00
--  
If e.Col.Name = "数量" Then
    If e.Row.isnull(e.Col.Name)=false AndAlso e.Row(e.Col.Name).StartsWith("=") Then
        e.text = Eval(e.Row(e.Col.Name).substring(1))
    End If
End If

--  作者:896539326
--  发布时间:2014/12/25 10:10:00
--  
bin 大神 你只是给我的代码复制了下 没怎么变啊
--  作者:Bin
--  发布时间:2014/12/25 10:11:00
--  
仔细看,动手试
--  作者:狐狸爸爸
--  发布时间:2014/12/25 10:43:00
--  
以下是引用896539326在2014-12-25 10:10:00的发言:
bin 大神 你只是给我的代码复制了下 没怎么变啊

 

如果要在另一列显示计算结果,要用DataColChanged事件:

 

If e.DataCol.Name = "数量" Then

   if e.NewValue > "" AndAlso e.NewValue.StartsWith("=") then

        e.DataRow("另一列") = Eval(e.NewValue.SubString(1))

   End If

End If

 

设置完成之后,要重置一下数量列,已经输入的数据才会计算:

http://www.foxtable.com/help/topics/1469.htm

[此贴子已经被作者于2014-12-25 10:47:06编辑过]

--  作者:896539326
--  发布时间:2014/12/25 10:57:00
--  
真心谢谢 大神们 节日快乐~