Foxtable(狐表)用户栏目专家坐堂 → [求助金额如何根据条件计算结果


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

主题:[求助金额如何根据条件计算结果

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


加好友 发短信
等级:婴狐 帖子:23 积分:253 威望:0 精华:0 注册:2014/11/1 13:59:00
[求助金额如何根据条件计算结果  发帖心情 Post By:2014/11/21 13:09:00 [只看该作者]

项目文件里有两个表
订单记录表和价格表,订单记录表如何根据价格表里的对应条件算出金额。
条件是:订单记录的客户,客户性质,商品名称=价格表的客户,客户性质,商品名称,并且订单记录的重量必须
符合价格表的重量段,也就是订单记录.重量>=价格表.最低重量  和 订单记录.重量<=价格表.最高重量
找到符合条件的  那么订单记录表.金额=重量*价格表.单价
找不到就跳过  =nothing
请各位大侠给出合理的代码,也许我这样的结构不理想,各位大侠有更好的办法算出金额,请给代码
我试过关联,重量段解决不了,而且父表不能有多个一样的关联记录。请看项目文件,谢谢

[此贴子已经被作者于2014-11-21 14:03:52编辑过]

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


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

项目附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


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


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

DataColChanged事件,代码

 

Select Case e.DataCol.Name
    Case "客户","客户性质","商品名称", "重量"
        Dim filter As String = "客户 = '" & e.DataRow("客户") & "' and 客户性质 = '" & e.DataRow("客户性质") & "' and 商品名称 = '" & e.DataRow("商品名称") & "'"
        Dim fdr As DataRow = DataTables("价格表").Find(filter & " and 最低重量 >= " & e.DataRow("重量"), "最低重量")
        If fdr IsNot Nothing Then
            e.DataRow("金额") = fdr("单价") * e.DataRow("重量")
        End If
End Select


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


加好友 发短信
等级:婴狐 帖子:23 积分:253 威望:0 精华:0 注册:2014/11/1 13:59:00
[求助]不对呀  发帖心情 Post By:2014/11/21 14:45:00 [只看该作者]

DataColChanged事件,代码

 

Select Case e.DataCol.Name
    Case "客户","客户性质","商品名称", "重量"
        Dim filter As String = "客户 = '" & e.DataRow("客户") & "' and 客户性质 = '" & e.DataRow("客户性质") & "' and 商品名称 = '" & e.DataRow("商品名称") & "'"
        Dim fdr As DataRow = DataTables("价格表").Find(filter & " and 最低重量 >= " & e.DataRow("重量"), "最低重量")
        If fdr IsNot Nothing Then
            e.DataRow("金额") = fdr("单价") * e.DataRow("重量")
        End If
End Select




订单记录的重量要满足订单记录.重量>=价格表.最低重量  和 订单记录.重量<=价格表.最高重量



现在的情况是比较了最低重量,没有比较最高重量。价格表的最低重量和最高重量是个范围来的,订单记录的重量要符合这范围


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


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

 

Dim fdr As DataRow = DataTables("价格表").Find(filter & " and 最低重量 <= " & e.DataRow("重量") & " and 最高总量 >= " & e.DataRow("重量"), "最低重量")


 回到顶部