Foxtable(狐表)用户栏目专家坐堂 → [求助]根据条件判断求值


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

主题:[求助]根据条件判断求值

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


加好友 发短信
等级:二尾狐 帖子:543 积分:4853 威望:0 精华:0 注册:2017/4/20 11:08:00
[求助]根据条件判断求值  发帖心情 Post By:2018/1/13 12:42:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:根据条件判断求值.foxdb



老师好:
      关于“综合单价”,需要按其他几列条件及关联表记录条件,求值,请老师帮做个例子,万分感谢!
谢谢!

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


加好友 发短信
等级:超级版主 帖子:106816 积分:543281 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/13 14:24:00 [只看该作者]

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

使用find的时候,按单价倒序排序即可查询最大值
Dim dr As DataRow DataTables("来料记录").Find("料号 = '" & e.DataRow("料号") & "'","外部单价 desc")


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


加好友 发短信
等级:二尾狐 帖子:543 积分:4853 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2018/1/13 14:59:00 [只看该作者]

谢谢有点蓝老师,如果是单纯的跨表引用,现在简单的会了一点点,学习实验时,表达式用的多,这次实际情况的需求是需要很多判断条件的,请老师有时间帮忙做一下,谢谢!

1.  对《成本预算表》根据“是否需要加工”列对应行判断,对“综合单价”列对应行进行求值

1.1《成本预算表》里:”外部单价”、内部单价素材单价加工单价都是分别取《来料记录》表对应列的历史最高单价

1.2 如果《成本预算表》里“是否需要加工”列对应行是不需要加工行,那么“综合单价”列对应行的值就取:该行料号对应《来料记录》表关联料号的历史最高单价(注:如果外部单价高,就取外部单价历史最高的单价到“综合单价”位置,要是内部单价高,就取内部单价的历史最高单价到“综合单价”位置)  
    
1.3 如果《成本预算表》里“是否需要加工”列对应行是需要加工行,那么“综合单价”列对应行的值就取:该行料号对应《来料记录》表关联料号的素材单价历史最高单价+加工单价历史最高单价的和到“综合单价”位置

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


加好友 发短信
等级:超级版主 帖子:106816 积分:543281 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/13 15:10:00 [只看该作者]

Select Case e.DataCol.Name
    Case "料号","是否需要加工"
        If e.DataRow.IsNull("料号") OrElse e.DataRow.IsNull("是否需要加工") Then
            e.DataRow("外部单价") = Nothing
            'e.DataRow("型号") = Nothing
            'e.DataRow("规格") = Nothing
            'e.DataRow("单价") = Nothing
        Else
            Dim dr As DataRow
            If e.DataRow("是否需要加工") = "需要加工"
                dr = DataTables("来料记录").Find("[料号] = '" & e.DataRow("料号") & "'","素材单价 desc")
                If dr IsNot Nothing
                    e.DataRow("素材单价") = dr("素材单价")
                    e.DataRow("综合单价") = dr("素材单价") + dr("加工单价")
                End If
            Else
                dr = DataTables("来料记录").Find("[料号] = '" & e.DataRow("料号") & "'","外部单价 desc")
                If dr IsNot Nothing
                    e.DataRow("外部单价") = dr("外部单价")
                    e.DataRow("综合单价") = IIF(dr("外部单价") > dr("内部单价"),dr("外部单价") ,dr("内部单价"))
                End If
            End If
        End If
End Select

 回到顶部