行的筛选与定位
Foxtable筛选前后定位行的默认方式为尽量保持物理位置不变,例如:
假定筛选前,用户选择的是第10行,那么筛选后,Foxtable会自动定位到第10行,如果符合条件的行不足10行,那么就会定位到最后1行。
假定撤销筛选前,用户选择的是第10行,那么撤销筛选后,Foxtable同样会自动定位到第10行。
当然此第10行,并非彼第10行。
有的用户并不喜欢默认处理方式,而是希望:
1、筛选后,如果之前选择的行符合筛选条件,那么筛选后依然选择此行。
2、撤销筛选后,自定定位到之前选择的行。
以订单表为例,要实现此功能非常简单:
1、BeforeFilter事件代码:
If
Tables("订单").Position
>= 0 Then
Vars("ddr")
= Tables("订单").current.DataRow
End
If
2、AfterFilter事件代码:
If
Vars("ddr")
IsNot Nothing
Then
Tables("订单").Position
= Tables("订单").FindRow(Vars("ddr"))
End
If
参考:
Var变量 BeforeFilter AfterFilter