Foxtable(狐表)用户栏目专家坐堂 → [求助]求教一个比较复杂的代码设置


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

主题:[求助]求教一个比较复杂的代码设置

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


加好友 发短信
等级:婴狐 帖子:48 积分:369 威望:0 精华:0 注册:2011/12/24 23:53:00
[求助]求教一个比较复杂的代码设置  发帖心情 Post By:2012/1/2 13:57:00 [显示全部帖子]

例:

 

在“表A”中某列为“日期”

 

我希望每次打开系统时,可自动计算当前日期与“表A”内“日期”列日期之差值,如差值小于30天,则自动弹出提醒。

 

经过自己的研究,查帮助文件以及狐表论坛

 

仅知本做法可行,需在项目事件AfterOpenProject中写入代码

 

无奈个人技术着实有限,只有请各位高手不吝赐教,不胜感激!


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


加好友 发短信
等级:婴狐 帖子:48 积分:369 威望:0 精华:0 注册:2011/12/24 23:53:00
  发帖心情 Post By:2012/1/2 13:58:00 [显示全部帖子]

如果不行的话,这样也行:

 

首先用一列计算出当前日期与“日期”列内日期的差值

 

当差值小于多少时,则弹出提醒窗口


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


加好友 发短信
等级:婴狐 帖子:48 积分:369 威望:0 精华:0 注册:2011/12/24 23:53:00
  发帖心情 Post By:2012/1/2 14:59:00 [显示全部帖子]

多谢楼上,想补充问一下

 

我记得以前咨询过的答复是这样的代码只能进行在输入时的判别。

 

比如我输入的日期是2012-01-02,今天的日期是2012-01-02,所以没达到提醒条件,不会提醒。

 

但是一个月后,也就是2012-02-02,系统日期也变成了2012-02-02,这时候就达到提醒条件了,请问楼上

 

您设置的代码,在这种情况下,会自动用标红来提醒吗?


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


加好友 发短信
等级:婴狐 帖子:48 积分:369 威望:0 精华:0 注册:2011/12/24 23:53:00
  发帖心情 Post By:2012/1/2 15:29:00 [显示全部帖子]

看来还是要麻烦楼上一下了,我把表格上传

 

 

在“车辆信息”的列里

 

我把楼主的代码稍加修改后复制到自己的表格里,发现无效,不知道是否“样式1”的问题,或其他

 

之前我的表述不是很清晰

 

我整理了系思路,应该是“系统日期-制定日期>335”时,标红

 

主要用途就是当保险或者年检快到期的时候标红提示,还请楼上帮忙看看,万分感激

[此贴子已经被作者于2012-1-2 16:01:01编辑过]

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


加好友 发短信
等级:婴狐 帖子:48 积分:369 威望:0 精华:0 注册:2011/12/24 23:53:00
  发帖心情 Post By:2012/1/2 15:56:00 [显示全部帖子]

If e.Col.IsDate AndAlso e.Col.Name = "最近保险日期" Then
    If e.Row.IsNull(e.Col.Name) = False
        If e.Row(e.Col.Name).AddYears(1) < Date.Today() Then
                e.Style = "保险提示"
        End If
    End If
End If


If e.Col.IsDate AndAlso e.Col.Name = "最近年检日期" Then
    If e.Row.IsNull(e.Col.Name) = False
        If e.Row(e.Col.Name).AddYears(1) < Date.Today() Then
                e.Style = "年检提示"
        End If
    End If
End If

 

 

很抱歉还是需要帮助。

 

我试了一下,标红的前提是系统日期与指定日期相差一年,是否可设置为相差11个月?毕竟提醒的话,如果到期才提醒就没意义了,如可提前一个月提醒会好很多。

 

还有   e.Style = "保险提示"

这一段代码的意思应该是如果满足上述条件,则该单元格以“保险提示”的样式体现吧?

 

请问“保险提示”这个样式在何处设置与保存?我希望能够掌握更加深入,以便举一反三,多谢!


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


加好友 发短信
等级:婴狐 帖子:48 积分:369 威望:0 精华:0 注册:2011/12/24 23:53:00
  发帖心情 Post By:2012/1/2 18:45:00 [显示全部帖子]

多谢楼上,自定义样式我找到了,也会弄了

 

不过关于函数方面还是希望能请教一下

 

我希望我在某列输入一个时间,当系统时间与输入的时间差距超过11个月时,输入的日期字体标红提醒,如能弹出窗口提醒更佳

 

CZY版主帮我写了2个代码,第二个我是理解了,不过计算的是年差距,与我的使用需求相差关键的一个月

 

第一个代码我也不是很理解,在此都贴上,希望有高手指点一二

 

-----------------------------------------------------------

 

If e.Col.IsDate AndAlso e.Col.Name = "日期" Then
    If e.Row.IsNull(e.Col.Name) = False
        If e.Row("是否处理") = False Then
            If e.Row(e.Col.Name).AddDays(30) < Date.Today() Then
                e.Style = "样式1"
            End If
        End If
    End If
End If

 

--------------------------------------------------

 

 

If e.Col.IsDate AndAlso e.Col.Name = "最近保险日期" Then
    If e.Row.IsNull(e.Col.Name) = False
        If e.Row(e.Col.Name).AddYears(1) < Date.Today() Then
                e.Style = "保险提示"
        End If
    End If
End If


If e.Col.IsDate AndAlso e.Col.Name = "最近年检日期" Then
    If e.Row.IsNull(e.Col.Name) = False
        If e.Row(e.Col.Name).AddYears(1) < Date.Today() Then
                e.Style = "年检提示"
        End If
    End If
End If

 

-------------------------------------------------

 

望高手不吝赐教,万分感激!


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


加好友 发短信
等级:婴狐 帖子:48 积分:369 威望:0 精华:0 注册:2011/12/24 23:53:00
  发帖心情 Post By:2012/1/2 18:58:00 [显示全部帖子]

哈哈 自己研究会了~~~~

 回到顶部