Foxtable(狐表)用户栏目专家坐堂 → 求助订单交付逐减的代码写法


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

主题:求助订单交付逐减的代码写法

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


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

1、把两个表的数据填充进来;

 

2、按照货号等排序;

 

3、循环每一行相减。

 

请上传foxtable例子测试。


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


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

如果要做流水账,可以看这里 http://www.foxtable.com/help/topics/1572.htm

 


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


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

DataTables("订单交付进度表").DataRows.Clear
For Each dr As DataRow In DataTables("订单明细").Select("D2C款号 = 'L00753020001'", "_Sortkey")
    Dim nr As DataRow = DataTables("订单交付进度表").AddNew
    nr("供应商") = dr("供应商")
    nr("D2C款号") = dr("D2C款号")
    nr("D2C颜色") = dr("颜色")
    nr("订单数量") = dr("订单数量")
   
    '计算入库
    Dim sumin As Double = DataTables("采购入库明细").compute("sum(采购入库数量)", "款号 = '" & dr("D2C款号") & "' and 颜色 = '" & dr("颜色") & "'")
    Dim sumout As Double = DataTables("订单交付进度表").compute("sum(入库数量)", "D2C款号 = '" & dr("D2C款号") & "' and D2C颜色 = '" & dr("颜色") & "' and _Identify <= " & nr("_Identify"))
    sumin -= sumout
    If sumin >= dr("订单数量") Then
        nr("入库数量") = dr("订单数量")
        nr("待交货数量") = 0
    Else
        nr("入库数量") = iif(sumin>=0, sumin, 0)
        nr("待交货数量") = dr("订单数量") - nr("入库数量")
    End If
Next

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


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

全部

 

For Each dr As DataRow In DataTables("订单明细").Select("", "_Sortkey")

 

任意条件

 

For Each dr As DataRow In DataTables("订单明细").Select("某列 = '某值'", "_Sortkey")

 

http://www.foxtable.com/help/topics/0400.htm

 


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


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

DataTables("订单交付进度表").DataRows.Clear
For Each dr As DataRow In DataTables("订单明细").Select("D2C款号 = 'L00753020001'", "_Sortkey")
    Dim nr As DataRow = DataTables("订单交付进度表").AddNew
    nr("供应商") = dr("供应商")
    nr("D2C款号") = dr("D2C款号")
    nr("D2C颜色") = dr("颜色")
    nr("订单数量") = dr("订单数量")
   
    '计算入库
    Dim sumin As Double = DataTables("采购入库明细").compute("sum(采购入库数量)", "款号 = '" & dr("D2C款号") & "' and 颜色 = '" & dr("颜色") & "'")
    Dim sumout As Double = DataTables("订单交付进度表").compute("sum(订单数量)", "D2C款号 = '" & dr("D2C款号") & "' and D2C颜色 = '" & dr("颜色") & "' and _Identify < " & nr("_Identify"))
    sumin -= sumout
    If sumin >= dr("订单数量") Then
        nr("入库数量") = sumin - dr("订单数量")
        nr("待交货数量") = 0
    Else
        nr("入库数量") = 0
        nr("待交货数量") = iif(sumin>=0, dr("订单数量")-sumin, dr("订单数量"))
    End If
Next

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


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

以下是引用Carl在2015/11/28 11:00:00的发言:
只要在之前的代码上解决循环冲减后的最后一行,当入库数量大于订单数量时,入库数量等于循环冲减后的结存量。

 

不明白你什么意思,截图说明效果。


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


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

以下是引用Carl在2015/11/28 12:50:00的发言:
另外,假若计算要改成在订单明细里面做,要怎么写?

 


For Each dr As DataRow In DataTables("订单明细").Select("D2C款号 = 'L00753020001'", "_Sortkey")
    '计算入库
    Dim sumin As Double = DataTables("采购入库明细").compute("sum(采购入库数量)", "款号 = '" & dr("D2C款号") & "' and 颜色 = '" & dr("颜色") & "'")
    Dim sumout As Double = DataTables("订单明细").compute("sum(入库数量)", "D2C款号 = '" & dr("D2C款号") & "' and D2C颜色 = '" & dr("D2C颜色") & "' and _Identify <= " & dr("_Identify"))
    sumin -= sumout
    If sumin >= dr("订单数量") Then
        dr("入库数量") = dr("订单数量")
        dr("待交货数量") = 0
    Else
        dr("入库数量") = iif(sumin>=0, sumin, 0)
        dr("待交货数量") = dr("订单数量") - dr("入库数量")
    End If
Next 


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


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

For Each dr As DataRow In DataTables("订单明细").Select("D2C款号 = 'L00753020001'", "D2C款号,颜色,_Sortkey")
    '计算入库
    Dim sumin As Double = DataTables("采购入库明细").compute("sum(采购入库数量)", "款号 = '" & dr("D2C款号") & "' and 颜色 = '" & dr("颜色") & "'")
    Dim sumout As Double = DataTables("订单明细").compute("sum(入库数量)", "D2C款号 = '" & dr("D2C款号") & "' and D2C颜色 = '" & dr("D2C颜色") & "' and _Identify <= " & dr("_Identify"))
    sumin -= sumout
    If sumin >= dr("订单数量") Then
        dr("入库数量") = dr("订单数量")
        dr("待交货数量") = 0
    Else
        dr("入库数量") = iif(sumin>=0, sumin, 0)
        dr("待交货数量") = dr("订单数量") - dr("入库数量")
    End If
Next 

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


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

以下是引用Carl在2015/11/30 11:01:00的发言:
两张相同内容的表(如:一张订单明细总表和一张订单明细分表)都重采购入库里面拉数据做循环冲减,两边的结果会相互影响?(注:订单明细总表里面的数据是从订单明细分表拉过去的)

 

不会相互影响,除非你在比如datacolchange等事件写了代码。


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


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

Dim ls As List(Of String()) = DataTables("订单明细").GetValues("D2C款号|颜色")
For Each ary As String() In ls
    Dim sumin As Double = DataTables("采购入库明细").compute("sum(采购入库数量)", "款号 = '" & ary(0) & "' and 颜色 = '" & ary(1) & "'")
    Dim drs As List(Of DataRow) = DataTables("订单明细").Select("D2C款号 = '" & ary(0) & "' and 颜色 = '" & ary(1) & "'", "_Identify")
    For i As Integer = 0 To drs.count - 1
        Dim dr As DataRow = drs(i)
        Dim sumout As Double = DataTables("订单明细").compute("sum(入库数量)", "D2C款号 = '" & dr("D2C款号") & "' and 颜色 = '" & dr("颜色") & "' and _Identify < " & dr("_Identify"))
        Dim st As Double = sumin - sumout
        If st >= dr("订单数量") Then
            If i = drs.count - 1 Then
                dr("入库数量") = st
                dr("待交货数量") = dr("订单数量") - dr("入库数量")
            Else
                dr("入库数量") = dr("订单数量")
                dr("待交货数量") = 0
            End If
        Else
            dr("入库数量") = iif(st>=0, st, 0)
            dr("待交货数量") = dr("订单数量") - dr("入库数量")
        End If
    Next
Next

 回到顶部
总数 18 1 2 下一页