Foxtable(狐表)用户栏目专家坐堂 → 求一种提取的解决方案


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

主题:求一种提取的解决方案

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/20 23:09:00 [显示全部帖子]

汗,你这样做就不对,数量平分么?看看人家的bom如何设计

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=48218&skin=0

 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/21 12:47:00 [显示全部帖子]

比如,库存就可以这样计算

 

Select Case e.DataCol.name
    Case "二级编码","初始数据"
        If e.DataRow.IsNull("二级编码") = False Then
            Dim drs As List(Of DataRow) = DataTables("BOM").Select("子件 = '" & e.DataRow("二级编码") & "'")
            If drs.count = 0 Then
                e.DataRow("库存数量") = e.DataRow("初始数据") + DataTables("商品入库").Compute("sum(入库数量)", "二级编码 = '" &e.DataRow("二级编码") & "'") - DataTables("商品出库").Compute("sum(商品数量)", "二级编码 = '" &e.DataRow("二级编码") & "'")
            Else
                Dim sum As Double = 0
                For Each dr As DataRow In drs
                    sum += DataTables("商品出库").Compute("sum(商品数量)", "二级编码 = '" & dr("二级编码") & "'") * dr("系数")
                Next
                sum += DataTables("商品出库").Compute("sum(商品数量)", "二级编码 = '" &e.DataRow("二级编码") & "'")
                e.DataRow("库存数量") = e.DataRow("初始数据") + DataTables("商品入库").Compute("sum(入库数量)", "二级编码 = '" &e.DataRow("二级编码") & "'") - sum
            End If
        Else
            e.DataRow("库存数量") = e.DataRow("初始数据")
        End If
End Select


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/21 14:21:00 [显示全部帖子]

库存表,重置列可以计算啊。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/21 14:26:00 [显示全部帖子]

 出库表那里,DataColChanged事件

 

Select Case e.DataCol.Name
    Case "二级编码","商品数量"
        Dim bms As String = DataTables("bom").GetComboListString("子件", "二级编码 = '" &e.DataRow("二级编码") & "'")
        DataTables("商品库存").DataCols("二级编码").RaiseDataColChanged("二级编码 in ('" & bms.Replace("|", "','") & "')")
End Select


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/21 15:59:00 [显示全部帖子]

Dim drs As List(Of DataRow) = DataTables("BOM").Select("子件 = '" & e.DataRow("二级编码") & "'")

改成

 

Dim drs As List(Of DataRow) = DataTables("BOM").Select("子件 = '" & e.DataRow("二级编码") & "' and 二级编码 <> 子件")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/21 21:02:00 [显示全部帖子]

红色代码注释掉

 

Select Case e.DataCol.name
    Case "二级编码","初始数据"
        If e.DataRow.IsNull("二级编码") = False Then
            Dim drs As List(Of DataRow) = DataTables("BOM").Select("子件 = '" & e.DataRow("二级编码") & "'")
            If drs.count = 0 Then
                e.DataRow("库存数量") = e.DataRow("初始数据") + DataTables("商品入库").Compute("sum(入库数量)", "二级编码 = '" &e.DataRow("二级编码") & "'") - DataTables("商品出库").Compute("sum(商品数量)", "二级编码 = '" &e.DataRow("二级编码") & "'")
            Else
                Dim sum As Double = 0
                For Each dr As DataRow In drs
                    sum += DataTables("商品出库").Compute("sum(商品数量)", "二级编码 = '" & dr("二级编码") & "'") * dr("系数")
                Next
                'sum += DataTables("商品出库").Compute("sum(商品数量)", "二级编码 = '" &e.DataRow("二级编码") & "'")
                e.DataRow("库存数量") = e.DataRow("初始数据") + DataTables("商品入库").Compute("sum(入库数量)", "二级编码 = '" &e.DataRow("二级编码") & "'") - sum
            End If
        Else
            e.DataRow("库存数量") = e.DataRow("初始数据")
        End If
End Select


 回到顶部