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


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

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

帅哥哟,离线,有人找我吗?
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年前,每年一次。

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

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


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

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

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


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

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



 回到顶部
帅哥哟,离线,有人找我吗?
heying325
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看错误!求助!


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


加好友 发短信
等级:小狐 帖子:396 积分:3452 威望:0 精华:0 注册:2013/9/27 9:04:00
  发帖心情 Post By:2015/1/8 11:37:00 [显示全部帖子]

我不是这个列子测试的。。我是在我项目里测试的。。应该是数据问题。。。我将数据全部放到了测试例子里面来了。。发现出现问题了。。老大帮忙看看吧。。我看不出来哪里数据问题!!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.rar


 回到顶部