If e.Sender.Checked Then Dim dt As DataTable = DataTables("设备维保记录") Dim dt2 As DataTable = DataTables("生产排产表") Dim t1 As Table = e.Form.Controls("生产排产分配表").Table Dim filter As String = "成品编码 = '" & e.Form.Controls("成品编码1").text & "'" Tables("产品工艺路线").Filter = filter Tables("产品工艺路线").Sort = "加工顺序" For Each dr As Row In e.Form.Controls("生产在制").Table.Rows Dim pr As Row = Tables("产品工艺路线").Rows(0) Dim jhsl As Integer = dr("计划数量") Dim t As Table = e.Form.Controls("生产排产分配表").Table Dim nr As Row = t.AddNew nr("线别") = e.Form.Controls("线别").text nr("使用设备") = pr("使用设备") nr("成品编码") = pr("成品编码") nr("设备类型") = pr("设备类型") nr("成品描述") = pr("成品描述") nr("加工工序") = pr("加工工序") nr("加工内容") = pr("加工内容") nr("设备名称") = pr("设备名称") nr("循环时间") = pr("循环时间") nr("加工顺序") = pr("加工顺序") nr("计划数量") = jhsl Dim d As Date = dr("计划开始日期") Dim fdr = dt2.Find("使用设备 = '" & pr("使用设备") & "' and 预计结束日期 is not null", "预计结束日期 desc") If fdr IsNot Nothing Then d = fdr("预计结束日期") nr("开始日期") = d nr("预计结束日期") = d.AddMinutes(nr("循环时间")*jhsl) Dim drs = dt.Select("设备编码 = '" & pr("使用设备") & "'") For Each dr1 As DataRow In drs Dim d1 As Date = dr1("异常日期") Dim d2 As Date = dr1("计划结束日期") Dim d3 As Date = d Dim d4 As Date = nr("预计结束日期") If d3 <= d1 If d4 >= d2 Then nr("预计结束日期") = d1.AddMinutes(-1) ElseIf d4 >= d1 Then nr("预计结束日期") = d1.AddMinutes(-1) End If ElseIf d3 <= d2 Then If d4 <= d2 Then nr("开始日期") = d2 nr("预计结束日期") = d2.AddMinutes(nr("循环时间")*jhsl) ElseIf d4 >= d2 Then nr("开始日期") = d2 nr("预计结束日期") = d2.AddMinutes(nr("循环时间")*jhsl) End If End If Next Dim tnr = nr For i As Integer = 1 To Tables("产品工艺路线").Rows.Count - 1 pr = Tables("产品工艺路线").Rows(i) If tnr("加工工序") = pr("加工工序") AndAlso pr("设备类型") = "B" Continue For End If nr = t.AddNew nr("线别") = dr("线别") nr("使用设备") = pr("使用设备") nr("成品编码") = pr("成品编码") nr("设备类型") = pr("设备类型") nr("成品描述") = pr("成品描述") nr("加工工序") = pr("加工工序") nr("加工内容") = pr("加工内容") nr("设备名称") = pr("设备名称") nr("循环时间") = pr("循环时间") nr("加工顺序") = pr("加工顺序") nr("计划数量") = jhsl fdr = dt2.Find("使用设备 = '" & nr("使用设备") & "' and 预计结束日期 is not null", "预计结束日期 desc") If fdr IsNot Nothing Then Dim fdr2 As DataRow = t.DataTable.Find("使用设备 = '" & nr("使用设备") & "' and 预计结束日期 is not null", "预计结束日期 desc") If fdr2 Is Nothing Then d = fdr("预计结束日期") Else d = iif(fdr("预计结束日期")>fdr2("预计结束日期"),fdr("预计结束日期"),fdr2("预计结束日期")) End If Else If tnr("使用设备") = nr("使用设备") Then d = tnr("预计结束日期") Else d = tnr("开始日期") d = d.AddDays(1) End If End If nr("开始日期") = d nr("预计结束日期") = d.AddMinutes(nr("循环时间")*jhsl) drs = dt.Select("设备编码 = '" & pr("使用设备") & "'") For Each dr1 As DataRow In drs Dim d1 As Date = dr1("异常日期") Dim d2 As Date = dr1("计划结束日期") Dim d3 As Date = d Dim d4 As Date = nr("预计结束日期") Dim fj As Boolean = False If d3 <= d1 If d4 >= d2 Then fj = True nr("预计结束日期") = d1.AddMinutes(-1) ElseIf d4 >= d1 Then fj = True nr("预计结束日期") = d1.AddMinutes(-1) End If ElseIf d3 <= d2 Then If d4 <= d2 Then nr("开始日期") = d2 nr("预计结束日期") = d2.AddMinutes(nr("循环时间")*jhsl) ElseIf d4 >= d2 Then nr("开始日期") = d2 nr("预计结束日期") = d2.AddMinutes(nr("循环时间")*jhsl) End If End If If fj = True Then nr = t.AddNew nr("线别") = dr("线别") nr("使用设备") = pr("使用设备") nr("成品编码") = pr("成品编码") nr("设备类型") = pr("设备类型") nr("成品描述") = pr("成品描述") nr("加工工序") = pr("加工工序") nr("加工内容") = pr("加工内容") nr("设备名称") = pr("设备名称") nr("循环时间") = pr("循环时间") nr("加工顺序") = pr("加工顺序") nr("计划数量") = jhsl nr("开始日期") = d2 nr("预计结束日期") = d2.AddMinutes((d4-d1).TotalMinutes) End If Next tnr = nr Next Next End If
|