Foxtable(狐表)用户栏目专家坐堂 → 切换表时特别卡


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

主题:切换表时特别卡

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


加好友 发短信
等级:三尾狐 帖子:715 积分:6677 威望:0 精华:0 注册:2016/6/27 17:56:00
切换表时特别卡  发帖心情 Post By:2017/5/31 18:59:00 [只看该作者]

老师,请问下为什么我切换表时特别卡,等很久才切换过来,软件里大概有30个表

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 21:41:00 [只看该作者]

 你是不是在prepareEdit或者drawcell事件或者项目事件maintableChanged写了什么耗时的代码?

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


加好友 发短信
等级:三尾狐 帖子:715 积分:6677 威望:0 精华:0 注册:2016/6/27 17:56:00
  发帖心情 Post By:2017/6/1 18:59:00 [只看该作者]

老师,我试了下是maintableChanged放太多东西了,我想问下,我想在切换表时,自动重置当前表的所有列,代码该怎么写,谢谢!

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 20:49:00 [只看该作者]

 有必要在切换的时候,就重置吗?为什么要重置?你datacolchanged事件写了什么代码?


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


加好友 发短信
等级:三尾狐 帖子:715 积分:6677 威望:0 精华:0 注册:2016/6/27 17:56:00
  发帖心情 Post By:2017/6/1 21:45:00 [只看该作者]

其他表还有类似这样的代码,每次重置才能刷新,很麻烦,所以才想到用切换表就自动重置
Select Case e.DataCol.Name
    Case "第一列","第二列","第三列"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("第一列") OrElse dr.IsNull("第二列") OrElse dr.IsNull("第三列") Then
        dr("第四列") = Nothing    
        Else
            Dim filter As String
            filter = "第一列 = '" & dr("第一列") & "' And 第二列 = '" & dr("第二列") & "' And 第三列 = '" & dr("第三列") & "'"
            pr = DataTables("Mps_Future").Find(filter)
           
If pr IsNot Nothing Then
         

 e.DataRow("第四列") = "已上传"
        Else
            e.DataRow("第四列") = "未上传"
        End If
End If
End Select

Select Case e.DataCol.Name
    Case "第一列","第二列","第三列"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("第一列") OrElse dr.IsNull("第二列") OrElse dr.IsNull("第三列") Then
        Else
            Dim filter As String
            filter = "第一列 = '" & dr("第一列") & "' And 第二列 = '" & dr("第二列") & "' And 第三列 = '" & dr("第三列") & "'"
            pr = DataTables("Mps_Future").Find(filter)
            If pr IsNot Nothing Then
                pr("第四列") = "已上传"
            End If
        End If
End Select

If e.DataCol.Name = "第三列新" AndAlso e.NewValue > 0 Then 
e.DataRow("第三列") = e.DataRow("第三列新")
End  If

If e.DataCol.name = "第五列" Then
 If e.NewValue.length = 8 Then
 Dim d As Date = new Date(e.NewValue.Substring(0,4), e.newvalue.substring(4,2), e.newvalue.substring(6,2))
 e.DataRow("第五列")= d
 End If
End If

Select Case e.DataCol.Name
    Case "北京"
        If e.DataRow.IsNull("北京") = False Then
     Dim nma() As String = {"1","2","3","4","5","6","7","8","9","10","11","12"} '
            Dim nmb() As String = {"1","2","3","4","5","6","7","8","9","10","11","12"} '
            Dim dr As DataRow = DataTables("7").AddNew()    
           For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
End If
End Select

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


加好友 发短信
等级:三尾狐 帖子:715 积分:6677 威望:0 精华:0 注册:2016/6/27 17:56:00
  发帖心情 Post By:2017/6/1 21:47:00 [只看该作者]

老师,如果切换表时,只自动重置当前的表应该不会卡吧,又不是切换表时所有表的列都重置了

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 22:05:00 [只看该作者]

 那你就判断表名,然后重置列,如

 

If mainTable.Name = "表A" Then

 

ElseIf mainTable.Name = "表B" Then

 

 

End If


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


加好友 发短信
等级:三尾狐 帖子:715 积分:6677 威望:0 精华:0 注册:2016/6/27 17:56:00
  发帖心情 Post By:2017/6/1 22:18:00 [只看该作者]

老师,这样的代码能帮我写一下吗?如果打开的是表A,那么自动重置表A的A列,B列,C列

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 23:10:00 [只看该作者]

If MainTable.Name = "表A" Then
    MainTable.DataTable.DataCols("A列").RaiseDataColChanged
    MainTable.DataTable.DataCols("B列").RaiseDataColChanged
    MainTable.DataTable.DataCols("C列").RaiseDataColChanged
ElseIf MainTable.Name = "表B" Then
   
End If

 回到顶部