Foxtable(狐表)用户栏目专家坐堂 → [求助]求助计算设置


  共有2982人关注过本帖树形打印复制链接

主题:[求助]求助计算设置

帅哥哟,离线,有人找我吗?
hahahehe21
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1856 威望:0 精华:0 注册:2014/4/11 21:10:00
[求助]求助计算设置  发帖心情 Post By:2017/10/31 21:03:00 [只看该作者]

表“业务估价”中粘盒费的基本计算方法为:IIF([数量]>起订个数,开机费 + ([数量] - 起订个数) *单价,开机费)

现在要增加考虑表“粘盒”中盒子类型和大小两个条件,
盒子的类型不同(扣底或不扣底),盒子大小不同(K数大小不同),对应的单价和起订数量都不一样。

好像有点复杂,不知道怎么设置粘盒费的计算公式了,求帮助。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试 (2).foxdb




 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110571 积分:562745 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/31 21:32:00 [只看该作者]

这种逻辑无法使用表达式做。只能用代码处理

 回到顶部
帅哥哟,离线,有人找我吗?
hahahehe21
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1856 威望:0 精华:0 注册:2014/4/11 21:10:00
  发帖心情 Post By:2017/10/31 21:33:00 [只看该作者]

那用代码如何设置呢,求助

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110571 积分:562745 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/31 21:50:00 [只看该作者]

看不懂你表数据的关系

参考:http://www.foxtable.com/webhelp/scr/1452.htm

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/1 9:22:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试 (2).foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
hahahehe21
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1856 威望:0 精华:0 注册:2014/4/11 21:10:00
  发帖心情 Post By:2017/11/1 21:24:00 [只看该作者]

非常感谢有点甜老师,代码确实实现了我的想法,代码有点复杂,我得慢慢消化才行。我忘了写一个条件,就是扣底 和 不扣底都不选时粘盒费为空或者0, 这个要怎么改代码呢?请指教,再次感谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1856 威望:0 精华:0 注册:2014/4/11 21:10:00
  发帖心情 Post By:2017/11/1 22:01:00 [只看该作者]

墙裂感谢甜老师!!!

 回到顶部
帅哥哟,离线,有人找我吗?
hahahehe21
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1856 威望:0 精华:0 注册:2014/4/11 21:10:00
  发帖心情 Post By:2017/11/1 23:05:00 [只看该作者]

甜老师,我在你的代码基础上改写用到了另一工序上报错了,帮看看哪里出问题了,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试 (2) 更改.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/1 23:18:00 [只看该作者]

修改代码

 

Dim fdr1 As DataRow = DataTables("粘片基").find("盒子大小K <= '" & e.DataRow("K数") & zpj & "'", "盒子大小K desc")


 回到顶部
总数 17 1 2 下一页