Foxtable(狐表)用户栏目专家坐堂 → 重算当前表代码


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

主题:重算当前表代码

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
重算当前表代码  发帖心情 Post By:2010/8/11 23:48:00 [只看该作者]

如题,重置当前表所有列代码,谢谢

 

 


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


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

复制并粘贴全表............     图片点击可在新窗口打开查看      或 RaiseDataColChanged

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


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

有必要吗?

 

For Each dc As DataCol In DataTables("表A").DataCols
    DataTables("表A").DataCols(dc.Name).RaiseDataColChanged()
Next


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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2010/8/12 0:24:00 [只看该作者]

C版,3楼也是要指定表名的,能不能不指定表名,重算当前表所有列。

或者如以下要求,如果当前表名=表A,则执行1条,如果当前表名=表B,则执行2条,如果当前表名=表C,则执行3条。。。。。我要把这个按钮放在菜单上,点击则重算当前表指定列,谢谢

 

1.DataTables("表A").DataCols("第一列").RaiseDataColChanged()

   DataTables("表A").DataCols("第二列").RaiseDataColChanged()

2.DataTables("表B").DataCols("第一列").RaiseDataColChanged()

3.DataTables("表C").DataCols("第一列").RaiseDataColChanged()

4.DataTables("表D").DataCols("第一列").RaiseDataColChanged()

   DataTables("表D").DataCols("第三列").RaiseDataColChanged()


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


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

以下是引用wqc360在2010-8-12 0:24:00的发言:

C版,3楼也是要指定表名的,能不能不指定表名,重算当前表所有列。

 

 

呵呵,这个也能难倒你吗?

 

For Each dc As DataCol In DataTables("表A").DataCols
    DataTables(CurrentTable.Name).DataCols(dc.Name).RaiseDataColChanged()
Next

 

[此贴子已经被作者于2010-8-12 0:28:18编辑过]

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


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

以下是引用wqc360在2010-8-12 0:24:00的发言:

 

或者如以下要求,如果当前表名=表A,则执行1条,如果当前表名=表B,则执行2条,如果当前表名=表C,则执行3条。。。。。我要把这个按钮放在菜单上,点击则重算当前表指定列,谢谢

 

 

那就不要用遍历所有列,事先写好代码加上判断就可以了。


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


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

以下是引用wqc360在2010-8-12 0:24:00的发言:

C版,3楼也是要指定表名的,能不能不指定表名,重算当前表所有列。

或者如以下要求,如果当前表名=表A,则执行1条,如果当前表名=表B,则执行2条,如果当前表名=表C,则执行3条。。。。。我要把这个按钮放在菜单上,点击则重算当前表指定列,谢谢

 

1.DataTables("表A").DataCols("第一列").RaiseDataColChanged()

   DataTables("表A").DataCols("第二列").RaiseDataColChanged()

2.DataTables("表B").DataCols("第一列").RaiseDataColChanged()

3.DataTables("表C").DataCols("第一列").RaiseDataColChanged()

4.DataTables("表D").DataCols("第一列").RaiseDataColChanged()

   DataTables("表D").DataCols("第三列").RaiseDataColChanged()

For Each dc As DataCol In CurrentTable.datatable.DataCols
    DataTables(CurrentTable.Name).DataCols(dc.Name).RaiseDataColChanged()
Next


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


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

以下是引用mr725在2010-8-12 0:35:00的发言:

For Each dc As DataCol In CurrentTable.datatable.DataCols
    DataTables(CurrentTable.Name).DataCols(dc.Name).RaiseDataColChanged()
Next

 

谢谢,没注意到这个。


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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2010/8/12 1:19:00 [只看该作者]

谢谢2位老师!

终于搞定,并测试了效率,知道遍历所有列的效率很低的。以前主要是判断当前表的表名代码不知怎么写:If CurrentTable.Name = "日报表" Then

 

For Each dt As datatable In DataTables

    dt.Save()'保存所有数据

Next

Syscmd.Table.Load() '同步当前表

If CurrentTable.Name = "日报表" Then
    DataTables("日报表").DataCols("图号").RaiseDataColChanged()'重算表
    DataTables("日报表").DataCols("工序_序号").RaiseDataColChanged()'重算表
    DataTables("日报表").DataCols("工艺_序号").RaiseDataColChanged()'重算表
    DataTables("日报表").DataCols("派工单号").RaiseDataColChanged()'重算表
Elseif CurrentTable.Name = "产品目录" Then
    DataTables("产品目录").DataCols("图号").RaiseDataColChanged()'重算表
    DataTables("产品目录").DataCols("材料_重量Kg").RaiseDataColChanged()'重算表
    DataTables("产品目录").DataCols("材料_材质").RaiseDataColChanged()'重算表
    DataTables("产品目录").DataCols("批量").RaiseDataColChanged()'重算表
    DataTables("产品目录").DataCols("确定").RaiseDataColChanged()'重算表
Elseif CurrentTable.Name = "产品工序" Then
    DataTables("产品工序").DataCols("图号").RaiseDataColChanged()'重算表
    DataTables("产品工序").DataCols("工序_序号").RaiseDataColChanged()'重算表
    DataTables("产品工序").DataCols("确定").RaiseDataColChanged()'重算表   
Else
    Messagebox.Show("没有要重算的表!","提示")
End If

For Each dt As datatable In DataTables

    dt.Save()'保存所有数据

Next

 

 

[此贴子已经被作者于2010-8-12 1:20:02编辑过]

 回到顶部