以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]第三列=(第二列-第一列)/第一列 *100% ,这个怎么编。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117048)

--  作者:vxzx
--  发布时间:2018/4/4 17:51:00
--  [求助]第三列=(第二列-第一列)/第一列 *100% ,这个怎么编。
如果第一列非空,当在第二列输入数据时,第三列按公式 第三列=(第二列-第一列)/第一列 *100% 计算填入,求解,谢谢。
--  作者:有点甜
--  发布时间:2018/4/4 18:07:00
--  
iif(第一列=0, null, (第二列-第一列) / 第一列)
--  作者:vxzx
--  发布时间:2018/4/4 18:23:00
--  
老师,有没有参考资料,在DataColChanged里编吗? 还是数据列改为表达式列编。
--  作者:有点甜
--  发布时间:2018/4/4 18:39:00
--  

添加表达式列,用2楼的表达式,即可

 

http://www.foxtable.com/webhelp/scr/0031.htm

 


--  作者:vxzx
--  发布时间:2018/4/4 18:49:00
--  
哦,我知道我错在哪里了,原来要把第一列和第二列 由字符列改为数值类型,难怪我一直在表达式列编都报错,当时没认真看报错的字内容。


--  作者:psu3785494
--  发布时间:2018/4/4 21:32:00
--  

If e.DataRow.IsNull("第一列") Then
    If e.DataCol.Name = "第二列" Then
        If e.NewValue IsNot Nothing Then
            e.Cancel =True
        Else
            DataTables("求值").DataCols("计算值").Expression = "((第二列 - 第一列)/第一列) * 100"
        End If
    End If
End If

 

我在

DataColChanging中编的,就是百分数怎么编,不会

[此贴子已经被作者于2018/4/4 21:33:36编辑过]

--  作者:有点甜
--  发布时间:2018/4/4 21:37:00
--  

DataColChanged事件

 

If e.DataRow.IsNull("第一列")  Then

    e.datarow("计算值") = Nothing

Else

    e.datarow("计算值") = (e.datarow("第二列") - e.DataRow("第一列")) / e.DataRow("第一列")
End If

--  作者:有点甜
--  发布时间:2018/4/4 21:37:00
--  

http://www.foxtable.com/webhelp/scr/0050.htm

 


--  作者:psu3785494
--  发布时间:2018/4/4 21:47:00
--  

太谢谢了

 


--  作者:psu3785494
--  发布时间:2018/4/5 10:57:00
--  

DataColChanged事件

 

If e.DataRow.IsNull("第一列") Then
    e.DataRow("计算值") = Nothing
Else
    If e.DataRow.IsNull("第二列") Then
        e.DataRow("计算值") = Nothing
    Else
        e.DataRow("计算值") = (e.DataRow("第二列") - e.DataRow("第一列"))/e.DataRow("第一列")
    End If
End If

[此贴子已经被作者于2018/4/5 10:57:31编辑过]