Foxtable(狐表)用户栏目专家坐堂 → 引用内容增加条件


  共有2239人关注过本帖树形打印复制链接

主题:引用内容增加条件

美女呀,离线,留言给我吧!
nuoyan89
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
引用内容增加条件  发帖心情 Post By: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


 回到顶部