以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教逛逛大师  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62503)

--  作者:hbhb
--  发布时间:2015/1/3 12:54:00
--  请教逛逛大师
大师:您好!
见实例,请问如何定位到数值最大的行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.zip



--  作者:逛逛
--  发布时间:2015/1/3 13:29:00
--  

Compute遍历列的最大值进行对比

获取最大值的列名和值

定位行


--  作者:lsy
--  发布时间:2015/1/3 15:17:00
--  
Click

Dim max As Double
Dim s As String
For Each r As Row In e.Table.Rows
    For Each c As Col In e.Table.Cols
        If r.IsNull(c.Name) = False AndAlso Val(r(c.Name)) > max Then
            max = Val(r(c.Name))
            s = r.Index & "|" & c.Index
        End If
    Next
Next
e.Table.Select(s.Split("|")(0),s.Split("|")(1))

--  作者:逛逛
--  发布时间:2015/1/3 15:35:00
--  

感觉应该尽量避免循环嵌套

 

如果没有删选的话,直接统计列会更好一点

 

Dim dt As DataTable = DataTables("表A")
Dim dcName As String = ""
Dim iint As Double = 0
Dim i As Double = 0
For Each dc As DataCol In dt.DataCols
    If dc.IsNumeric Then
        i = dt.Compute("Max(" & dc.Name & ")")
        If i>iint Then
            dcName = dc.Name
            iint = i
        End If
    End If
Next
If dcName > "" Then
    Tables("表A").Position = Tables("表A").FindRow(dcName & "=" & iint)
End If


--  作者:hbhb
--  发布时间:2015/1/4 10:51:00
--  
谢谢!两位大师。