以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]高亮显示重复数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70946)

--  作者:wyz20130512
--  发布时间:2015/7/1 23:57:00
--  [求助]高亮显示重复数据

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



如上图所示,是一个由考勤机导出的Excel文件,合并到项目中的,有的员工因错误操作一天之中会签2次以上,如何将这些一日签2次以上数据高亮显示,请老师指点。
[此贴子已经被作者于2015/7/2 0:03:38编辑过]

--  作者:sloyy
--  发布时间:2015/7/2 0:04:00
--  
任意列数重复值判断通用代码 -

--  作者:wyz20130512
--  发布时间:2015/7/2 0:17:00
--  回复:(sloyy)任意列数重复值判断通用代码 -http://...
单位要求每个员工一天只签2次到,上午1次,下午1次,如何高亮显示一天签2次以上的数据行。
--  作者:monvzhilei
--  发布时间:2015/7/2 8:08:00
--  
感觉要用日期函数,取出年月日。 然后 多列重复值判断一下。
--  作者:大红袍
--  发布时间:2015/7/2 9:09:00
--  

drawCell事件

 

e.Table.DataTable.AddUserStyle("重复", Color.Red, Color.Black)
If e.Col.Name = "日期时间" Then
    Dim fdr As DataRow = e.Table.DataTable.Find("日期时间 >= #" & e.Row("日期时间").Date & "# and 日期时间 < #" & e.Row("日期时间").Date.AddDays(1) & "# and _Identify <> " & e.Row("_Identify"))
    If fdr IsNot Nothing Then
        e.style = "重复"
    End If
End If

 

http://www.foxtable.com/help/topics/0656.htm

 


--  作者:wyz20130512
--  发布时间:2015/7/2 9:48:00
--  回复:(大红袍)drawCell事件 e.Table.Data...

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

“大红袍”老师,执行后的效果如上图,所有的行都标记了,我想要的是:只标记不同员工某一天签2次以上的行(如上图我用蓝框标记的数据)。

--  作者:大红袍
--  发布时间:2015/7/2 9:52:00
--  
e.Table.DataTable.AddUserStyle("重复", Color.Red, Color.Black)
If e.Col.Name = "日期时间" Then
    Dim fdr As DataRow = e.Table.DataTable.Find("姓名 = \'" & e.Row("姓名") & "\' And 日期时间 >= #" & e.Row("日期时间").Date & "# and 日期时间 < #" & e.Row("日期时间").Date.AddDays(1) & "# and _Identify <> " & e.Row("_Identify"))
    If fdr IsNot Nothing Then
        e.style = "重复"
    End If
End If

--  作者:wyz20130512
--  发布时间:2015/7/2 10:21:00
--  回复:(大红袍)e.Table.DataTable.AddUserStyle("重...
请“大红袍”老师指点,给单位的员工发工资用,谢谢!

没有达到我想要的效果,我只要标记不同员工同一天中重复2次(不含2次)以上的数据行。
即找出一天之中签了3次或3次以上的数据行并标记之。
[此贴子已经被作者于2015/7/2 10:41:52编辑过]

--  作者:大红袍
--  发布时间:2015/7/2 10:41: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

[此贴子已经被作者于2015/7/2 11:00:51编辑过]

--  作者:wyz20130512
--  发布时间:2015/7/2 10:48:00
--  回复:(大红袍)?e.Table.DataTable.AddUserSty...
请“大红袍”老师再指点,给单位的员工发工资用,谢谢!

没有达到我想要的效果,即找出一天之中签了3次或3次以上的数据行并标记之。


此主题相关图片如下:qq截图20150702093737.png
按此在新窗口浏览图片


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