以文本方式查看主题

-  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=188047)

--  作者:denghui69986
--  发布时间:2023/8/29 11:44:00
--  生产数量大于订单数量输入不进去

在生产数量大于订单数量就输入不进去数量,下面代码一直没设置好老师帮忙看看,谢谢

 

生产表datacolchanging事件

 

If e.DataCol.Name.StartsWith("累计产量") Then
    Dim sum1 As Double = DataTables("订单表").compute("sum(" & e.DataCol.name & ")", "款号=\'" & e.DataRow("款号") & "\'")
    Dim sum2 As Double = DataTables("生产表").compute("sum(" & e.DataCol.name & ")", "款号=\'" & e.DataRow("款号") & "\'")
    If sum2-e.OldValue+e.NewValue > sum1 Then
        msgbox("超出订单数")
        e.cancel = True
    End If
End If


--  作者:有点蓝
--  发布时间:2023/8/29 11:48:00
--  
    If sum2 + e.NewValue > sum1 Then
        msgbox("超出订单数")
--  作者:denghui69986
--  发布时间:2023/8/29 14:26:00
--  

还是不可以,上传一个测试的,生产单里面(累计产量)不能大于订单表里面(数量)蓝老师帮忙看看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单条件限制.zip


--  作者:有点蓝
--  发布时间:2023/8/29 14:42:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单条件限制.zip


--  作者:denghui69986
--  发布时间:2023/8/29 17:00:00
--  

单条件不准确,在生产单里面加一个工序名称条件,下面代码好像不对,帮忙看看

  Dim sum2 As Double = DataTables("生产单").compute("sum(生产数量)", "[_SortKey] <= " & drs(i)("_SortKey") & " And [工序名称] = \'" & dr("工序名称") & "\' and [生产批号] = \'" & mr("生产批号") & "\'")


--  作者:有点蓝
--  发布时间:2023/8/29 17:04:00
--  
没看懂,请贴出完整代码
--  作者:denghui69986
--  发布时间:2023/8/29 17:13:00
--  
单独一个"生产批号"在录入时候不准,增加一个条件,一个生产批号下面很多工序名称,一个批号统计数量就超出订单数量,在生产单增加双条件"生产批号"和"工序名称"
--  作者:denghui69986
--  发布时间:2023/8/29 17:16:00
--  

在生产单里面单条件不准确,在生产单里面加一个"工序名称"条件,下面代码好像不对,帮忙看看

If e.DataCol.Name = "生产数量" Then
    Dim sum1 As Double = DataTables("订单").compute("sum(订单数量)", "批号=\'" & e.DataRow("批号") & "\'")
    Dim sum2 As Double = DataTables("生产单").compute("sum(生产数量)", "[_SortKey] <= " & drs(i)("_SortKey") & " And [工序名称] = \'" & dr("工序名称") & "\' and [生产批号] = \'" & mr("生产批号") & "\'")
    If sum2 + e.NewValue > sum1 Then
        msgbox("超出订单数")
        e.cancel = True
    End If
End If


--  作者:有点蓝
--  发布时间:2023/8/29 17:23:00
--  
从哪抄来的乱七八糟的代码

Dim sum2 As Double = DataTables("生产单").compute("sum(生产数量)", "[工序名称] = \'" & 
e.DataRow("工序名称") & "\' and [生产批号] = \'" & e.DataRow("生产批号") & "\'")
--  作者:denghui69986
--  发布时间:2023/8/30 7:36:00
--  
在论坛里面,搬运过来就不可以,终于可以了,感谢蓝老师