以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 重新排序触发current change,貌似对新建行与已存在的行,影响不一样 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89309) |
-- 作者:chen3728060 -- 发布时间:2016/8/18 21:55:00 -- 重新排序触发current change,貌似对新建行与已存在的行,影响不一样 我有个客户档案的表,里面有两列,一列是ID,一列是客户名
我新建了一个 模式 的编辑窗口,就是对着这个正表,绑定的textbox之类的控件全部都是这个正表的,大概如下图,很容易理解
然后我有一个窗体,里面是客户档案的副本表,由于要显示客户的照片,所以 current change事件设置了 会找客户档案正表里对应的行 If e.Table.Current IsNot Nothing Then
客户档案的副本表是全加载(无动态加载),按照客户名进行排序。
如果我对某一行进行编辑,编辑按钮代码如下 Forms("YBCustomerEdit").show
编辑的过程中,修改商品名称,会触发副本表的sort重新排序,然后重新排序,也会触发current change,虽然行的位置变化了,但是我编辑窗口里,仍然是刚才的行,很正常没问题 ,
但是~!
如果我是使用新建,新建按钮代码如下: Dim r As Row = Tables("YBCustomerInfo").AddNew
新建的过程中,修改商品名称,触发副本表的sort重新排序,也出发current change,行的位置变化了,但同时我编辑窗口里的行也发生变化了!不是我正在新建的行了
这搞到我没办法新建啊,于是我把新建按钮的代码改为: Dim t As Table =Tables("YBCustomerSelect_TableYBCustomerInfo")
Dim r As Row = Tables("YBCustomerInfo").AddNew
这样新建就没问题了。
最终我想问的问题: 为什么这个sort排序,在新建的时候会有影响,而在编辑的时候又不会有影响?同样是对整个表的行进行了重新的排序,都触发过current change |
-- 作者:大红袍 -- 发布时间:2016/8/18 23:02:00 -- 对于副本表,是实时排序的,你新建行以后,马上就排序了,可能会导致错乱。
如果是修改数据的话,我觉得,用sqlTable也要比用副本要好。 |
-- 作者:chen3728060 -- 发布时间:2016/11/17 17:15:00 -- 回复:(大红袍) 对于副本表,是实时排序的,你... 突然想追问一个问题 sqltable新建商品,流程是不是这样 ①正本表Table.addnew ②弹出一个模式的录入窗口,对应该Table的 ③录入保存后,SqlTable用appendload追加刚才新建的行? |
-- 作者:有点蓝 -- 发布时间:2016/11/17 18:08:00 -- 可以这样。我更喜欢编辑窗口绑定SqlTable,SqlTable来addnew,保存后再追加到主表。 |