以文本方式查看主题

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

--  作者:江南小镇
--  发布时间:2019/11/13 22:35:00
--  [求助]提醒禁止编辑
老师,如果一批次入 库数量10 出库11下面代码不提醒或禁止编辑


If e.DataCol.Name = "出库_数量" Then
    Dim dr As DataRow = DataTables("入库明细").Find("入库单编号明细 = \'" & e.DataRow("入库批次号") & "\'")
    If dr IsNot Nothing Then
        If dr("库存") < e.NewValue Then
            Messagebox.Show("库存不够!")
            e.Cancel = True
        Else
            dr("入库_数量") = dr("库存") - e.NewValue
        End If
    End If
End If

--  作者:有点蓝
--  发布时间:2019/11/14 9:35:00
--  
代码有什么问题?
--  作者:江南小镇
--  发布时间:2019/11/14 12:10:00
--  
老师,上面代码,有时候入库第一个批次在出库表的第一次出库时还是可以出现负数的。
--  作者:有点蓝
--  发布时间:2019/11/14 13:50:00
--  
出现负数未必是这里的问题。很多情况都有可能出现这种问题的。比如并发的时候,2台电脑同时下单。
另外上面的“入库_数量”是不是应该改成“出库_数量”?
--  作者:江南小镇
--  发布时间:2019/11/14 16:27:00
--  
老师,关联表保存数据下面代码不得。



\'If Tables("出库.出库明细").HasChanges Then
    \'If MessageBox.Show("修改后请保存数据", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes  Then
        \'Tables("出库.出库明细").save
    \'Else
       \' Tables("出库.出库明细").RejectChanges
    \'End If
\'End If

--  作者:有点蓝
--  发布时间:2019/11/14 16:40:00
--  
Tables("出库.出库明细")

改为

dataTables("出库明细")