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


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

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

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


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

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


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


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

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


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望: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 = ""


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/2/5 22:25:00 [显示全部帖子]

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

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/2/5 22:27:00 [显示全部帖子]

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

 回到顶部