我有个客户档案的表,里面有两列,一列是ID,一列是客户名
我新建了一个 模式 的编辑窗口,就是对着这个正表,绑定的textbox之类的控件全部都是这个正表的,大概如下图,很容易理解
此主题相关图片如下:1.jpg
然后我有一个窗体,里面是客户档案的副本表,由于要显示客户的照片,所以 current change事件设置了 会找客户档案正表里对应的行
If e.Table.Current IsNot Nothing Then
Dim dr As DataRow = e.Table.Current.DataRow
Dim wz As Integer = Tables("YBCustomerInfo").FindRow(dr)
If wz >=0 Then
Tables("YBCustomerInfo").Position = wz
End If
End If
客户档案的副本表是全加载(无动态加载),按照客户名进行排序。
如果我对某一行进行编辑,编辑按钮代码如下
Forms("YBCustomerEdit").show
此主题相关图片如下:1.jpg
编辑的过程中,修改商品名称,会触发副本表的sort重新排序,然后重新排序,也会触发current change,虽然行的位置变化了,但是我编辑窗口里,仍然是刚才的行,很正常没问题
,
此主题相关图片如下:2.jpg
但是~!
如果我是使用新建,新建按钮代码如下:
Dim r As Row = Tables("YBCustomerInfo").AddNew
Forms("YBCustomerEdit").show
新建的过程中,修改商品名称,触发副本表的sort重新排序,也出发current change,行的位置变化了,但同时我编辑窗口里的行也发生变化了!不是我正在新建的行了
此主题相关图片如下:3.jpg
这搞到我没办法新建啊,于是我把新建按钮的代码改为:
Dim t As Table =Tables("YBCustomerSelect_TableYBCustomerInfo")
Dim sort As String = t.Sort
t.Sort=""
Dim r As Row = Tables("YBCustomerInfo").AddNew
Forms("YBCustomerEdit").show
t.Sort= sort
这样新建就没问题了。
最终我想问的问题:
为什么这个sort排序,在新建的时候会有影响,而在编辑的时候又不会有影响?同样是对整个表的行进行了重新的排序,都触发过current change