以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于复杂的表达式,是否可以计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9693)

--  作者:annan
--  发布时间:2011/5/3 13:06:00
--  关于复杂的表达式,是否可以计算

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:请教老师们.rar

请看示例:表A分别有“纸箱名称,纸板规格,规格长、宽、高、单价,平方、数量、金额”列。

 

我的要求是:当“纸箱名称”列输入(比如:普通外箱),在“平方”列处自动计算(根据设定好的公式),注意:不同的纸箱名称有不同的计算公式,大概有四种公式;我在EXCEL里面是这样做的:=IF(OR(A1="普通外箱",),(长+宽+90)*(宽+高+50)*2*平方价/1000000,IF(OR(A1="普通内盒",),(长+宽+70)*(宽+高+40)*2*平方价/1000000,IF(OR(A1="一片箱",),(长*2+宽*2+20)*(宽*2+高*2+60)*2*平方价/1000000,"-"))

以上"A1"在狐表这里可以是“纸箱名称”列,

 

即:=IF(OR(纸箱名称="普通外箱",),(长+宽+90)*(宽+高+50)*2*平方价/1000000,IF(OR(纸箱名称="普通内盒",),(长+宽+70)*(宽+高+40)*2*平方价/1000000,IF(OR(纸箱名称="一片箱",),(长*2+宽*2+20)*(宽*2+高*2+60)*2*平方价/1000000,"-"))

 

求老师帮忙写一下这个公式在狐表内应该如何表达;非常感谢!附上例子,如有不明白,请留言!


--  作者:caiwenzong
--  发布时间:2011/5/3 13:20:00
--  

dim r as e.datarow

select case e.datacol.name

case "普通纸箱"

r("平方")=(r("长")+r("宽")+90)*(r("宽")+r("高")+50)*2*r("平方价")/10000

end select


--  作者:caiwenzong
--  发布时间:2011/5/3 13:21:00
--  

我只是个提示,另外的代码自己写吧,和这类似。


--  作者:caiwenzong
--  发布时间:2011/5/3 13:23:00
--  

dim r as e.datarow

select case e.datacol.name

case "普通纸箱"

r("平方")=(r("长")+r("宽")+90)*(r("宽")+r("高")+50)*2*r("平方价")/10000

case "普通内盒"

公式

end select


--  作者:czy
--  发布时间:2011/5/3 13:24:00
--  

按你的公式改差不多是这样

 

iif(纸箱名称 = \'普通外箱\',(规格_长+规格_宽+90)*(规格_宽+规格_高+50)*2*平方价/1000000,
iif(纸箱名称 = \'普通内盒\',(规格_长+规格_宽+70)*(规格_宽+规格_高+40)*2*平方价/1000000,
iif(纸箱名称 = \'一片箱\',(规格_长*2+规格_宽*2+20)*(规格_宽*2+规格_高*2+60)*2*平方价/1000000,\'-\')))


--  作者:czy
--  发布时间:2011/5/3 13:26:00
--  

长、宽、高列应该设成数值型。

表中没有看到平方价列。


--  作者:caiwenzong
--  发布时间:2011/5/3 13:31:00
--  

我没有下载附件,楼主应该增加一个”平方价“列。


--  作者:blackzhu
--  发布时间:2011/5/3 13:31:00
--  
居然碰到一个做纸箱的:

iif([纸制品名称]=\'箱夹七层板\',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]=\'井字架\',(([长]*[高]*2)+([宽]*[高]*2))*[每平方单价]/10000,IIF([纸制品名称]=\'纸桥\',(([长]+[宽]+4)*([宽]+[高]+4))*[每平方单价]/10000,iif([纸制品名称]=\'五层箱\',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]=\'七层箱\',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]=\'七层橡筋箱\',([长]+[宽]+8)*([宽]+[高]+4)*2*[每平方单价]/10000+[橡筋箱],iif([纸制品名称]=\'五层橡筋箱\',([长]+[宽]+8)*([宽]+[高]+4)*2*[每平方单价]/10000+[橡筋箱],iif([纸制品名称]=\'三层内盒\',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]=\'上下五层板\',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]=\'上下箱夹板\',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]=\'箱夹三层板\',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]=\'dr七层箱\',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]=\'十字架\',[长]*[宽]*[每平方单价]/10000,Null)))))))))))))

把我的经典给你一下!

--  作者:annan
--  发布时间:2011/5/3 13:59:00
--  

老师你好,您能帮忙 再说详细一些吗?在哪执行这些代码?


--  作者:caiwenzong
--  发布时间:2011/5/3 14:02:00
--  

表事件DataColChanged