Foxtable(狐表)用户栏目专家坐堂 → 加载很慢


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

主题:加载很慢

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


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

 你需求这么奇葩,数据量又那么多,耗时是肯定的啊。试试代码

 

DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列

 

For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next


 

[此贴子已经被作者于2015/11/16 16:45:31编辑过]

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


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

哦,试试代码这样写

 

Systemready = False
DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列
Systemready = true

 

For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next


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


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

Systemready = False
DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列
Systemready = True

 

'加在这里
For Each ary() As String In DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")
    '加在这里
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next


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


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

Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
Dim arys As List(of String()) = DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")
p.Visible = True
p.Maximum =  arys.Count - 1 '设置最大值
p.Minimum = 0 '设置最小值
p.Value = 0 '设置当前值

Dim idx As Integer = 0
DataTables("应付款项").StopRedraw
DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列
For Each ary() As String In  arys
    idx += 1
    p.Value = idx '加在这里
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
    DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
Next
DataTables("应付款项").ResumeRedraw
p.Visible = False


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


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

以下是引用sf020cf在2015/11/17 9:24:00的发言:

对了我突然想到 处理过的数据也是存在同一张表里 我要把未经处理的数据加载 已经完成的忽略 那是不是在表里加一列逻辑列 初始默认是否

加载时进行判断 筛选出未处理的

 

 

可以加一列逻辑列,处理过的,赋值为true。

 

或者,判断列也行,比如某列为空,就是没处理过的。


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


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

1、提交按钮的代码不用改,查所有数据和查当天的数据没太大区别。

 

2、筛选一下,只重置某些数据即可。如代码

 

Dim arys As List(of String()) = DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null and 运费 is null")


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


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

以下是引用sf020cf在2015/11/17 10:02:00的发言:

这样说来我只要在刷新按钮中加代码判断哪些是空值才加载就行了?

 

 

是的,加上筛选条件即可。


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


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

报什么错?

 

If arys.Count > 0 Then
    p.Visible = True
    p.Maximum =  arys.Count - 1 '设置最大值
    p.Minimum = 0 '设置最小值
    p.Value = 0 '设置当前值
End If


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


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

Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
Dim arys As List(of String()) = DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null")

If arys.count > 0 Then
    p.Visible = True
    p.Maximum =  arys.Count - 1 '设置最大值
    p.Minimum = 0 '设置最小值
    p.Value = 0 '设置当前值
End If

Dim idx As Integer = 0
DataTables("应付款项").StopRedraw
DataTables("应付款项").DataCols("客户").RaiseDataColChanged() '重置客户列
For Each ary() As String In  arys
    idx += 1
    p.Value = idx '加在这里
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim fdr As DataRow = DataTables("应付款项").Find(filter)
   
    If fdr IsNot Nothing Then
        DataTables("应付款项").DataCols("司机").RaiseDataColChanged(fdr)
       
    End If
Next
DataTables("应付款项").ResumeRedraw
p.Visible = False

 


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


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

以下是引用sf020cf在2015/11/17 11:45:00的发言:

怎样才能自适应不同规格的屏幕 我刚刚换了另外一台电脑 界面太大了

 

 

一般,是按照1024*768的大小设计窗口才对。最好是固定窗口大小。

 

要灵活设置容器的锚定和停靠属性,以适应不同的显示器。

 

自适应,或许可以看看 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=75714&replyID=521954&skin=1

 

 

 


 回到顶部
总数 23 上一页 1 2 3 下一页