Foxtable(狐表)用户栏目专家坐堂 → 用AppendLoad追载数据后再用点”同步当前表“会卸载已加载的数据


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

主题:用AppendLoad追载数据后再用点”同步当前表“会卸载已加载的数据

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


加好友 发短信
等级:婴狐 帖子:89 积分:720 威望:0 精华:0 注册:2015/4/28 10:09:00
用AppendLoad追载数据后再用点”同步当前表“会卸载已加载的数据  发帖心情 Post By:2015/7/28 17:35:00 [只看该作者]

为了避免不同用户同时添加供应商时的冲突,我想采用如下办法。


做一个按钮叫“新增供应商”,代码如下:


Dim id As Integer = DataTables("供应商").Compute("Max(_Identify)")

Dim Filter As String = "[_Identify] > " & id

DataTables("供应商").AppendLoad(Filter, False)

Tables("供应商").AddNew()

Tables("供应商").Save()


我的想法是:


先追载新数据,如果其他用户已经新增了行,就会出现在Table中

然后在新增行

然后立刻保存新增的行,让别的用户可以追载到这一个新增的行


运行之后其他都好,但是发现一个问题,不能去点系统菜单自带的”同步当前表“,否则表中已经加载的数据会被卸载掉,只剩下刚刚新增的行。


百思不得其解,所以发帖求助。


谢谢!





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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/28 17:38:00 [只看该作者]

 你的BeforeLoad事件写了代码?注释掉看看。

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


加好友 发短信
等级:婴狐 帖子:89 积分:720 威望:0 精华:0 注册:2015/4/28 10:09:00
  发帖心情 Post By:2015/7/28 18:08:00 [只看该作者]

红老师您好,我的BeforeLoadOutterTable事件没有写代码。

我又测试了一次,同步当前表之后,表中只剩下我新增行的最后一行(我新增了三行)。

再新增一行,然后同步一次,又剩下最后新增的那一行。

被逼无奈,我只好把代码改成如下暂时先对付着,希望能找到解决方法。

DataTables("供应商").Load
Tables("供应商").AddNew()
Tables("供应商").Save()
Forms("供应商信息管理").Open

但是这样每次要重新加载整个供应商表,还好目前表还不大。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/28 18:28:00 [只看该作者]

表属性的 BeforeLoad 和 AfterLoad 事件是否写了代码。

 

msgbox(DataTables("供应商").LoadFilter) 看看


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


加好友 发短信
等级:婴狐 帖子:89 积分:720 威望:0 精华:0 注册:2015/4/28 10:09:00
  发帖心情 Post By:2015/7/28 18:32:00 [只看该作者]

这两个地方也没有写代码。

我试了在命令窗口执行您给的  msgbox(DataTables("供应商").LoadFilter)

弹窗显示内容是空的。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/28 18:38:00 [只看该作者]

Dim id As Integer = DataTables("供应商").Compute("Max(_Identify)")

Dim Filter As String = "[_Identify] > " & id

DataTables("供应商").AppendLoad(Filter, False)

Tables("供应商").AddNew()

Tables("供应商").Save()


DataTables("供应商").LoadFilter = DataTables("供应商").LoadFilter

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


加好友 发短信
等级:婴狐 帖子:89 积分:720 威望:0 精华:0 注册:2015/4/28 10:09:00
  发帖心情 Post By:2015/7/28 18:47:00 [只看该作者]

Yes! 谢谢红老师,这次数据都回来了。

是不是LoadFilter被Appendload的Filter给干扰了? DataTables("供应商").LoadFilter = DataTables("供应商").LoadFilter让LoadFilter还原,红老师果然厉害。

多谢!

 回到顶部