Foxtable(狐表)用户栏目专家坐堂 → 请教:这段代码为何要点二次才能刷新


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

主题:请教:这段代码为何要点二次才能刷新

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/2/5 21:54:00 [显示全部帖子]

是在窗口中修改的话:

原:
Dim drs As List(of DataRow) = DataTables(Vars("表名")).Select("工号 <> ''")
   改为:
Dim drs As List(of DataRow) = DataTables("XC_帐套默认_Table1").Select("工号 <> ''")

原: DataTables(Vars("表名")).Save()     改为:
DataTables("XC_帐套默认_Table1").Save()        

[此贴子已经被作者于2010-2-5 21:54:47编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/2/5 22:16:00 [显示全部帖子]

以下是引用yangming在2010-2-5 18:07:00的发言:

下面的代码是一个刷新按钮中的,不知为何,非要点击二次,窗口表才能刷新数据
DataTables(Vars("表名")).Save()
Tables("项目总表").Filter = "[表名] = '" & Vars("表名") & "'And [公式] <> ''"
Dim drs As List(of DataRow) = DataTables(Vars("表名")).Select("工号 <> ''")
Dim s2,s3 As String
For i As Integer = 0 To Tables("项目总表").Count-1    '=这段是计算原来的AA表 AA表的数据并没有修改过!

For Each dr As DataRow In drs     '=因为这个dr是AA表的
s2=Tables("项目总表")(i,"列名")
s3=Tables("项目总表")(i,"公式")
dr(""& s2 &"")= Eval(s3,dr)        '=所以这个结果还是原来AA表的!~
Next
Next
DataTables(Vars("表名")).Save()    '=又保存原来的数据
Tables(Vars("表名")).DataTable.Load()    '=这段代码还是加载原来没有修改过的数据

Tables("XC_帐套默认_Table1").Fill("Select * From {"& Vars("表名") &"}",False)   '=这里又fill回来了原来的数据
If DataTables("XC_帐套默认_Table1").DataCols.Contains("日期") Then
Tables("XC_帐套默认_Table1").Cols("日期").Visible = False
Tables("XC_帐套默认_Table1").Cols("部门").Width = 120
End If

For Each dc As DataCol In DataTables(Vars("表名")).DataCols
                 IF DataTables(Vars("表名")).DataCols(dc.Name).AllowEdit = False
              DataTables("XC_帐套默认_Table1").DataCols(dc.Name).AllowEdit = False
            End If
    Next

MessageBox.Show("数据已刷新!", "提示")
Tables("项目总表").Filter = ""

[此贴子已经被作者于2010-2-5 18:08:16编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/2/5 22:31:00 [显示全部帖子]

程版:  你这样循环100次,结果也是一样的~  呵呵.


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/2/5 23:21:00 [显示全部帖子]

上面能通过的话,下面这条代码(及以下的都)可以不要了,提速一倍以上:  
Tables("XC_帐套默认_Table1").Fill("Select * From {" & Vars("表名") & "}",False)  
[此贴子已经被作者于2010-2-5 23:23:55编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/2/28 23:31:00 [显示全部帖子]

.............
DataTables("XC_帐套默认_Table1").Save()
DataTables("XC_帐套默认_Table1").Load()
MessageBox.Show("数据已刷新!", "提示")
Tables("项目总表").Filter = ""

棕色部分改为:DataTables(Vars("表名")).Load()  吧。。。

 回到顶部