以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多列多条件求值问题求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59466)

--  作者:sulgz
--  发布时间:2014/11/4 21:20:00
--  [求助]多列多条件求值问题求助
机械费表

如果 机械名称=”推土机“ 和 单位=”台班“
那么 单价=1000*0.45  租赁价=594

如果 机械名称=”水车“ 和 单位=”台班“
那么 单价=600*0.45  租赁价=588


如果 机械名称=”水车“ 和 单位=”月“
那么 单价=640*0.45  租赁价=388


用按钮方式如何写代码?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理.table
[此贴子已经被作者于2014-11-4 21:20:39编辑过]

--  作者:有点甜
--  发布时间:2014/11/4 21:26:00
--  
iif(机械名称=\'推土机\' and 单位=\'台班\', 1000*0.45*租赁价, iif(机械名称=\'水车\' and 单位=\'台班\',600*0.45*租赁价, iif(机械名称=\'水车\' and 单位=\'月\',640*0.45*租赁价,0)))
--  作者:sulgz
--  发布时间:2014/11/4 21:28:00
--  
不要表达式,要代码
--  作者:有点甜
--  发布时间:2014/11/4 21:36:00
--  

 1、单价列做成数据列

 

 2、datacolchanged事件,代码

 


If e.DataCol.Name = "机械名称" OrElse e.DataCol.Name = "单位" OrElse e.DataCol.Name = "租赁价" Then
    If e.DataRow("机械名称")="推土机" AndAlso e.DataRow("单位")="台班" Then
        e.DataRow("单价") = 1000*0.45*e.DataRow("租赁价")
    Else If e.DataRow("机械名称")="水车" AndAlso e.DataRow("单位")="台班" Then
        e.DataRow("单价") = 640*0.45*e.DataRow("租赁价")
    Else If e.DataRow("机械名称")="水车" AndAlso e.DataRow("单位")="月" Then
        e.DataRow("单价") = 640*0.45*e.DataRow("租赁价")
    Else
        e.DataRow("单价") = Nothing
    End If
End If


--  作者:sulgz
--  发布时间:2014/11/4 21:44:00
--  
感谢,不过不行,没反应!能用按钮实现吗?
[此贴子已经被作者于2014-11-4 21:44:26编辑过]

--  作者:有点甜
--  发布时间:2014/11/4 21:45:00
--  
 你要填入对应数据才会计算
--  作者:sulgz
--  发布时间:2014/11/4 21:49:00
--  
试过了,不行
--  作者:有点甜
--  发布时间:2014/11/4 21:51:00
--  

 我测试可以。

 

 1、填入机械名称;

 

 2、填入单位;

 

 3、填入租赁价


--  作者:sulgz
--  发布时间:2014/11/4 21:58:00
--  
能用按钮实现吗?
--  作者:有点甜
--  发布时间:2014/11/4 22:00:00
--  

 按钮代码

 

DataTables("机械费表").DataCols("机械名称").RaiseDataColChanged()