Foxtable(狐表)用户栏目专家坐堂 → 被这条规则搞的头大了,求方法!


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

主题:被这条规则搞的头大了,求方法!

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


加好友 发短信
等级:小狐 帖子:396 积分:3452 威望:0 精华:0 注册:2013/9/27 9:04:00
被这条规则搞的头大了,求方法!  发帖心情 Post By:2015/1/7 9:37:00 [只看该作者]

汽车售后服务中,有一项是验车提醒服务。。根据上牌日期,提前对客户进行验车提醒。。。验车提醒规则如下:
验车提醒:上牌日期在2012年9月1日之后的,第一次验车是上牌日期+2年,第二次验车是上牌日期+4年,从第6年开始,每年一次。上牌日期在2010年9月1日至2012年8月31日的,上牌日期+2年一次,从2016年开始每年一次。上牌日期在2010年8月31日之前的,2025年前,每年一次。

求助,我有一个表,记录了上牌日期。。怎么在它即将到来的验车日期,进行提醒?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/7 9:48:00 [只看该作者]

无非是一些IF判断
dim d1 as date = "2012-09-01"
dim d2 as date = "2010-09-01"
if 上牌日期>= d1 then

else if 上牌日期>d2 andalso 上牌日期 <d1 then

else if 上牌日期<d2 then
 
end if

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


加好友 发短信
等级:小狐 帖子:396 积分:3452 威望:0 精华:0 注册:2013/9/27 9:04:00
  发帖心情 Post By:2015/1/7 9:54:00 [只看该作者]

不是对某一个上牌日期的判断啊。。。是对整个表。。表里面有上万的数据。。 其中有上牌日期 这一列。。。我想知道,今天应该有多少人需要进行提醒!

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/7 9:58:00 [只看该作者]

你举的例子,我就给你写的例子,不是让你盲目套用,而是让你参考这个思路中,把日套成变量即可使用图片点击可在新窗口打开查看


不会的话就上例子吧

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


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

 参考例子,就是循环每一行,判断啊

 

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

 

 


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


加好友 发短信
等级:小狐 帖子:396 积分:3452 威望:0 精华:0 注册:2013/9/27 9:04:00
  发帖心情 Post By:2015/1/7 10:35:00 [只看该作者]

大大们!我做了一个例子。。例子里面的数据很少,实际上数据七八万左右。。。想实现的就是,每日打开项目就会告诉我今天需要提醒的客户是多少,并提供这些客户的列表。。当我对他们进行提醒后,就会在提醒列表里消失。。。等到下次该提醒的时候又会跳出来。。 (可以帮我增加下列,谢谢!!)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar



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


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

Dim d1 As Date = "2012-9-1"
Dim d2 As Date = "2010-9-1"
Dim n As Integer = 30 '未来30天
Dim idxs As String = ""
For Each dr As DataRow In DataTables("表A").Select("上牌日期 is not null")
    Dim dt As Date = dr("上牌日期")
    Dim dt1 As New Date(Date.Today.Year,dt.Month,dt.Day)
    Dim dt2 As  New Date(Date.Today.AddDays(n).Year,dt.Month,dt.Day)
    If (dt1 >= Date.Today AndAlso dt1 < Date.Today.AddDays(n)) OrElse (dt2 >= Date.Today AndAlso dt2 < Date.Today.AddDays(n)) Then
        If dt >= d1 Then
            Dim y As Integer = dt.Year - d1.Year
            If y = 2 OrElse y = 4 OrElse y >= 6 Then
                idxs &= dr("_Identify") & ","
            End If
        Else If dt > d2 AndAlso dt < d1 Then
            Dim y As Integer = dt.Year - d1.Year
            If y > 0 AndAlso y Mod 2 = 0 OrElse dt2.Year >= 2016 Then
                idxs &= dr("_Identify") & ","
            End If
        Else If dt < d2 Then
            Dim y As Integer = dt.Year - d1.Year
            If dt2.Year >= 2016 Then
                idxs &= dr("_Identify") & ","
            End If
        End If
    End If
Next
Tables("表A").Filter = "_Identify in (" & idxs.trim(",") & ")"

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


加好友 发短信
等级:小狐 帖子:396 积分:3452 威望:0 精华:0 注册:2013/9/27 9:04:00
  发帖心情 Post By:2015/1/8 11:09:00 [只看该作者]

以下是引用有点甜在2015-1-7 10:59:00的发言:
Dim d1 As Date = "2012-9-1"
Dim d2 As Date = "2010-9-1"
Dim n As Integer = 30 '未来30天
Dim idxs As String = ""
For Each dr As DataRow In DataTables("表A").Select("上牌日期 is not null")
    Dim dt As Date = dr("上牌日期")
    Dim dt1 As New Date(Date.Today.Year,dt.Month,dt.Day)
    Dim dt2 As  New Date(Date.Today.AddDays(n).Year,dt.Month,dt.Day)
    If (dt1 >= Date.Today AndAlso dt1 < Date.Today.AddDays(n)) OrElse (dt2 >= Date.Today AndAlso dt2 < Date.Today.AddDays(n)) Then
        If dt >= d1 Then
            Dim y As Integer = dt.Year - d1.Year
            If y = 2 OrElse y = 4 OrElse y >= 6 Then
                idxs &= dr("_Identify") & ","
            End If
        Else If dt > d2 AndAlso dt < d1 Then
            Dim y As Integer = dt.Year - d1.Year
            If y > 0 AndAlso y Mod 2 = 0 OrElse dt2.Year >= 2016 Then
                idxs &= dr("_Identify") & ","
            End If
        Else If dt < d2 Then
            Dim y As Integer = dt.Year - d1.Year
            If dt2.Year >= 2016 Then
                idxs &= dr("_Identify") & ","
            End If
        End If
    End If
Next
Tables("表A").Filter = "_Identify in (" & idxs.trim(",") & ")"
老大。。这段代码跳出
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150108110901.jpg
图片点击可在新窗口打开查看错误!求助!


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


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

 我测试例子没问题,你是就着例子测试的么


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


加好友 发短信
等级:四尾狐 帖子:998 积分:6656 威望:0 精华:0 注册:2014/10/20 11:06:00
  发帖心情 Post By:2015/1/8 11:11:00 [只看该作者]

dr("上牌日期") 是什么样的类型?
时间类型不一样,改成datetime
[此贴子已经被作者于2015-1-8 11:12:16编辑过]

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