以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  尺码数量不对  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=127974)

--  作者:yetle
--  发布时间:2018/11/26 14:21:00
--  尺码数量不对
通过选择销售明细尺码数量选到生产制单后,点审核按钮(如下代码)后将选到生产制单的明细尺码数量反写到销售明细尺码表的排产数量,运行后下面的代码结果不对,请老师指正

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

Dim tb As Table = Tables("生产制造单_table2")
Dim str1 As String = "XS,S,M,L,XL,2XL,3XL,4XL,5XL,6XL,F,XF"
Dim str2 As String = "65,70,75,80,85,90,95,100"
For Each dr2 As DataRow In DataTables("生产制单明细").Select("[生产单号] = \'" & Tables("生产制造单_table1").current("生产单号")  & "\'")
    For Each dr As DataRow In DataTables("销售明细尺码").Select(" [_Identify] = \'" & dr2("销售明细行ID")  & "\'")
           dr2("审核") = True
           dr2.locked = True 

  Dim drs = DataTables("生产制单明细").Select("[生产单号] = \'" & Tables("生产制造单_table1").current("生产单号")  & "\' and [审核] = \'true\'")
 For Each cdr As DataRow In drs

    For Each s As String In str1.Split(",")
        If tb.Cols.Contains("衣裤尺码明细_" & s) Then
            dr("衣裤尺码明细_排产" & s)=val(cdr("衣裤尺码明细_" & s))
        End If
    Next
    For Each s As String In str2.Split(",")
        If tb.Cols.Contains("文胸尺码明细_" & s) Then
            dr("文胸尺码明细_排产" & s)=val(cdr("文胸尺码明细_" & s))
        End If
    Next
 Next
[此贴子已经被作者于2018/11/26 14:20:56编辑过]

--  作者:有点甜
--  发布时间:2018/11/26 14:38:00
--  
Dim tb As Table = Tables("生产制造单_table2")
Dim str1 As String = "XS,S,M,L,XL,2XL,3XL,4XL,5XL,6XL,F,XF"
Dim str2 As String = "65,70,75,80,85,90,95,100"
For Each dr2 As DataRow In DataTables("生产制单明细").Select("[生产单号] = \'" & Tables("生产制造单_table1").current("生产单号")  & "\'")
    For Each dr As DataRow In DataTables("销售明细尺码").Select(" [_Identify] = \'" & dr2("销售明细行ID")  & "\'")
        dr2("审核") = True
        dr2.locked = True
       
       
        For Each s As String In str1.Split(",")
            If tb.Cols.Contains("衣裤尺码明细_" & s) Then
                dr("衣裤尺码明细_排产" & s)=val(dr2("衣裤尺码明细_" & s))
            End If
        Next
        For Each s As String In str2.Split(",")
            If tb.Cols.Contains("文胸尺码明细_" & s) Then
                dr("文胸尺码明细_排产" & s)=val(dr2("文胸尺码明细_" & s))
            End If
        Next
    Next
next

--  作者:yetle
--  发布时间:2018/11/26 14:52:00
--  
需要计算将已经审核的生产制单的明细尺码合计数量反写到销售明细尺码表的排产数量
--  作者:有点甜
--  发布时间:2018/11/26 14:56:00
--  

1、2楼代码执行后有什么问题?

 

2、不会做,具体实例发上来测试。


--  作者:yetle
--  发布时间:2018/11/26 15:05:00
--  
不好意思,表述不够清楚,补充一下:

因为生产制单排产会将销售订单尺码数量拆分几次做排产到不同班组
2楼代码只是将当前窗体表已审核的当前尺码数量反写到售明细尺码表的排产数量,
每次排产的时候,希望知道历史已审核的该订单对应的尺码数量合计排产了多少,
所以,需要计算datatables(生产制单明细)已审核的对应尺码的合计数量反写到销售明细尺码表的排产数量

[此贴子已经被作者于2018/11/26 15:08:08编辑过]

--  作者:有点甜
--  发布时间:2018/11/26 15:23:00
--  

实例发上来,说明如何操作,最后达到怎样的效果。


--  作者:yetle
--  发布时间:2018/11/26 15:54:00
--  
点审核按钮将已审核的对应尺码的合计数量反写到销售明细尺码表的排产数量


因为生产制单排产会将销售订单尺码数量拆分几次做排产到不同班组
2楼代码只是将当前窗体表已审核的当前尺码数量反写到售明细尺码表的排产数量,
每次排产的时候,希望知道历史已审核的该订单对应的尺码数量合计排产了多少,
所以,需要计算datatables(“生产制单明细”)已审核的对应尺码的合计数量反写到销售明细尺码表的排产数量

[此贴子已经被作者于2018/11/26 17:08:12编辑过]

--  作者:有点甜
--  发布时间:2018/11/26 16:17:00
--  

Dim Result As DialogResult

Result = MessageBox.Show("确认审核吗?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes  Then
   
    \'If usna  Like "*总监*" Or usna="admin"  Then
    \'    Tables("生产制造单_table1").Current("审核人") = usna
    Tables("生产制造单_table1").Current("审核") = True
    Tables("生产制造单_table1").Current.Locked = True
   
    Dim tb As Table = Tables("生产制造单_table2")
    Dim str1 As String = "XS,S,M,L,XL,2XL,3XL,4XL,5XL,6XL,F,XF"
    Dim str2 As String = "65,70,75,80,85,90,95,100"
    For Each dr2 As DataRow In DataTables("生产制单明细").Select("[生产单号] = \'" & Tables("生产制造单_table1").current("生产单号")  & "\'")
       
        dr2("审核") = True
        dr2.locked = True
    Next
   
    Dim drs = DataTables("生产制单明细").Select("[审核] = \'true\'")
    Dim ls As new List(Of String)
    For Each cdr As DataRow In drs
        Dim dr As DataRow = DataTables("销售明细尺码").find(" [_Identify] = \'" & cdr("销售明细行ID")  & "\'")
        If dr Is Nothing Then Continue For
        For Each s As String In str1.Split(",")
            If tb.Cols.Contains("衣裤尺码明细_" & s) Then
                If ls.contains(dr("_Identify")) = False Then
                    dr("衣裤尺码明细_排产" & s)=val(cdr("衣裤尺码明细_" & s))
                Else
                    dr("衣裤尺码明细_排产" & s)+=val(cdr("衣裤尺码明细_" & s))
                End If
            End If
        Next
        For Each s As String In str2.Split(",")
            If tb.Cols.Contains("文胸尺码明细_" & s) Then
                If ls.contains(dr("_Identify")) = False Then
                    dr("文胸尺码明细_排产" & s)=val(cdr("文胸尺码明细_" & s))
                Else
                    dr("文胸尺码明细_排产" & s)+=val(cdr("文胸尺码明细_" & s))
                End If
            End If
        Next
        If ls.contains(dr("_Identify")) = False Then
            ls.add(dr("_Identify"))
        End If
        dr.save()
        dr.locked = True
    Next
Else
    MessageBox.show("你无权执行此项操作!")
    \'End If
   
End If


--  作者:yetle
--  发布时间:2018/11/26 17:24:00
--  
谢谢!!!