以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]窗口中的table怎样筛选特定范围的行? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120613) |
-- 作者:倪远歌1 -- 发布时间:2018/6/20 15:28:00 -- [求助]窗口中的table怎样筛选特定范围的行? 窗口中的table绑定到“货位表”。 当打开窗口时,选中“产品表”某一行时,窗口中的table根据“产品表”中的“产品编码”,显示“货位表”对应“产品编码”行的前5行和后5行数据, |
-- 作者:有点甜 -- 发布时间:2018/6/20 16:23:00 -- Dim drs = DataTables("货位表").Select("产品编码=\'123\'") |
-- 作者:倪远歌1 -- 发布时间:2018/6/21 15:55:00 -- 多谢有点甜老师,问题已解决,代码如下 产品表,currentchanged事件: If Forms("关联产品").Opened() Then Dim t As Table = Tables("关联产品_Table1") Dim dr As DataRow Dim id As Integer With Tables("产品表") If Tables("产品表").Current Is Nothing Then t.Filter = "False" Else dr = DataTables("货位表").Find("产品编码 = " & "\'" & e.Table.Current("产品编码") & "\'") id = dr("_Identify") t.Filter = "_Identify >= \'" & id-5 & "\' And _Identify <= \'" & id+5 & "\'" Tables("关联产品_Table1").Position = 5 End If End With End If 但是新的问题出现了: 我想在窗口“关联产品”中的table1反定位产品表中的产品时,产品表的postion不断的循环-1,直至卡死, dr=nothing时没问题,dr不等于nothing时就会出现上述问题。 窗口“关联产品”的“table1”的currentchanged事件,代码如下: If e.Table.Current Is Nothing Then
Return End If Dim wz As Integer Dim dr As DataRow dr = DataTables("产品表").Find("[产品编码] =
\'" & e.Table.Current("产品编码") &
"\'") If dr IsNot Nothing Then
wz = Tables("产品表").FindRow(dr)
If wz >= 0 Then
Tables("产品表").Position = wz
End If End If 请问这是为啥 |
-- 作者:有点甜 -- 发布时间:2018/6/21 16:05:00 -- 判断表名
msgbox(e.table.name) If Forms("关联产品").Opened() andAlso e.table.name = "产品表" Then |
-- 作者:倪远歌1 -- 发布时间:2018/6/21 16:22:00 -- 回老师,试了,产品表的position还是一样不停的-1,如果正确的行在原行的上方不远处,才会停下。如果相距甚远,则会卡死。 应该是窗口中的表“table1”的代码有问题,我也不明白
|
-- 作者:有点甜 -- 发布时间:2018/6/21 16:48:00 -- 产品表,currentchanged事件:
If Forms("关联产品").Opened() Then
Dim t As Table = Tables("关联产品_Table1")
Dim dr As DataRow
Dim id As Integer
With Tables("产品表")
If Tables("产品表").Current Is Nothing Then
t.Filter = "False"
Else
dr = DataTables("货位表").Find("产品编码 = " & "\'" & e.Table.Current("产品编码") & "\'")
id = dr("_Identify")
systemready = false
t.Filter = "_Identify >= \'" & id-5 & "\' And _Identify <= \'" & id+5 & "\'"
Tables("关联产品_Table1").Position = 5
systemready = true
End If
End With
End If 窗口“关联产品”的“table1”的currentchanged事件,代码如下:
If e.Table.Current Is Nothing Then Return End If Dim wz As Integer Dim dr As DataRow dr = DataTables("产品表").Find("[产品编码] = \'" & e.Table.Current("产品编码") & "\'") If dr IsNot Nothing Then wz = Tables("产品表").FindRow(dr) If wz >= 0 Then systemready = false Tables("产品表").Position = wz systemready = true End If End If |
-- 作者:倪远歌1 -- 发布时间:2018/6/21 17:01:00 -- 解决,多谢老师!!!!!!!! |
-- 作者:倪远歌1 -- 发布时间:2018/6/22 16:05:00 -- 现在发现了一个新的问题,“产品表”新增行报错 错误所在事件“产品表”,currentchanged事件 详细错误信息:未将对象引用设置到对象的实例。 请问老师,这个原因是为啥 |
-- 作者:有点甜 -- 发布时间:2018/6/22 16:55:00 -- currentChanged事件加上代码
If e.Table.Current Is Nothing Then Return End If |