以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求筛选ShowCheckBox为TRUE的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59291)

--  作者:漂亮美眉vszh
--  发布时间:2014/11/1 13:25:00
--  求筛选ShowCheckBox为TRUE的代码

筛选表中,ShowCheckBox=true的行有哪些,如何写代码?我写的:

Dim filter
If filter = Tables("添加入库购品代码_物料代码表").ShowCheckBox = True Then
Tables("添加入库购品代码_物料代码表").Filter = filter
End If

可代码报错~~


--  作者:程兴刚
--  发布时间:2014/11/1 13:55:00
--  
 

Tables("添加入库购品代码_物料代码表").Filter = ""

Syscmd.Filter.LockStatusFilter(True)


--  作者:程兴刚
--  发布时间:2014/11/1 13:56:00
--  

也许直接这样就可以,自己测试一下:

Syscmd.Filter.LockStatusFilter(True)


--  作者:kylin
--  发布时间:2014/11/1 14:02:00
--  
dim s as string  

For Each r As Row In Tables("添加入库购品代码_物料代码表").GetCheckedRows
   if s > ""

     s = "," + CStr(r("_Identify"))

   else

     s = "_Identify in " + "(" + CStr(r("_Identify"))

   end if  
Next

if s > ""

   s =  s + ")"

   Tables("添加入库购品代码_物料代码表").Filter = s

end if

 

没有很多时间去优化以上,但是应该可以实现你的要求


--  作者:czy
--  发布时间:2014/11/1 14:09:00
--  

好像没有直接的方法,遍历下吧

 

Dim filter As String
For Each r As Row In Tables("添加入库购品代码_物料代码表").GetCheckedRows
    filter = filter & "," & r("_Identify")
Next
Tables("添加入库购品代码_物料代码表").Filter = "[_Identify] in (" & filter.Trim(",") & ")"


--  作者:程兴刚
--  发布时间:2014/11/1 14:18:00
--  

晕,我给搞错了,把筛选锁定行的系统代码用到这里了!


--  作者:漂亮美眉vszh
--  发布时间:2014/11/1 14:45:00
--  
以下是引用czy在2014-11-1 14:09:00的发言:

好像没有直接的方法,遍历下吧

 

Dim filter As String
For Each r As Row In Tables("添加入库购品代码_物料代码表").GetCheckedRows
    filter = filter & "," & r("_Identify")
Next
Tables("添加入库购品代码_物料代码表").Filter = "[_Identify] in (" & filter.Trim(",") & ")"

经过测试,这句对的,可是他会把我之前勾好的复选框取消~~,有没啥办法不取消我之前勾好的,双能显示我勾了哪些?


--  作者:czy
--  发布时间:2014/11/1 15:27:00
--  
或许这是个bug。
--  作者:lsy
--  发布时间:2014/11/1 15:55:00
--  
Dim t As Table = e.Form.Controls("Table1").Table
Dim flt As String
For Each r As Row In t.GetCheckedRows
    flt + = r("_Identify") & ","
Next
t.Filter = "_Identify In (" & flt.Trim(",") & ")"
For Each r As Row In t.Rows
    r.Checked = True
Next