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


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

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

美女呀,离线,留言给我吧!
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编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/2/5 18:20:00 [只看该作者]

除了第二和第三行的比较条件和比较值写法有点问题外,没看出有什么问题。
改这句看看:

DataTables(Vars("表名")).Load()
[此贴子已经被作者于2010-2-5 18:20:52编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/2/5 18:26:00 [只看该作者]

哦,这不关加载的是,窗口的Table是用fill方法,按理只要保存后执行fill就不会有错啊。

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


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

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

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/2/5 18:54:00 [只看该作者]

全局变量中是什么表?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/2/5 18:57:00 [只看该作者]

不是不和fill中少了一个参数有关呢?

改成这样试试:

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

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/2/5 19:07:00 [只看该作者]

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


 回到顶部
美女呀,离线,留言给我吧!
yangming
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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来刷新所需表达式计算结果的列的值?

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


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