Foxtable(狐表)用户栏目专家坐堂 → 关于动态筛选的求助。(附件已加)


  共有11121人关注过本帖树形打印复制链接

主题:关于动态筛选的求助。(附件已加)

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/13 16:22:00 [显示全部帖子]

修改你的代码,应该改为:

 

Dim t As Table = CurrentTable
Dim dt1 As Date = e.Form.Controls("DateTimePicker1").Value
Dim dt2 As Date = e.Form.Controls("DateTimePicker2").Value
If e.Form.Controls("DateTimePicker1").Value Is Nothing OrElse e.Form.Controls("DateTimePicker2").Value Is Nothing Then
    MessageBox.Show("请输入开始日期和结束日期")
    Return
End If
If dt1 > dt2 Then
    MessageBox.Show("开始日期不能晚于结束日期")
    Return
End If
Dim filter As String = "日期" & " >= #" & dt1 & "# And " & "日期" & " <= #" & dt2 & "#"
t.Filter = filter

 

你原来根据选定列进行筛选,筛选后光标回到第一列,第一列又不是日期列,自然就出错了。

[此贴子已经被作者于2012-3-13 16:23:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/13 17:07:00 [显示全部帖子]

因为你的AfterFilter事件有下面红色的0:
 
e.Table.sort = "日期列,字符列"
Dim n As Integer = e.Table.Rows.Count
e.Table.Select(n-1,0)
 
也就是筛选后,每次都回到最后一行的第一列了。

 

你应该:

 

e.Table.sort = "日期列,字符列"
e.Table.Select(e.Table.Rows.Count-1,e.Table.ColSel)


 回到顶部