Foxtable(狐表)用户栏目专家坐堂 → test


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

主题:test

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


加好友 发短信
等级:三尾狐 帖子:798 积分:5911 威望:0 精华:0 注册:2018/11/3 8:24:00
test  发帖心情 Post By:2021/5/20 21:09:00 [显示全部帖子]





[此贴子已经被作者于2021/7/22 12:20:46编辑过]

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


加好友 发短信
等级:三尾狐 帖子:798 积分:5911 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2021/5/21 12:21:00 [显示全部帖子]

[此贴子已经被作者于2021/7/22 12:20:58编辑过]

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


加好友 发短信
等级:三尾狐 帖子:798 积分:5911 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2021/5/21 15:25:00 [显示全部帖子]


老师,发图
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看


        Dim con As Integer = DataTables.Compute("sum(数量)","产品名称='" & current("产品名称") & "' and _sortkey < " & current("_sortkey"))
        Dim s As String
        Dim drs As List(Of  DataRow) = DataTables("表B").Select("产品名称= '" & current("产品名称") & "'","出货日期")
        Dim dr As DataRow
        Dim sl As Integer = current("数量")
        Do While drs.Count > 0
            dr = drs(0)
            If con >= dr("数量") Then
                con = con - dr("数量")
            Else
                Dim c1 As Integer = dr("数量") - con
                con = 0
                If s > "" Then s = s & " + "
                If c1 >= sl Then
                    s = s & dr("出货日期") & " /" & sl & "pc" & IIF(s.Contains("+"),"s","")
                    Exit Do
                Else
                    s = s & dr("出货日期") & " /" & c1 & "pcs"
                    sl = sl - c1
                End If
            End If
            drs.RemoveAt(0)
        Loop
        current("出货日期备注") = s


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


加好友 发短信
等级:三尾狐 帖子:798 积分:5911 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2021/5/21 18:23:00 [显示全部帖子]


老师,如图出现的错误
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

 Dim con As Integer = DataTables.Compute("sum(数量)","产品名称='" & DataTables("表A").current("产品名称") & "' and _sortkey < " & DataTables("表A").current("_sortkey"))
        Dim s As String
        Dim drs As List(Of  DataRow) = DataTables("表B").Select("产品名称= '" & DataTables("表A").current("产品名称") & "'","出货日期")
        Dim dr As DataRow
        Dim sl As Integer = DataTables("表A").current("数量")
        Do While drs.Count > 0
            dr = drs(0)
            If con >= dr("数量") Then
                con = con - dr("数量")
            Else
                Dim c1 As Integer = dr("数量") - con
                con = 0
                If s > "" Then s = s & " + "
                If c1 >= sl Then
                    s = s & dr("出货日期") & " /" & sl & "pc" & IIF(s.Contains("+"),"s","")
                    Exit Do
                Else
                    s = s & dr("出货日期") & " /" & c1 & "pcs"
                    sl = sl - c1
                End If
            End If
            drs.RemoveAt(0)
        Loop
        DataTables("表A").current("出货日期备注") = s





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


加好友 发短信
等级:三尾狐 帖子:798 积分:5911 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2021/5/22 12:06:00 [显示全部帖子]

老师,已经把代码加进去了,可是结果不对呀


结果就是这样的:

产品名称      数量                      出货日期备注                                                             
A      4                  2021-05-01 :4pcs                    
A      7                  2021-05-01 :5pcs + 2021-06-01 :2pcs         
A      1                  2021-06-01 :1pcs                                 
A      5                  2021-06-01 :2pcs                                 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:分配数量.rar

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



[此贴子已经被作者于2021/5/22 12:10:53编辑过]

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


加好友 发短信
等级:三尾狐 帖子:798 积分:5911 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2021/5/22 15:44:00 [显示全部帖子]

谢谢,可以了,但改循环后,请出现以下的错误,麻烦一下。


Dim con As Integer = DataTables("表A").Compute("sum(数量)","产品名称='" & Tables("表A").current("产品名称") & "' and _sortkey < " & Tables("表A").current("_sortkey"))
Dim s As String = ""
Dim drs As List(Of  DataRow) = DataTables("表B").Select("产品名称= '" & Tables("表A").current("产品名称") & "'","出货日期")

Dim dtre As DataTable
For Each dr As DataRow In dtre.DataRows

    Dim sl As Integer = Tables("表A").current("数量")

    Do While drs.Count > 0
        dr = drs(0)
        If con >= dr("数量") Then
            con = con - dr("数量")
        Else
            Dim c1 As Integer = dr("数量") - con
            con = 0
            If s > "" Then s = s & " + "
            If c1 >= sl Then
                s = s & dr("出货日期") & " /" & sl & "pc" & IIF(s.Contains("+"),"s","")
                Exit Do
            Else
                s = s & dr("出货日期") & " /" & c1 & "pcs"
                sl = sl - c1
            End If
        End If
        drs.RemoveAt(0)
    Loop
    Tables("表A").current("出货日期备注") = s

    
Next



图片点击可在新窗口打开查看此主题相关图片如下:捕获2.png
图片点击可在新窗口打开查看






 回到顶部