Foxtable(狐表)用户栏目专家坐堂 → [求助]高亮显示重复数据


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

主题:[求助]高亮显示重复数据

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/2 10:58:00 [只看该作者]

 

[此贴子已经被作者于2015/7/2 10:59:12编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/2 11:01:00 [只看该作者]

加上姓名判断

 

e.Table.DataTable.AddUserStyle("重复", Color.Red, Color.Black)
If e.Col.Name = "日期时间" Then
    Dim count As Integer = e.Table.DataTable.Compute("count(姓名)","姓名 = '" & e.Row("姓名") & "' and 日期时间 >= #" & e.Row("日期时间").Date & "# and 日期时间 < #" & e.Row("日期时间").Date.AddDays(1) & "#")
    If count > 2 Then
        e.style = "重复"
    End If
End If


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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(大红袍)加上姓名判断 e.Table.Data...  发帖心情 Post By:2015/7/2 11:08:00 [只看该作者]

万分感谢“大红袍”老师的指点,问题解决了!顺便问一下,您是做红茶生意的吗?若是我一定会购买您的产品,
您这种乐于助人的精神真是让人由衷的钦佩!再次感谢!

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(大红袍)加上姓名判断?e.Table.Data...  发帖心情 Post By:2015/7/2 12:59:00 [只看该作者]

再请教"大红袍"老师,按照您的思路,我将Find方法换为Select方法,却没达到想要的结果,不知何故?代码如下:


e.Table.DataTable.AddUserStyle("重复", Color.Red, Color.White)
If e.Col.Name = "日期时间" Then
    Dim drs As List(Of DataRow) = e.Table.DataTable.Select("[姓名] = '" & e.Row("姓名") & "' And [日期时间] >= #" & e.Row("日期时间").Date & "# and [日期时间] < #" & e.Row("日期时间").Date.AddDays(1) & "# and [_Identify] <> " & e.Row("_Identify"))
    If drs.Count > 2 Then
        e.Style = "重复"
    End If
End If
[此贴子已经被作者于2015/7/2 13:03:20编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(大红袍)加上姓名判断?e.Table.Data...  发帖心情 Post By:2015/7/2 13:07:00 [只看该作者]

问题找到了,用“号替换掉标记部分即可。

e.Table.DataTable.AddUserStyle("重复", Color.Red, Color.White)
If e.Col.Name = "日期时间" Then
    Dim drs As List(Of DataRow) = e.Table.DataTable.Select("[姓名] = '" & e.Row("姓名") & "' And [日期时间] >= #" & e.Row("日期时间").Date & "# and [日期时间] < #" & e.Row("日期时间").Date.AddDays(1) & "# and [_Identify] <> " & e.Row("_Identify"))
    If drs.Count > 2 Then
        e.Style = "重复"
    End If
End If
[此贴子已经被作者于2015/7/2 13:08:59编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(大红袍)加上姓名判断 e.Table.Data...  发帖心情 Post By:2015/7/2 22:08:00 [只看该作者]

"大红袍"老师,再次请教:如何筛选出哪些标记出来的数据行?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/2 22:39:00 [只看该作者]

mark 筛选重复

 

Dim idx As String = ""
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
For Each dr As DataRow In DataTables("表A").Select("日期时间 is not null", "姓名,日期时间")
    output.show(dr("姓名") & dr("日期时间"))
    If pdr IsNot Nothing AndAlso (pdr("日期时间").Date <> dr("日期时间").Date OrElse pdr("姓名") <> dr("姓名")) Then
        output.show(count)
        If count > 2 Then
            idx &= idx_temp
        End If
        count = 1
        idx_temp = ""
    Else
        count += 1
    End If
    idx_temp &= dr("_Identify") & ","
    pdr = dr
Next

If count > 2 Then
    idx &= idx_temp
End If

Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"


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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(大红袍)mark 筛选重复?Dim idx As ...  发帖心情 Post By:2015/7/3 0:13:00 [只看该作者]

太厉害了,达到了想要的效果了。您一定是计算机系软件设计专业毕业的。万分感谢!

能加您的QQ吗?2450314695
[此贴子已经被作者于2015/7/3 0:14:46编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(大红袍)mark 筛选重复 Dim idx As ...  发帖心情 Post By:2015/7/7 23:31:00 [只看该作者]

老师您好!又麻烦您了!

这段筛选代码,能达到效果,但一直没看明白其中的原理,能否在关键的位置给出注释.

另:若没有满足条件的数据会报错.


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150707232432.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/8 0:08:00 [只看该作者]

If idx > "" Then

    Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"

Else

    Tables("表A").filter = "1=2"

End If


 回到顶部
总数 24 上一页 1 2 3 下一页