老师,我想再加工条件,就是在引用产品工艺路线这个表中的数据时,只需要引用“生效状态="生效中" ”,非生效中的不引用,请帮忙看看,谢谢
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("产品工艺路线").DataTable.LoadFilter = filter
Tables("产品工艺路线").DataTable.Load
Tables("产品工艺路线").Sort = "加工顺序"
''-----------
Dim dtb As New DataTableBuilder("临时排除日期")
dtb.AddDef("使用设备", Gettype(String), 32)
dtb.AddDef("开始日期", Gettype(Date))
dtb.AddDef("结束日期", Gettype(Date))
Dim dt10 As DataTable = dtb.Build(True)
'------------'
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("线别1").text
nr("排产设备") = pr("使用设备")
nr("成品编码") = pr("成品编码")
nr("生产批次") = dr("生产批次")
nr("下达日期") = dr("下达日期")
nr("设备类型") = pr("设备类型")
nr("成品描述") = pr("成品描述")
nr("加工工序") = pr("加工工序")
nr("加工内容") = pr("加工内容")
nr("工作时间") = pr("工作时间")
nr("设备名称") = pr("设备名称")
nr("循环时间") = pr("总工时")
nr("毛坯产地") = pr("毛坯产地")
nr("工序单价") = pr("工序单价")
nr("加工顺序") = pr("加工顺序")
nr("样件编码") = pr("样件编码")
nr("加工次数") = "首次加工"
nr("计划数量") = jhsl
Dim d As Date = dr("计划开始日期")
Dim fdr = dt2.SQLFind("使用设备 = '" & pr("使用设备") & "' and 订单状态 = '进行中' and 预计结束日期 is not null", "实际完成日期 desc")
If fdr IsNot Nothing Then d = fdr("预计结束日期")
nr("开始日期") = e.Form.Controls("计划下达日期1").text
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("生产批次") = dr("生产批次")
nr("下达日期") = dr("下达日期")
nr("成品描述") = pr("成品描述")
nr("毛坯产地") = pr("毛坯产地")
nr("加工工序") = pr("加工工序")
nr("加工内容") = pr("加工内容")
nr("工作时间") = pr("工作时间")
nr("设备名称") = pr("设备名称")
nr("循环时间") = pr("总工时")
nr("加工顺序") = pr("加工顺序")
nr("工序单价") = pr("工序单价")
nr("样件编码") = pr("样件编码")
nr("加工次数") = "首次加工"
nr("计划数量") = jhsl
If tnr("排产设备") = nr("排产设备") Then
fdr = dt2.SQLFind("排产设备 = '" & pr("使用设备") & "' and 订单状态 = '进行中' 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
d = tnr("预计结束日期")
End If
Else
d = tnr("开始日期")
d = d.AddHours(4)
End If
nr("开始日期") = d
nr("预计结束日期") = d.AddMinutes(nr("循环时间")*jhsl)
drs = dt2.SQLSelect("使用设备 = '" & pr("使用设备") & "' and 订单状态 = '进行中' and 实际完成日期 >= '" & d & "'")
For Each dr10 As DataRow In drs
Dim dr11 As DataRow = dt10.AddNew()
dr11("使用设备") = pr("使用设备")
dr11("开始日期") = dr10("开始日期")
dr11("结束日期") = dr10("实际完成日期")
Next
drs = dt.Select("设备编码 = '" & pr("使用设备") & "'")
For Each dr10 As DataRow In drs
Dim dr11 As DataRow = dt10.AddNew()
dr11("使用设备") = pr("使用设备")
dr11("开始日期") = dr10("异常日期")
dr11("结束日期") = dr10("计划结束日期")
Next
For Each dr1 As DataRow In dt10.Select("使用设备 = '" & pr("使用设备") & "'", "开始日期")
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("生产批次") = dr("生产批次")
nr("下达日期") = dr("下达日期")
nr("毛坯产地") = pr("毛坯产地")
nr("循环时间") = pr("总工时")
nr("工序单价") = pr("工序单价")
nr("加工顺序") = pr("加工顺序")
nr("样件编码") = pr("样件编码")
nr("加工次数") = "首次加工"
nr("计划数量") = jhsl
nr("开始日期") = d2
nr("预计结束日期") = d2.AddMinutes((d4-d1).TotalMinutes)
End If
Next
tnr = nr
Next
Next