以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]求助计算设置 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108911) |
||||
-- 作者:hahahehe21 -- 发布时间:2017/10/31 21:03:00 -- [求助]求助计算设置 表“业务估价”中粘盒费的基本计算方法为:IIF([数量]>起订个数,开机费 + ([数量] - 起订个数) *单价,开机费) 现在要增加考虑表“粘盒”中盒子类型和大小两个条件, 盒子的类型不同(扣底或不扣底),盒子大小不同(K数大小不同),对应的单价和起订数量都不一样。 好像有点复杂,不知道怎么设置粘盒费的计算公式了,求帮助。
|
||||
-- 作者:有点蓝 -- 发布时间:2017/10/31 21:32:00 -- 这种逻辑无法使用表达式做。只能用代码处理 |
||||
-- 作者:hahahehe21 -- 发布时间:2017/10/31 21:33:00 -- 那用代码如何设置呢,求助 |
||||
-- 作者:有点蓝 -- 发布时间:2017/10/31 21:50:00 -- 看不懂你表数据的关系 |
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 9:22:00 --
|
||||
-- 作者:hahahehe21 -- 发布时间:2017/11/1 21:24:00 -- 非常感谢有点甜老师,代码确实实现了我的想法,代码有点复杂,我得慢慢消化才行。我忘了写一个条件,就是扣底 和 不扣底都不选时粘盒费为空或者0, 这个要怎么改代码呢?请指教,再次感谢! |
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 21:49:00 -- Select Case e.DataCol.name Case "数量", "K数", "扣底", "不扣底" Dim kd As String = iif(e.DataRow("扣底") = True, "扣底", iif(e.DataRow("不扣底") = True, "不扣底", "")) If kd = "" Then e.DataRow("粘盒费") = Nothing Else Dim fdr As DataRow = DataTables("粘盒").find("盒子大小K <= " & e.DataRow("K数") & " and 粘盒类型 = \'" & kd & "\'", "盒子大小K desc") If fdr IsNot Nothing Then msgbox(fdr("盒子大小K")) e.DataRow("粘盒费") = IIF(e.DataRow("数量")>fdr("起订个数"),fdr("开机费") + (e.DataRow("数量") - fdr("起订个数")) * fdr("单价"), fdr("开机费")) End If End If End Select |
||||
-- 作者:hahahehe21 -- 发布时间:2017/11/1 22:01:00 -- 墙裂感谢甜老师!!! |
||||
-- 作者:hahahehe21 -- 发布时间:2017/11/1 23:05:00 -- 甜老师,我在你的代码基础上改写用到了另一工序上报错了,帮看看哪里出问题了,谢谢!
|
||||
-- 作者:有点甜 -- 发布时间:2017/11/1 23:18:00 -- 修改代码
Dim fdr1 As DataRow = DataTables("粘片基").find("盒子大小K <= \'" & e.DataRow("K数") & zpj & "\'", "盒子大小K desc") |