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


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

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

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


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

无论怎么,点两次才刷新是绝对没有道理的,不妨来个简单的示例试试?

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


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

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


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


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

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


 回到顶部
美女呀,离线,留言给我吧!
yangming
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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的发言:

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

怎么套?


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

For i As Integer = 0 To 1
    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
Next
MessageBox.Show("数据已刷新!", "提示")
Tables("项目总表").Filter = ""


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


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

没看您的文件,估计是逻辑有问题,上面的方法只是效率有些低!

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


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

估计您的DataTables(Vars("表名")).Save()此时的Vars("表名")等于XC_帐套默认_Table1导致的逻辑(循环逻辑)错误!

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


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

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


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