Foxtable(狐表)用户栏目专家坐堂 → 求教:判断某列相同编号的最大值


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

主题:求教:判断某列相同编号的最大值

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 14:15:00 [显示全部帖子]

 如此代码,测试有效,自己修改。

Dim ls As New List(Of String)
For Each dr As DataRow In DataTables("表A").DataRows
    Dim name As String = dr("第一列").substring(0, dr("第一列").indexof("-"))
    If ls.Contains(name) = False Then
        ls.Add(name)
        Dim fdr As DataRow = DataTables("表A").Find("第一列 like '" & name & "-*'", "第一列 desc")
        fdr("第二列") = "有效"
    End If
Next

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 15:07:00 [显示全部帖子]

Dim ls As New List(Of String)
Dim idx As New List(Of Integer)
For Each dr As DataRow In DataTables("表A").DataRows
    Dim name As String = dr("第一列").substring(0, dr("第一列").indexof("-"))
    If ls.Contains(name) = False Then
        ls.Add(name)
        Dim fdr As DataRow = DataTables("表A").Find("第一列 like '" & name & "-*'", "第一列 desc")

        idx.Add(fdr("_Identify"))       
        fdr("第二列") = "有效"
    Else If idx.Contains(dr("_Identify")) = False Then
        dr("第二列") = "无效"
    End If
Next
[此贴子已经被作者于2013-1-22 17:06:00编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 17:08:00 [显示全部帖子]

 恩恩确实是写错了,没有注意之后的情况。已经修改。

 还有更好的方便,不过,够用就好了。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 17:32:00 [显示全部帖子]

以下是引用dreamyuan在2013-1-22 17:28:00的发言:

改了还是有问题呢,会出现空值


呵呵,确实,这次可以了。

Dim ls As New List(Of String)
Dim idx As New List(Of Integer)
For Each dr As DataRow In DataTables("表A").DataRows
    Dim name As String = dr("第一列").substring(0, dr("第一列").indexof("-"))
    If ls.Contains(name) = False Then
        ls.Add(name)
        Dim fdr As DataRow = DataTables("表A").Find("第一列 like '" & name & "-*'", "第一列 desc")
        idx.Add(fdr("_Identify"))      
        dr("第二列") = "无效"
        fdr("第二列") = "有效"
    Else If idx.Contains(dr("_Identify")) = False Then
        dr("第二列") = "无效"
    End If
Next

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/22 17:39:00 [显示全部帖子]

 再精简一下代码就这样。

Dim prev As String = "-"
For Each dr As DataRow In DataTables("表A").Select("", "第一列 desc")
    If dr("第一列") Like prev.SubString(0, prev.IndexOf("-")) & "-*" = False Then
        dr("第二列") = "有效"
        prev = dr("第一列")
    Else
        dr("第二列") = "无效"
    End If
Next

 回到顶部