Foxtable(狐表)用户栏目专家坐堂 → 循环时间


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

主题:循环时间

帅哥哟,离线,有人找我吗?
有点甜
  41楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/3 12:41:00 [只看该作者]

上传实例,说明填入什么进行测试。最后要生成什么样的数据才是正确?

 回到顶部
帅哥哟,离线,有人找我吗?
nuoyan88
  42楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2159 积分:14971 威望:0 精华:0 注册:2017/10/12 13:00:00
  发帖心情 Post By:2018/1/3 13:49:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
nuoyan88
  43楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2159 积分:14971 威望:0 精华:0 注册:2017/10/12 13:00:00
  发帖心情 Post By:2018/1/3 13:50:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
nuoyan88
  44楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2159 积分:14971 威望:0 精华:0 注册:2017/10/12 13:00:00
  发帖心情 Post By:2018/1/3 13:51:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  45楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/3 15:26:00 [只看该作者]

Dim tab As WinForm.TabControl = e.Form.Controls("生产排产")
tab.TabPages(1).Visible = True
tab.SelectedPage= tab.TabPages(1)
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("线别").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("计划数量") = 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("开始日期") = 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("生产批次") = dr("生产批次")
        nr("下达日期") = dr("下达日期")
        nr("成品描述") = pr("成品描述")
        nr("毛坯产地") = pr("毛坯产地")
        nr("加工工序") = pr("加工工序")
        nr("加工内容") = pr("加工内容")
        nr("工作时间") = pr("工作时间")
        nr("设备名称") = pr("设备名称")
        nr("循环时间") = pr("循环时间")
        nr("加工顺序") = pr("加工顺序")
        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(8)
        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("预计结束日期")
            'output.show(d1 & "|" & d2 & "|" & d3 & "|" & d4)
            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
                'msgbox(nr.Index)
                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("计划数量") = jhsl
                nr("开始日期") = d2
                nr("预计结束日期") = d2.AddMinutes((d4-d1).TotalMinutes)
            End If
        Next
        tnr = nr
    Next
Next


 回到顶部
总数 45 上一页 1 2 3 4 5