以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  公式转换问题?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=6373)

--  作者:jjyou
--  发布时间:2010/3/25 14:02:00
--  公式转换问题?
这个公式怎么转换?  
易表中有下列公式,请高手指点以下,在FOXTABLE中如何转换?
if([地点] ="新八",[Q混],
if([地点] ="新九",[Q混],
if([地点] ="新一",Round(Sqrt((760-([负压]/0.133)) * [压差]/(273+[温度])) * 0.621 * [孔板系数] * [浓度校正系数],2),
if([地点] ="新二",Round(Sqrt((760-([负压])) * [压差]/(273+[温度])) * 0.621 * [孔板系数] * [浓度校正系数],2),
Round(Sqrt((760+Quotient((-[标高]),12)-[负压]) * [压差]/(273+[温度])) * 0.621 * [孔板系数] * [浓度校正系数],2)))))
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表.table


--  作者:yangming
--  发布时间:2010/3/25 15:02:00
--  
你这段公式的结果是放在何处的?或是哪列?
--  作者:jjyou
--  发布时间:2010/3/25 15:39:00
--  
结果放在[Q混]列
--  作者:yangming
--  发布时间:2010/3/25 16:14:00
--  
表事件:

DataColChanged 中

如果此列没有刷新,将光标放在负压等公式中用到的相关列中,点重置列就能刷新
if e.DataRow("地点") ="新八" Or e.DataRow("地点") ="新九" Then
e.DataRow("Q混")=e.DataRow("Q混")
Else If e.DataRow("地点") ="新一"
e.DataRow("Q混")= Math.Round(Math.Sqrt((760-(e.DataRow("负压")/0.133)) * e.DataRow("压差")/(273 + e.DataRow("温度"))) * 0.621 * e.DataRow("孔板系数") * e.DataRow("浓度校正系数"),2)
Else If e.DataRow("地点") ="新二"
e.DataRow("Q混")=Math.Round(Math.Sqrt((760-(e.DataRow("负压"))) * e.DataRow("压差")/(273+ e.DataRow("温度"))) * 0.621 * e.DataRow("孔板系数") *  e.DataRow("浓度校正系数"),2)
Else
e.DataRow("Q混")=Math.Round(Math.Sqrt((760+(- e.DataRow("标高")\\12)- e.DataRow("负压")) *e.DataRow("压差")/(273+e.DataRow("温度"))) * 0.621 * e.DataRow("孔板系数") *  e.DataRow("浓度校正系数"),2)
End If

--  作者:jjyou
--  发布时间:2010/3/25 17:03:00
--  
谢谢yangming,问题已解决
--  作者:czy
--  发布时间:2010/3/26 1:20:00
--  
新八、新九应该不用判断的。
另外需要判断触动列,否则这样的效率太低了。