Foxtable(狐表)用户栏目专家坐堂 → 库存分盘计算


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

主题:库存分盘计算

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
库存分盘计算  发帖心情 Post By:2015/12/3 8:35:00 [只看该作者]

表A,如何自动计算库存_分盘?

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


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/3 8:51:00 [只看该作者]

DataColChanged事件


Select Case e.DataCol.Name
    Case "入仓_分盘","出仓_分盘"
        If e.DataRow.IsNull("入仓_分盘") = False AndAlso e.DataRow.IsNull("出仓_分盘") = False Then
            e.DataRow("库存_分盘") = Eval(e.DataRow("入仓_分盘")) - Eval(e.DataRow("出仓_分盘"))
        End If

End Select

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/12/3 9:40:00 [只看该作者]

呵,我的需求是这样的 入仓:52.1+56.8+72.3+50.0+42.8,出仓:52.1+50.0 库存_分盘应该是56.8+72.3+42.8,2楼算的是库存_数量


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/3 9:56:00 [只看该作者]

Select Case e.DataCol.Name
    Case "入仓_分盘","出仓_分盘"
        Dim ls As new List(Of String)
        ls.AddRange(e.DataRow("入仓_分盘").split("+"))
        For Each s As String In e.DataRow("出仓_分盘").split("+")
            For i As Integer = 0 To ls.Count - 1
                If ls(i) = s Then
                    ls.Removeat(i)
                    Exit For
                End If
            Next
        Next
        e.DataRow("库存_分盘") = String.Join("+", ls.ToArray)
       
End Select


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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/12/3 10:23:00 [只看该作者]

4楼代码对于A产品没有问题,对于B产品不行,B产品怎么计算呢

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/3 10:37:00 [只看该作者]

Select Case e.DataCol.Name
    Case "入仓_分盘","出仓_分盘"
        Dim ls As new List(Of String)
        ls.AddRange(e.DataRow("入仓_分盘").split("+"))
        For Each s As String In e.DataRow("出仓_分盘").split("+")
            Dim ary() As String = s.split("*")
            For i As Integer = 0 To ls.Count - 1
                If ary.length = 2 Then
                    Dim ary2() As String = ls(i).split("*")
                    If ary2.length = 2 Then
                        If ary(1) = ary2(1) Then
                            ls(i) = (ary2(0) - ary(0)) & "*" & ary2(1)
                        End If
                    End If
                Else
                    If ls(i) = s Then
                        ls.Removeat(i)
                        Exit For
                    Else
                        Dim ary2() As String = ls(i).split("*")
                        If ary2.length = 2 Then
                            If ary(0) = ary2(1) Then
                                ls(i) = (ary2(0) - 1) & "*" & ary2(1)
                            End If
                        End If
                    End If
                End If
            Next
        Next
        e.DataRow("库存_分盘") = String.Join("+", ls.ToArray)
       
End Select

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19396 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/12/3 11:08:00 [只看该作者]

大红袍


 回到顶部