行的筛选与定位

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


本页地址:http://www.foxtable.com/webhelp/topics/3231.htm