以文本方式查看主题 - 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去掉呢?
管理者:qdrA001 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 |