Foxtable(狐表)用户栏目专家坐堂 → [求助]关于窗口Table控件的闪屏问题(已解决)


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

主题:[求助]关于窗口Table控件的闪屏问题(已解决)

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/24 16:30:00 [显示全部帖子]

If DataTables.Contains("模拟信息_Table1") = True Then
    LockBaseMainForm
    Tables("模拟信息_Table1").StopRedraw
End If

 

 

改成

 

If Tables.Contains("模拟信息_Table1") = True Then
    LockBaseMainForm
    Tables("模拟信息_Table1").StopRedraw
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/24 18:00:00 [显示全部帖子]

 例子发上来测试一下。按理不应该。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 9:30:00 [显示全部帖子]

 

[此贴子已经被作者于2015/6/25 9:42:25编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/25 9:43:00 [显示全部帖子]

Dim rq As Date = Forms("实时采集").Controls("DateTimePicker1").Value
Dim bz As String = Forms("实时采集").Controls("ComboBox1").Text
Dim pc As String = Forms("实时采集").Controls("ComboBox2").Text
Dim cpkh As String = Forms("实时采集").Controls("TextBox1").Text
If Forms("实时采集").Controls("TextBox1").Text = "" Then
    MessageBox.Show("请选择班组,批次","提示")
    Return
End If
Dim drf As DataRow = DataTables("采集模板").Find("班组 = '"& bz &"'")
Dim bzid As String = drf("班组ID")
'填充工位节拍
DataTables("工位节拍").DataRows.Clear()
Dim lst As New Dictionary(of String ,DataRow)
For Each dr1 As DataRow In DataTables("采集模板").DataRows
    If dr1("车位ID") <> "" And dr1("产品款号") = cpkh Then
        Dim nms() As String = dr1("车位ID").Split("_")
        Dim v1 As Double = dr1("标准工时")  '标准工时
        Dim v3 As Double = dr1("标准工价")  '标准工价
        For Each nm As String In nms
            Dim dr2 As DataRow
            If lst.ContainsKey(nm)
                dr2= lst(nm)
            Else
                dr2 = DataTables("工位节拍").AddNew()
                dr2("车位ID") = nm
                lst.add(nm,dr2)
            End If
            dr2("标准工时") = dr2("标准工时") + v1
            dr2("标准工价") = dr2("标准工价") + v3
        Next
    End If
Next
For Each dr3 As DataRow In DataTables("工位节拍").DataRows
    If dr3.IsNull("车位ID") = False
        Dim cwid As String = dr3("车位ID")
        dr3("工序编号") = DataTables("采集模板").GetComboListString("工序编号","(车位ID = '"& cwid &"' or 车位ID like '"& cwid &"_%' or 车位ID  like '%_" & cwid & "' or 车位ID like '%_"& cwid &"_%') and 产品款号 = '"& cpkh &"'").Replace("|","_")
    End If
Next
For Each dr1 As DataRow In DataTables("工位节拍").DataRows
    dr1("分流工位") = DataTables("工位节拍").Compute("Count([工序编号])","工序编号 = '"& dr1("工序编号") &"'") '工序计数
    dr1("节拍工时") = dr1("标准工时") / dr1("分流工位")
    dr1("节拍工价") = dr1("标准工价") / dr1("分流工位")
Next
For Each dr4 As DataRow In DataTables("工位节拍").DataRows
    If dr4.IsNull("工序编号") Then
        dr4("工序道数") = Nothing
    Else
        dr4("工序道数") = dr4("工序编号").Split("_").Length
        dr4("产品款号") = cpkh
    End If
Next
Tables("工位节拍").AutoSizeCols()
DataTables("工位节拍").Save()

Dim sql As String
sql = "Select CycleTime As 日期,StructureID As 班组ID,pc As 批次,jp,TerminalID As 车位ID,PersonnelID As 人员ID,StyleID As 款式ID,AVG(CompleteCount) As 平均,SUM(SAM * CompleteCount) As 定额累计,SUM(UseTime1) As 用时累计,SUM(NormalPrice2 * CompleteCount) As 实现产值 F rom {BundleCardRecord_2} Where CycleTime = #"& rq &"# And StructureID = "& bzid &" And pc = "& pc &" GROUP BY CycleTime,StructureID,StyleID,pc,jp,TerminalID,PersonnelID"
Dim b2 As New GroupTableBuilder("实时信息",sql,"MES")
b2.Groups.AddDef("日期",DateGroupEnum.None)
b2.Groups.AddDef("班组ID")
b2.Groups.AddDef("批次")
b2.Groups.AddDef("车位ID")
b2.Groups.AddDef("人员ID")
b2.Groups.AddDef("款式ID")
b2.Totals.AddDef("平均","完成产量")
b2.Totals.AddDef("定额累计")
b2.Totals.AddDef("用时累计")
b2.Totals.AddDef("实现产值")
Forms("模拟信息").Open
Forms("模拟信息").StopRedraw
Tables("模拟信息_Table1").DataSource = b2.BuildDataSource

Tables("模拟信息_Table1").DataTable.DataCols.Add("班组", Gettype(String),16)
Tables("模拟信息_Table1").DataTable.DataCols.Add("工位编号", Gettype(String),16)
Tables("模拟信息_Table1").DataTable.DataCols.Add("姓名", Gettype(String),16)
Tables("模拟信息_Table1").DataTable.DataCols.Add("开始时间", Gettype(Date))
Tables("模拟信息_Table1").DataTable.DataCols.Add("结束时间", Gettype(Date))
Tables("模拟信息_Table1").DataTable.DataCols.Add("计划产量", Gettype(Integer))
Tables("模拟信息_Table1").DataTable.DataCols.Add("剩余产量", Gettype(Integer))
Tables("模拟信息_Table1").DataTable.DataCols.Add("剩余工时", Gettype(String),16)
Tables("模拟信息_Table1").DataTable.DataCols.Add("工序道数", Gettype(Integer))
Tables("模拟信息_Table1").DataTable.DataCols.Add("分流工位", Gettype(Integer))
Tables("模拟信息_Table1").DataTable.DataCols.Add("定额", Gettype(Double))
Tables("模拟信息_Table1").DataTable.DataCols.Add("累计用时", Gettype(String),16)
Tables("模拟信息_Table1").DataTable.DataCols.Add("工效", Gettype(Double))
Tables("模拟信息_Table1").DataTable.DataCols("开始时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
Tables("模拟信息_Table1").DataTable.DataCols("结束时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
For Each dr As DataRow In Tables("模拟信息_Table1").DataTable.DataRows
    If dr.IsNull("车位ID") = False Then
        Dim pr As DataRow = DataTables("工位节拍").Find("车位ID = '" & dr("车位ID") & "'")
        If pr IsNot Nothing Then
            dr("工序道数") = pr("工序道数")
            dr("分流工位") = pr("分流工位")
        End If
    End If
Next
Dim pr4 As DataRow = DataTables("模拟批次").Find("日期 = #"& rq &"# And 班组 = "& bz &" And 批次 = "& pc &"")
For Each dr As DataRow In Tables("模拟信息_Table1").DataTable.DataRows
    dr("计划产量") = pr4("计划产量") / dr("分流工位")
    dr("剩余产量") = dr("计划产量") - dr("完成产量")
    dr("定额") = dr("定额累计") / dr("完成产量")
    dr("工效") = dr("定额累计") / dr("用时累计") * 100
    Dim N2,h2,m2,s2 As Integer
    N2 = dr("用时累计")
    h2 = N2 \ 3600
    m2 = (N2 Mod 3600) \ 60
    s2 = N2 Mod 60
    dr("累计用时") = Format(new Date(1,1,1,h2,m2,s2), "HH:mm:ss")
    Dim N3,h3,m3,s3 As Integer
    N3 = dr("定额") * dr("剩余产量")
    h3 = N3 \ 3600
    m3 = (N3 Mod 3600) \ 60
    s3 = N3 Mod 60
    dr("剩余工时") = Format(new Date(1,1,1,h3,m3,s3), "HH:mm:ss")
Next
For Each dr As DataRow In Tables("模拟信息_Table1").DataTable.DataRows
    If dr.IsNull("人员ID") = False Then
        Dim pr As DataRow = DataTables("在线动态").Find("人员ID = '" & dr("人员ID") & "'")
        If pr IsNot Nothing Then
            dr("班组") = pr("班组")
            dr("工位编号") = pr("工位编号")
            dr("姓名") = pr("人员姓名")
        End If
    End If
Next
For Each dr As DataRow In Tables("模拟信息_Table1").DataTable.DataRows
    If dr.IsNull("车位ID") = False Then
        Dim pr1 As DataRow = DataTables("BundleCardRecord_2").Find("TerminalID = '" & dr("车位ID") & "'and CycleTime = #"& rq &"# And StructureID  = "& bzid &" And pc = "& pc &"","BeginTime")
        Dim pr2 As DataRow = DataTables("BundleCardRecord_2").Find("TerminalID = '" & dr("车位ID") & "'and CycleTime = #"& rq &"# And StructureID  = "& bzid &" And pc = "& pc &"","EndTime DESC")
        If pr1 IsNot Nothing Then
            dr("开始时间") = pr1("BeginTime")
            dr("结束时间") = pr2("EndTime")
        End If
    End If
Next
Tables("模拟信息_Table1").DataTable.SysStyles("Frozen").BackColor = Color.LightCyan
Tables("模拟信息_Table1").DataTable.SysStyles("CurrentRow").BackColor = Color.Blue
Tables("模拟信息_Table1").DataTable.SysStyles("CurrentRow").ForeColor = Color.White
Tables("模拟信息_Table1").ListMode = True
Tables("模拟信息_Table1").DataTable.GlobalHandler.DrawCell = True '启用DrawCell的全局表事件
Tables("模拟信息_Table1").AutoSizeCols()

Tables("模拟信息_Table1").Cols("车位ID").Visible = False
Tables("模拟信息_Table1").Cols("人员ID").Visible = False
Tables("模拟信息_Table1").Cols("班组ID").Visible = False
Tables("模拟信息_Table1").Cols("批次").Visible = False
Tables("模拟信息_Table1").Cols("款式ID").Visible = False
Tables("模拟信息_Table1").Cols("定额累计").Visible = False
Tables("模拟信息_Table1").Cols("用时累计").Visible = False
Tables("模拟信息_Table1").Cols("班组").Move(2)
Tables("模拟信息_Table1").Cols("工位编号").Move(3)
Tables("模拟信息_Table1").Cols("姓名").Move(4)
Tables("模拟信息_Table1").Cols("开始时间").Move(5)
Tables("模拟信息_Table1").Cols("结束时间").Move(6)
Tables("模拟信息_Table1").Cols("计划产量").Move(7)
Tables("模拟信息_Table1").Cols("完成产量").Move(8)
Tables("模拟信息_Table1").Cols("剩余产量").Move(9)
Tables("模拟信息_Table1").Cols("剩余工时").Move(10)
Tables("模拟信息_Table1").DataTable.DataCols("开始时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
Tables("模拟信息_Table1").DataTable.DataCols("结束时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
Tables("模拟信息_Table1").DataTable.DataCols("实现产值").SetFormat("0.00")
Tables("模拟信息_Table1").DataTable.DataCols("工效").SetFormat("0.00")
Tables("模拟信息_Table1").AutoSizeCols()
Dim t1 As Table = Tables("模拟信息_Table1")
For Each c As Col In t1.Cols
    If c.DataCol.IsNumeric = False Then
        If c.name <> "姓名" Then
            c.TextAlign = TextAlignEnum.Center
        End  If
    End  If
    If c.name = "工序道数" Or c.name = "分流工位"  Then
        c.TextAlign = TextAlignEnum.Center
    End  If
Next
Forms("模拟信息").ResumeRedraw


 回到顶部