Foxtable(狐表)用户栏目专家坐堂 → [求助]如何通过代码判断匹配对应数据?


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

主题:[求助]如何通过代码判断匹配对应数据?

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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/11 22:45:00 [只看该作者]

DataColChanged事件

Select Case e.DataCol.Name
    Case "品名","日均销量"
        Dim filter As String = "品名='" & e.DataRow("品名") & "'"
        Dim sum As Double = e.DataTable.Compute("Sum(日均销量)",filter)
        If sum > 0 Then
            For Each dr1 As DataRow In e.DataTable.Select(filter)
                dr1("标准库存天数") = dr1("供应商起订量") / sum
            Next
        End If
        If e.DataCol.Name = "品名" AndAlso e.OldValue > "" Then
            filter = "品名='" & e.OldValue & "'"
            sum  = e.DataTable.Compute("Sum(日均销量)",filter)
            If sum > 0 Then
                For Each dr1 As DataRow In e.DataTable.Select(filter)
                    dr1("标准库存天数") = dr1("供应商起订量") / sum
                Next
            End If
        End If
End Select

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


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By:2017/7/11 23:04:00 [只看该作者]

谢谢老师!这么晚了还在帮忙处理代码!万分感谢

刚刚我把代码导入进去,出来的数据有些差异,可能是同供应商的情况没有统计。。

比如产品A、供应商A,标准库存天数的理想值是 供应商起订量 / 产品A+供应商A的日均累计销量,应该是 100 / 8.85=11.30 


图片点击可在新窗口打开查看此主题相关图片如下:9a782a96afc4fa48430c724efeb59216_看图王.png
图片点击可在新窗口打开查看



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


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

哦,还和供应商有关系呀。逻辑一样的,看懂上面的代码逻辑自己加上供应商的条件。

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


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By:2017/7/11 23:13:00 [只看该作者]

我修改了一下,老师你看这样对吗?图片点击可在新窗口打开查看

Select Case e.DataCol.Name
    Case "品名","供应商","日均销量"
        Dim filter As String = "品名='" & e.DataRow("品名") & "' And 供应商='" & e.DataRow("供应商") & "'"
        Dim sum As Double = e.DataTable.Compute("Sum(日均销量)",filter)
        If sum > 0 Then
            For Each dr1 As DataRow In e.DataTable.Select(filter)
                dr1("标准库存天数") = dr1("供应商起订量") / sum
            Next
        End If
        If e.DataCol.Name = "品名" AndAlso e.OldValue > "" Then
            filter = "品名='" & e.OldValue & "' And 供应商='" & e.OldValue & "'"
            sum  = e.DataTable.Compute("Sum(日均销量)",filter)
            If sum > 0 Then
                For Each dr1 As DataRow In e.DataTable.Select(filter)
                    dr1("标准库存天数") = dr1("供应商起订量") / sum
                Next
            End If
        End If
End Select

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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/12 8:34:00 [只看该作者]

测试看效果,有问题再改进

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


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

参考代码

 

Select Case e.DataCol.Name
    Case "品名","供应商","日均销量"
        Dim filter As String = "品名='" & e.DataRow("品名") & "' And 供应商='" & e.DataRow("供应商") & "'"
        Dim sum As Double = e.DataTable.Compute("Sum(日均销量)",filter)
        If sum > 0 Then
            For Each dr1 As DataRow In e.DataTable.Select(filter)
                dr1("标准库存天数") = dr1("供应商起订量") / sum
            Next
        End If
End Select


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


加好友 发短信
等级:幼狐 帖子:94 积分:862 威望:0 精华:0 注册:2017/7/9 3:59:00
  发帖心情 Post By:2017/7/12 10:24:00 [只看该作者]

老师新写的代码比我自己修改的简洁多了,谢谢老师!

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