Foxtable(狐表)用户栏目专家坐堂 → 订单分拆


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

主题:订单分拆

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/3 16:54:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/4 8:45:00 [显示全部帖子]

1、做什么操作的时候拆分?如何拆分?

 

2、请上传具体的项目测试,说明操作步骤,以及最后需要得到的效果。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/4 10:26:00 [显示全部帖子]

If e.DataCol.name = "系统拆分" OrElse e.DataCol.name = "供货批次" Then
    If e.DataRow("系统拆分") = True Then
        If e.DataRow("供货批次") <> Nothing Then
            e.DataTable.DeleteFor("订单分批次号 like '" & e.DataRow("订单编号") & "%' and 订单分批次号 <> '" & e.DataRow("订单编号") & "-01'")
            Dim n1 As Double = e.DataRow("产品数量") / e.DataRow("供货批次")
            Dim n2 As Double = (e.DataRow("大订单截止日期") - e.DataRow("大订单开始日期")).TotalDays / e.DataRow("供货批次")
            e.DataRow("订单分批次号") = e.DataRow("订单编号") & "-01"
            e.DataRow("检验日期") = e.DataRow("大订单开始日期").adddays(n2)
            e.DataRow("分批次数量") = n1
            For i As Integer = 2 To e.DataRow("供货批次")
                Dim ndr As DataRow = e.DataTable.addnew
                ndr("订单分批次号") = e.DataRow("订单编号") & format(i, "-00")
                ndr("检验日期") = e.DataRow("大订单开始日期").adddays(n2)
                ndr("分批次数量") = n1
            Next
        End If
    ElseIf e.DataCol.name = "系统拆分" AndAlso e.oldvalue = True Then
        e.DataTable.DeleteFor("订单分批次号 like '" & e.DataRow("订单编号") & "%' and 订单分批次号 <> '" & e.DataRow("订单编号") & "-01'")
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/4 11:10:00 [显示全部帖子]

1、你勾选以后,不要取消勾选啊,取消就会删除数据的啊

 

2、

 

If e.DataCol.name = "系统拆分" OrElse e.DataCol.name = "供货批次" Then
    If e.DataRow("系统拆分") = True Then
        If e.DataRow("供货批次") <> Nothing Then
            e.DataTable.DeleteFor("订单分批次号 like '" & e.DataRow("订单编号") & "%' and 订单分批次号 <> '" & e.DataRow("订单编号") & "-01'")
            Dim n1 As Double = e.DataRow("产品数量") / e.DataRow("供货批次")
            Dim n2 As Double = (e.DataRow("大订单截止日期") - e.DataRow("大订单开始日期")).TotalDays / e.DataRow("供货批次")
            e.DataRow("订单分批次号") = e.DataRow("订单编号") & "-01"
            e.DataRow("检验日期") = e.DataRow("大订单开始日期").adddays(n2)
            e.DataRow("分批次数量") = n1
            For i As Integer = 2 To e.DataRow("供货批次")
                Dim ndr As DataRow = e.DataTable.addnew
                ndr("订单分批次号") = e.DataRow("订单编号") & format(i, "-00")
                ndr("检验日期") = e.DataRow("大订单开始日期").adddays(n2*i)
                ndr("分批次数量") = n1
            Next
        End If
    ElseIf e.DataCol.name = "系统拆分" AndAlso e.oldvalue = True Then
        e.DataTable.DeleteFor("订单分批次号 like '" & e.DataRow("订单编号") & "%' and 订单分批次号 <> '" & e.DataRow("订单编号") & "-01'")
    End If
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/4 16:21:00 [显示全部帖子]

请先说明操作步骤:

 

1、输入4,就生成对应的4行?

 

2、然后,分批时间,生成检验日期?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/4 16:50:00 [显示全部帖子]

If e.DataCol.name = "系统拆分" OrElse e.DataCol.name = "供货批次" Then
    If e.DataRow("系统拆分") = True Then
        If e.DataRow("供货批次") <> Nothing Then
            e.DataTable.DeleteFor("订单分批次号 like '" & e.DataRow("订单编号") & "%' and 订单分批次号 <> '" & e.DataRow("订单编号") & "-01'")
            Dim n1 As Double = e.DataRow("产品数量") / e.DataRow("供货批次")
            Dim n2 As Double = (e.DataRow("大订单截止日期") - e.DataRow("大订单开始日期")).TotalDays / e.DataRow("供货批次")
            e.DataRow("订单分批次号") = e.DataRow("订单编号") & "-01"
            e.DataRow("检验日期") = e.DataRow("大订单开始日期").adddays(n2)
            e.DataRow("分批次数量") = n1
            For i As Integer = 2 To e.DataRow("供货批次")
                Dim ndr As DataRow = e.DataTable.addnew
                ndr("订单分批次号") = e.DataRow("订单编号") & format(i, "-00")
                ndr("检验日期") = e.DataRow("大订单开始日期").adddays(n2*i)
                ndr("分批次数量") = n1
            Next
        End If
    ElseIf e.DataCol.name = "供货批次" Then
        e.DataTable.DeleteFor("订单分批次号 like '" & e.DataRow("订单编号") & "%' and 订单分批次号 <> '" & e.DataRow("订单编号") & "-01'")
        Dim n1 As Double = e.DataRow("产品数量") / e.DataRow("供货批次")
        Dim n2 As Double = (e.DataRow("大订单截止日期") - e.DataRow("大订单开始日期")).TotalDays / e.DataRow("供货批次")
        e.DataRow("订单分批次号") = e.DataRow("订单编号") & "-01"
        e.DataRow("检验日期") = e.DataRow("大订单开始日期").adddays(n2)
        e.DataRow("分批次数量") = n1
        For i As Integer = 2 To e.DataRow("供货批次")
            Dim ndr As DataRow = e.DataTable.addnew
            ndr("订单分批次号") = e.DataRow("订单编号") & format(i, "-00")
            ndr("检验日期") = e.DataRow("大订单开始日期").adddays(n2*i)
            ndr("分批次数量") = n1
        Next
    ElseIf e.DataCol.name = "系统拆分" AndAlso e.oldvalue = True Then
        e.DataTable.DeleteFor("订单分批次号 like '" & e.DataRow("订单编号") & "%' and 订单分批次号 <> '" & e.DataRow("订单编号") & "-01'")
    End If
End If

If e.DataCol.name = "分批时间" Then
    Dim i = e.DataRow("订单分批次号").lastindexof("-")
    e.DataRow("检验日期") = Nothing
    If i >= 0 Then
        Dim id = e.DataRow("订单分批次号").SubString(0, i)
        Dim drs = e.DataTable.Select("订单分批次号 like '" & id & "%'", "订单分批次号")
        Dim count = 0
        For Each dr As DataRow In drs
            count += val(dr("分批时间"))
            dr("检验日期") = (drs(0)("大订单开始日期")).adddays(count)
            If dr("检验日期") > drs(0)("大订单截止日期") Then
                msgbox("检验日期超过了")
            End If
        Next
    End If
   
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/5 16:58:00 [显示全部帖子]

1、【供货批次】不能重复赋值

 

2、

 

If e.Row.Index > 0 Then
    For i As Integer = 0 To e.Table.cols("分批次数量").index
        If e.Row(i) = Nothing AndAlso e.Table.Cols(i).name <> "供货批次" Then
            e.Row(i) = e.Table.Rows(e.Row.Index-1)(i)
        End If
    Next
End If


 回到顶部