以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  快速设备排产  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=100117)

--  作者:zhangning
--  发布时间:2017/5/5 9:29:00
--  快速设备排产
老师,有一个问题,根据一台设备只能加工一种产品,无法同时加工两种以上的产品的原则,即这台设备必须在给定的时间内只能先加工完A产品,才能再加工B产品,如果已经给设备X排上干A产品,那么在干A产品的时间内,在排B产品时,即使设备X也能加工,
在出现的列项目(能使用的设备)中,能不能也把X去掉呢?
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:精益制造管理系统.rar

管理者:qdrA001

此主题相关图片如下:360反馈意见截图1639040891107130.png
按此在新窗口浏览图片
如在上图上,
B8841001360A 第1序 是用牧野86二号机在4月5日到4月6日干的,如果
B8841001060B 第1序 计划是在4月5日到4月6日干,那在排B8841001060B 第1序的“调度设备”时,如果牧野86二号机也能干,
如何将去掉牧野86二号机呢?

请老师帮帮忙,如果这个能解决,就会大大提高工作效率,谢谢!

--  作者:有点色
--  发布时间:2017/5/5 9:58:00
--  
If e.Col.name Like "*调度设备*" Then
    Dim str As String = ""
    Dim filter As String = "部品ID = \'" & e.Row("部品ID") & "\'"
    Dim idx As String = e.Col.Name.Replace("第", "").Replace("序_调度设备", "")
    Dim fdr As DataRow = DataTables("工程和工时").Find(filter & " and 工序序号 = \'" & idx & "\'")
    If fdr IsNot Nothing Then
        For Each dc As DataCol In DataTables("工程和工时").DataCols
            If dc.name.StartsWith("使用机器") AndAlso fdr.IsNull(dc.name) = False Then
                Dim flag As Boolean = True
                For Each c As Col In e.Table.Cols
                    If c.name Like "*调度设备*" Then
                        Dim i As Integer = c.Name.Replace("第", "").Replace("序_调度设备", "")
                        For Each dr As DataRow In e.Table.DataTable.Select(c.name & " = \'" & fdr(dc.name) & "\'")
                            If dr("第" & i & "序_开始日") < e.Row("第" & i & "序_开始日") Then
                                If dr("第" & i & "序_结束日") >= e.Row("第" & i & "序_开始日") Then
                                    flag = False
                                End If
                            ElseIf dr("第" & i & "序_开始日") >= e.Row("第" & i & "序_开始日") Then
                                If dr("第" & i & "序_开始日") <= e.Row("第" & i & "序_结束日") Then
                                    flag = False
                                End If
                            End If
                        Next
                        If flag = False Then Exit For
                    End If
                Next
                If flag = True Then
                    str &= fdr(dc.name) & "|"
                End If
            End If
        Next
    End If
    e.Col.ComboList = str
End If