以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教如何用公式直接实现30*20*10的计算?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4454)

--  作者:木鸡
--  发布时间:2009/9/26 13:04:00
--  [求助]请教如何用公式直接实现30*20*10的计算?
工作中要用到长方体或圆形计算体积的问题,

EXCEL中我用EVALUATE函数来计算,很方便。

在FOXTABLE中,请教如何用公式直接实现30*20*10的计算?

先感谢哈




图片点击可在新窗口打开查看此主题相关图片如下:kkk.jpg
图片点击可在新窗口打开查看

--  作者:木鸡
--  发布时间:2009/9/26 13:05:00
--  
感谢,大家十一国庆愉快!!
--  作者:czy
--  发布时间:2009/9/26 13:21:00
--  

\'DataColChanged事件代码

if e.DataCol.Name = "长x宽x高" Then
    e.DataRow("体积") = eval(e.DataRow("长x宽x高"))
End If


--  作者:木鸡
--  发布时间:2009/9/26 16:20:00
--  
谢谢czy兄,

再次请教
如果要计算 重量=长*宽*高*数量*比重/1000000,应该怎么写?



图片点击可在新窗口打开查看此主题相关图片如下:llll.jpg
图片点击可在新窗口打开查看

--  作者:程兴刚
--  发布时间:2009/9/26 17:20:00
--  

同理:


\'DataColChanged事件代码

if e.DataCol.Name = "长x宽x高" Then
    e.DataRow("体积") = eval(e.DataRow("长x宽x高"))
End If

if e.DataCol.Name = "长x宽x高"  or e.DataCol.Name = "数量"  or e.DataCol.Name = "比重" Then
    e.DataRow("重量") = eval(e.DataRow("长x宽x高") & "*" & e.DataRow("数量")  & "*" & e.DataRow("比重"))/1000000
End If


[此贴子已经被作者于2009-9-26 17:28:17编辑过]

--  作者:程兴刚
--  发布时间:2009/9/26 17:26:00
--  
当然可以简写:

dim r as datarow = e.datarow

if e.DataCol.Name = "长x宽x高" Then
    r("体积") = eval(r("长x宽x高"))
End If

if e.DataCol.Name = "长x宽x高"  or e.DataCol.Name = "数量"  or e.DataCol.Name = "比重" Then
    r("重量") = eval(r("长x宽x高") & "*" & r("数量")  & "*" & r("比重"))/1000000
End If


--  作者:yangming
--  发布时间:2009/9/26 17:41:00
--  
Dim s As String = eval(e.DataRow("长宽高"),e.DataRow)
e.DataRow("重量") = s*e.DataRow("数量")*e.DataRow("比重")/1000000

--  作者:程兴刚
--  发布时间:2009/9/26 19:07:00
--  
Dim s As String = eval(e.DataRow("长宽高"),e.DataRow)

S类型?

      原来String的数字也可以参与计算,我怎么不知道,郁闷!
[此贴子已经被作者于2009-9-27 10:43:08编辑过]

--  作者:木鸡
--  发布时间:2009/9/27 7:15:00
--  
咱们论坛热心人真多,谢谢楼上各位,

我来试试哈,不懂再问,
--  作者:木鸡
--  发布时间:2009/9/27 9:24:00
--  
试了一下,上面的几种方法都行的,谢谢

程版的方法用的是基本功,

Y版的方法更简洁、清灵,

都是好老师!