以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123198)

--  作者:seal51
--  发布时间:2018/8/9 18:55:00
--  [求助]计算
有A, d1, d2三列, 输入 d1, d2的值,如何通过下面的公式计算出A列的值

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


--  作者:有点甜
--  发布时间:2018/8/9 19:45:00
--  

不能直接代入计算?你遇到什么问题?在datacolchanged事件写代码

 

Dim d1 = e.datarow("d1")

Dim d2 = e.datarow("d2")

e.datarow("A") = (d2^2-d1^2)/4*3.1415926


--  作者:seal51
--  发布时间:2018/8/10 11:34:00
--  
谢谢, 我是不会写, 那么平方是^2, 四次方就是^4, 对吗?
--  作者:有点甜
--  发布时间:2018/8/10 11:38:00
--  
以下是引用seal51在2018/8/10 11:34:00的发言:
谢谢, 我是不会写, 那么平方是^2, 四次方就是^4, 对吗?

 

是的。


--  作者:seal51
--  发布时间:2018/10/16 18:32:00
--  
当计算字段不为数字的时候会提示错误:
传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 12 (""): 提供的值不是数据类型 float 的有效实例。请检查源数据中的无效值。例如,小数位数大于精度的数值类型的数据即为无效值。
如果更改代码呢?

--  作者:有点蓝
--  发布时间:2018/10/16 20:04:00
--  
既然是数值计算,为什么不改为数值列?如果计算结果比较大,把A里改为高精度列
--  作者:seal51
--  发布时间:2018/10/16 22:11:00
--  
没填写数值的时候,点击保存或者关闭按钮时,会出现这种状况,我干脆就设计默认值为0吧
--  作者:有点蓝
--  发布时间:2018/10/16 22:17:00
--  
如果是数值列,有没有值上面的代码都不会有问题。

什么事件写了什么代码?贴出来看看

--  作者:seal51
--  发布时间:2018/10/17 7:57:00
--  
Dim cs1 = e.DataRow("cs1")
Dim ood1 = e.DataRow("ood1")
Dim oid2 = e.DataRow("oid2")
Dim oysl1 = e.DataRow("oysl1")

SystemReady = False
e.DataRow("oysl1") = (cs1-(ood1-oid2)/2)/cs1
SystemReady = True

其他列数值为空的时候, 列oysl1显示“非数字”

--  作者:有点甜
--  发布时间:2018/10/17 8:49:00
--  

改成这样

 

Dim cs1 = e.DataRow("cs1")
Dim ood1 = e.DataRow("ood1")
Dim oid2 = e.DataRow("oid2")
Dim oysl1 = e.DataRow("oysl1")

If cs1 <> Nothing Then
    SystemReady = False
    e.DataRow("oysl1") = (cs1-(ood1-oid2)/2)/cs1
    SystemReady = True
End If