Foxtable(狐表)用户栏目专家坐堂 → [求助]单元格颜色报错求助


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

主题:[求助]单元格颜色报错求助

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
[求助]单元格颜色报错求助  发帖心情 Post By:2018/11/15 14:21:00 [只看该作者]

大师,如果要通过2列日期差,自动生成单元格样式

 


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

 

新增行时,创建日期自动录入今天的日期,日期列为空,报错如下图:

 

DrawCell  代码如下:

 

If e.Col.Name = "日期" Then

    If e.Row.IsNull("日期") = False Then

        If e.Row("日期") <= e.Row("创建日期").AddDays(-8) Then

            e.Style = "样式7"

        End If

        If e.Row("创建日期").AddDays(-7)  < e.Row("日期") And  e.Row("日期") < e.Row("创建日期").AddDays(-5) Then

            e.Style = "样式6"

        End If

        If e.Row("创建日期") <= e.Row("日期").AddDays(-4) Then
            e.Style = "提前5"
        End If

        If e.Row("日期").AddDays(-3)  < e.Row("创建日期") And  e.Row("创建日期") < e.Row("日期").AddDays(-1) Then

            e.Style = "提前2"

        End If

        If e.Row("日期").AddDays(-2)  < e.Row("创建日期") And  e.Row("创建日期") < e.Row("日期").AddDays(0) Then

            e.Style = "提前1"

        End If

End If

 


 


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


 


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


加好友 发短信
等级:二尾狐 帖子:517 积分:4319 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2018/11/15 14:23:00 [只看该作者]

这个是日期值,不能这样比较的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 14:24:00 [只看该作者]

If e.Row.IsNull("日期") = False Then

 

改成

 

If e.Row.IsNull("日期") = False andalso e.row.isnull("创建日期") = false Then


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)If e.Row.IsNull("日期") = False Th...  发帖心情 Post By:2018/11/15 14:31:00 [只看该作者]

甜甜,辛苦再看看了

新增行时,创建日期自动录入今天的日期,还是报错 

 

加密狗不能升级了,高于2018-07-09版本打不开,不会意思哈

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2.foxdb

[此贴子已经被作者于2018/11/15 15:10:42编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 15:14:00 [只看该作者]

If e.Col.Name = "日期" Then
    'If e.Row.IsNull("日期") = False Then  '这个是日期值,不能这样比较的
    If e.Row.IsNull("日期") = False AndAlso e.Row.isnull("创建日期") = False Then
        If e.Row("日期") <= e.Row("创建日期").AddDays(-8) Then
            e.Style = "样式7"
        End If
        If e.Row("创建日期").AddDays(-7)  < e.Row("日期") And  e.Row("日期") < e.Row("创建日期").AddDays(-5) Then
            e.Style = "样式6"
        End If
        If e.Row("创建日期").AddDays(-6)  < e.Row("日期") And  e.Row("日期") < e.Row("创建日期").AddDays(-4) Then
            e.Style = "样式5"
        End If
       
        If e.Row("创建日期").AddDays(-5)  < e.Row("日期") And  e.Row("日期") < e.Row("创建日期").AddDays(-3) Then
            e.Style = "样式4"
        End If
        If e.Row("创建日期").AddDays(-4)  < e.Row("日期") And  e.Row("日期") < e.Row("创建日期").AddDays(-2) Then
            e.Style = "样式3"
        End If
        If e.Row("创建日期").AddDays(-3)  < e.Row("日期") And  e.Row("日期") < e.Row("创建日期").AddDays(-1) Then
            e.Style = "样式2"
        End If
        If e.Row("创建日期").AddDays(-2)  < e.Row("日期") And  e.Row("日期") < e.Row("创建日期").AddDays(0) Then
            e.Style = "样式1"
        End If
       
        If e.Row("创建日期") <= e.Row("日期").AddDays(-4) Then
            e.Style = "提前5"
        End If
        If e.Row("日期").AddDays(-5)  < e.Row("创建日期") And  e.Row("创建日期") < e.Row("日期").AddDays(-3) Then
            e.Style = "提前4"
        End If
        If e.Row("日期").AddDays(-4)  < e.Row("创建日期") And  e.Row("创建日期") < e.Row("日期").AddDays(-2) Then
            e.Style = "提前3"
        End If
        If e.Row("日期").AddDays(-3)  < e.Row("创建日期") And  e.Row("创建日期") < e.Row("日期").AddDays(-1) Then
            e.Style = "提前2"
        End If
        If e.Row("日期").AddDays(-2)  < e.Row("创建日期") And  e.Row("创建日期") < e.Row("日期").AddDays(0) Then
            e.Style = "提前1"
        End If
    End If
End If

 


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)If e.Col.Name = "日期" Then &...  发帖心情 Post By:2018/12/21 11:08:00 [只看该作者]

 上面代码报错
未找到类型 string 的公共成员  adddays

换一种思路,实现。下面代码怎么修改呢?

Dim r As Row = Tables("工作日志").Current
If r IsNot Nothing Then
    If e.Col.Name = "日期" Then
        If e.Row.IsNull("日期") = False AndAlso e.Row.isnull("创建日期") = False Then
            Dim dt As Date = r("创建日期")
            Dim dtf As Date = r("日期")
            Dim n As Integer = (dtf - dt).TotalDays
            If n = -3  Then '如果已经过期
                e.Style = "样式2"
            ElseIf n = -2  Then '如果已经过期
                e.Style = "样式1"
            ElseIf n = -1  Then '如果已经过期
                e.Style = "提前1"
            ElseIf n = 0 Then '如果已经过期
                e.Style =  "提前2"
            ElseIf n = 1 Then '如果已经过期
                e.Style = "提前3"
            ElseIf n = 2 Then '如果已经过期
                e.Style = "提前4"
            ElseIf n = 3 Then '如果已经过期
                e.Style = "提前5"
            End If
        End If
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/21 11:13:00 [只看该作者]

Dim r As Row = e.Row
If r IsNot Nothing Then
    If e.Col.Name = "日期" Then
        If e.Row.IsNull("日期") = False AndAlso e.Row.isnull("创建日期") = False Then
            Dim dt As Date = r("创建日期")
            Dim dtf As Date = r("日期")
            Dim n As Integer = (dtf - dt).TotalDays
            If n = -3  Then '如果已经过期
                e.Style = "样式2"
            ElseIf n = -2  Then '如果已经过期
                e.Style = "样式1"
            ElseIf n = -1  Then '如果已经过期
                e.Style = "提前1"
            ElseIf n = 0 Then '如果已经过期
                e.Style =  "提前2"
            ElseIf n = 1 Then '如果已经过期
                e.Style = "提前3"
            ElseIf n = 2 Then '如果已经过期
                e.Style = "提前4"
            ElseIf n = 3 Then '如果已经过期
                e.Style = "提前5"
            End If
        End If
    End If
End If

 回到顶部