-- 作者:nuoyan89
-- 发布时间:2021/2/19 9:34:00
-- 引用内容增加条件
老师,我想再加工条件,就是在引用产品工艺路线这个表中的数据时,只需要引用“生效状态="生效中" ”,非生效中的不引用,请帮忙看看,谢谢
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
|