Foxtable(狐表)用户栏目专家坐堂 → 对比两个表,并标记出不同


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

主题:对比两个表,并标记出不同

美女呀,离线,留言给我吧!
zhangning
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
对比两个表,并标记出不同  发帖心情 Post By:2016/8/9 17:23:00 [只看该作者]

有两个表,一个是“出勤相关”,

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

一个是“考勤机”

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

想让两个表进行对比,对比列是:

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

事先设置好样式,名称为“差异”

想达到的效果是,对同一人,同一日期,的要对比的列进行对比,有差异的,执行“差异”样式,进行标记,

请问老师,如何才能达到如何效果?代码怎么写?

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/8/9 17:27:00 [只看该作者]

差异直接在两个表中都需要显现
[此贴子已经被作者于2016/8/9 17:37:15编辑过]

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


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

 实例上传上来。

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/8/10 8:06:00 [只看该作者]

管理者   密码:qdrA001
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:人事管理 - 副本.zip



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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/10 9:02:00 [只看该作者]

出勤相关drawcell

If e.Row.IsNull("日期") = False Then
    
    Dim d As Date = e.Row("日期")
    
    If d.DayOfWeek = 0 OrElse d.DayOfWeek = 6 Then
        e.style = "周六日"
    End If
    If e.Row.IsNull("当事人") = False Then
        Dim dr As DataRow = DataTables("考勤机").Find(CExp("姓名='{0}' and 日期 = #{1}#",e.Row("当事人"),e.Row("日期") ))
        If dr IsNot Nothing AndAlso dr("一倍半加班H") <> e.Row("一倍半加班H") Then
            e.Style = "差异"
        End If
    End If
End If

考勤机drawcell

If e.Row.IsNull("日期") = False Then
    
    Dim d As Date = e.Row("日期")
    
    If d.DayOfWeek = 0 OrElse d.DayOfWeek = 6 Then
        e.style = "周六日"
    End If
    If e.Row.IsNull("姓名") = False Then
        Dim dr As DataRow = DataTables("出勤相关").Find(CExp("当事人='{0}' and 日期 = #{1}#",e.Row("姓名"),e.Row("日期") ))
        If dr IsNot Nothing AndAlso dr("一倍半加班H") <> e.Row("一倍半加班H") Then
            e.Style = "差异"
        End If
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/8/10 9:49:00 [只看该作者]

老师,操作后没有反应,不知问题出在哪里了

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


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


 回到顶部
美女呀,离线,留言给我吧!
zhangning
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/8/10 10:26:00 [只看该作者]

老师,已经提前设置好了“周六日”和“差异”样式了。

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


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

Dim ary() As String = {"一倍半加班H", "二倍加班H", "三倍加班H"}
If array.Indexof(ary, e.Col.name) >= 0 Then
    If e.Row.IsNull("日期") = False AndAlso e.Row.IsNull("当事人") = False Then
        Dim dr As DataRow = DataTables("考勤机").Find(CExp("姓名='{0}' and 日期 = #{1}#",e.Row("当事人"),e.Row("日期") ))
        If dr IsNot Nothing Then           
            If dr(e.Col.name) <> e.Row(e.Col.name) Then
                e.Style = "差异"
            End If
        End If
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/8/13 12:01:00 [只看该作者]

老师,这个很好用,但只限于 两个表都 某天某人都有的时才起作用,
如何在如果一个表中没有,一个表中有,在有的那个表中将整行都标注样式呢?

 回到顶部
总数 17 1 2 下一页