以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 用AppendLoad追载数据后再用点”同步当前表“会卸载已加载的数据 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=72345) |
-- 作者:guning007 -- 发布时间:2015/7/28 17:35:00 -- 用AppendLoad追载数据后再用点”同步当前表“会卸载已加载的数据 为了避免不同用户同时添加供应商时的冲突,我想采用如下办法。 做一个按钮叫“新增供应商”,代码如下: Dim id As Integer = DataTables("供应商").Compute("Max(_Identify)") Dim Filter As String = "[_Identify] > " & id DataTables("供应商").AppendLoad(Filter, False) Tables("供应商").AddNew() Tables("供应商").Save() 我的想法是: 先追载新数据,如果其他用户已经新增了行,就会出现在Table中 然后在新增行 然后立刻保存新增的行,让别的用户可以追载到这一个新增的行 运行之后其他都好,但是发现一个问题,不能去点系统菜单自带的”同步当前表“,否则表中已经加载的数据会被卸载掉,只剩下刚刚新增的行。 百思不得其解,所以发帖求助。 谢谢! |
-- 作者:大红袍 -- 发布时间:2015/7/28 17:38:00 -- 你的BeforeLoad事件写了代码?注释掉看看。 |
-- 作者:guning007 -- 发布时间:2015/7/28 18:08:00 -- 红老师您好,我的BeforeLoadOutterTable事件没有写代码。 我又测试了一次,同步当前表之后,表中只剩下我新增行的最后一行(我新增了三行)。 再新增一行,然后同步一次,又剩下最后新增的那一行。 被逼无奈,我只好把代码改成如下暂时先对付着,希望能找到解决方法。 DataTables("供应商").Load Tables("供应商").AddNew() Tables("供应商").Save() Forms("供应商信息管理").Open 但是这样每次要重新加载整个供应商表,还好目前表还不大。
|
-- 作者:大红袍 -- 发布时间:2015/7/28 18:28:00 -- 表属性的 BeforeLoad 和 AfterLoad 事件是否写了代码。
msgbox(DataTables("供应商").LoadFilter) 看看 |
-- 作者:guning007 -- 发布时间:2015/7/28 18:32:00 -- 这两个地方也没有写代码。 我试了在命令窗口执行您给的 msgbox(DataTables("供应商").LoadFilter) 弹窗显示内容是空的。
|
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2015/7/28 18:47:00 -- Yes! 谢谢红老师,这次数据都回来了。 是不是LoadFilter被Appendload的Filter给干扰了? 用DataTables("供应商").LoadFilter = DataTables("供应商").LoadFilter让LoadFilter还原,红老师果然厉害。 多谢!
|