以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  怎样用Find查找到第2个、第3个符合条件的行?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=672)

--  作者:cpayinyuan
--  发布时间:2008/9/23 16:00:00
--  怎样用Find查找到第2个、第3个符合条件的行?
如题。在易表中,可以用FindText直接查到第X个符合条件的行,并直接返回第X个符合条件的行的列值,在狐表中这样的查询如何实现?
[此贴子已经被作者于2008-9-23 16:02:01编辑过]

--  作者:狐狸爸爸
--  发布时间:2008/9/23 16:18:00
--  
呵呵,别用find,用select,一次全部找出来了,你要第几个都行。


Select

以集合的形式,返回所有符合指定条件的行。

语法:

Select(Filter)
Select(Filter,Sort)

Filter: 条件表达式
Sort: 可选参数,指定排序方式

例如希望列出1999年1月4日订购PD01产品的客户:

Dim dt As DataTable = DataTables("订单")
Dim
drs As List(Of DataRow) \'定义一个DataRow集合。
drs = dt.
Select("[产品] = \'PD01\' And [日期]= #1/4/1999#")
If
drs.Count = 0 Then
    Output.Show(
"1999年1月4日无人订购产品PD01。")
Else

    Output.Show(
"1999年1月4日订购产品PD01的客户名单:")
   
For Each dr As Datarow In drs
        Output.Show(dr(
"客户") & ":" & dr("数量"))
   
Next
End
If

如果你希望按订购数量的多少来排序客户名单,只需将下面一行代码:

drs = dt.Select("[产品] = \'PD01\' And [日期]= #1/4/1999#")

修改为:

drs = dt.Select("[产品] = \'PD01\' And [日期]= #1/4/1999#","数量 DESC")

我们利用可选参数Sort,指定按数量列降序排列,也就是按数量从多到少排列。


--  作者:cpayinyuan
--  发布时间:2008/9/23 16:20:00
--  

明白了,谢谢!


--  作者:唐尸三摆手
--  发布时间:2008/9/23 17:28:00
--  
请教本段代码放在哪个事件中还是做成按钮啊
--  作者:狐狸爸爸
--  发布时间:2008/9/23 17:53:00
--  
以下是引用唐尸三摆手在2008-9-23 17:28:00的发言:
请教本段代码放在哪个事件中还是做成按钮啊


用在你需要使用的地方,那里都行。