以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  控制生产累计数不允许大于计划生产数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=93149)

--  作者:意悠心轻
--  发布时间:2016/11/21 21:42:00
--  控制生产累计数不允许大于计划生产数

密码:111222333

    当生产计划表的订单号、型号相同时不允许重复输入,我看使用说明和视频教程,安使用说明的程序做,依然能重复输入。另想控制冲压车间工资表的同一产品名称、生产工序、订单号对应的数量累计不允许超过生产计划表同一产品名称、订单号对应的数量,如果大于生产计划数则不允许输入,请教如何做?


[此贴子已经被作者于2016/11/27 22:22:16编辑过]

--  作者:有点蓝
--  发布时间:2016/11/21 22:06:00
--  
生产计划表,DataColChanging事件

Select Case e.DataCol.name
    Case "订单号"
        Dim dr As DataRow = e.DataRow
        If e.NewValue > "" AndAlso dr.IsNull("型号") = False Then
            If e.DataTable.Find("订单号 = \'" & e.NewValue & "\' And 型号 = \'" & dr("型号") & "\'") IsNot Nothing Then
                MessageBox.Show("已经存在相同产品名称和订单号的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If
    Case "型号"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("订单号") = False AndAlso e.NewValue > "" Then
            If e.DataTable.Find("订单号 = \'" & dr("订单号") & "\' And 型号 = \'" & e.NewValue & "\'") IsNot Nothing  Then
                MessageBox.Show("已经存在相同产品名称和订单号的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If
End Select

--  作者:有点蓝
--  发布时间:2016/11/21 22:13:00
--  
由于生产计划表没有生产工序,所以无法获取同一产品名称、生产工序、订单号对应的计划数量,大致代码可以参考:

冲压车间工资表,DataColChanging事件
Select Case e.DataCol.name
    Case "数量"
        If e.NewValue > 0 Then
            Dim dr As DataRow = DataTables("生产计划").Find("订单号=\'" & e.DataRow("订单号") & "\' And 型号= \'" & e.DataRow("产品名称") & "\'")
            If dr IsNot Nothing Then
                Dim sum As Double = e.DataTable.Compute("Sum(数量)","[_Identify] <> " & e.DataRow("_Identify"))
                If sum + e.NewValue > dr("数量") Then
                    msgbox("数量超出!")
                    e.Cancel = True
                End If
            End If
        End If
End Select

--  作者:意悠心轻
--  发布时间:2016/11/21 22:54:00
--  
我在窗口管理中设计了一个安订单号统计实际生产窗口,原意点冲压车间工资表数量单元格,弹出在这个窗口,窗口里把与冲压车间工资表数量行对应的产品名称、生产工序、订单号、生产计划数、累计已完成生产数,未完工数(生产计划数-累计已完工数)显示出来,本次录入数分列显示出来,这样就可以看着数据录入,并且知道这张单完工未,还有多少未完工,累计已完成生产数+本次录入数>生产计划数不允许录入,这效果如何做?我看过SELECT语句及一些基本格式,都不相乎,自己动手做过一下,由于在窗口的table控件属性select语句里没有注标功能,没法保存我编的语句,弄一下就放下了。 默认生产计划数每个生产工序的数量相等。
[此贴子已经被作者于2016/11/21 23:01:34编辑过]

--  作者:意悠心轻
--  发布时间:2016/11/21 23:06:00
--  
把冲压车间工资表的订单数量列名改为生产计划数。
--  作者:有点蓝
--  发布时间:2016/11/21 23:06:00
--  
没看懂你的数据流转模式,多表组合统计可以参考:


--  作者:意悠心轻
--  发布时间:2016/11/21 23:17:00
--  
本次录入数是要带入冲压车间工资表中的单元格的,累计已完成生产数+本次录入数>生产计划数不允许录入
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20161121231503.png
图片点击可在新窗口打开查看

--  作者:意悠心轻
--  发布时间:2016/11/21 23:19:00
--  
本次录入数要手工输入去。
--  作者:有点蓝
--  发布时间:2016/11/21 23:21:00
--  
按6楼的方式,用分组统计
--  作者:意悠心轻
--  发布时间:2016/11/21 23:29:00
--  

你那个是统计表,不能输入数据啊。