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


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

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

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
请教:这段代码为何要点二次才能刷新  发帖心情 Post By: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

For Each dr As DataRow In drs
s2=Tables("项目总表")(i,"列名")
s3=Tables("项目总表")(i,"公式")
dr(""& s2 &"")= Eval(s3,dr)
Next
Next
DataTables(Vars("表名")).Save()
Tables(Vars("表名")).DataTable.Load()
Tables("XC_帐套默认_Table1").Fill("Select * From {"& Vars("表名") &"}",False)
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-3-1 8:17:54编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 18:41:00 [显示全部帖子]

很奇怪,点第一次时,此内部表都没有改变,只有点第二次,才会改变,所以还是内部表的问题

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 19:16:00 [显示全部帖子]

以下是引用czy在2010-2-5 18:54:00的发言:
全局变量中是什么表?

内部表


 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 19:23:00 [显示全部帖子]

以下是引用czy在2010-2-5 18:57:00的发言:
不是不和fill中少了一个参数有关呢?

改成这样试试:

Tables("XC_帐套默认_Table1").Fill("Select * From {"& Vars("表名") &"}","",False)

结果一样
昨天和今天还发现一个问题,如果我对内部表做了复制表或是导入操作后,此内部表就会隐藏了所有列,就是在查看表结构中都看不到任何列,我只有做重命名成其它表名才会显示出来


 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 19:25:00 [显示全部帖子]

以下是引用程兴刚在2010-2-5 19:07:00的发言:

没太细看,前半截代码能否改变方法,用RaiseDataColChanged来刷新所需表达式计算结果的列的值?

因为表格是动态生成的,所以无法在此表中设置任何表事件代码


 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 21:04:00 [显示全部帖子]

请看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:简单示例.table


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 21:42:00 [显示全部帖子]

以下是引用程兴刚在2010-2-5 21:20:00的发言:

我有一个本办法:所有代码外套循环语句!图片点击可在新窗口打开查看

怎么套?


 回到顶部
美女呀,离线,留言给我吧!
yangming
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 22:57:00 [显示全部帖子]

以下是引用mr725在2010-2-5 22:31:00的发言:

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

说的是,没用的,呵


 回到顶部
美女呀,离线,留言给我吧!
yangming
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/5 22:58:00 [显示全部帖子]

以下是引用mr725在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编辑过]

很好,谢谢!测试通过!

[此贴子已经被作者于2010-2-5 23:10:36编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/2/6 11:53:00 [显示全部帖子]

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

再次谢谢mr725,这代码已取消,呵呵

[此贴子已经被作者于2010-2-6 11:55:53编辑过]

 回到顶部
总数 13 1 2 下一页