Foxtable(狐表)用户栏目专家坐堂 → 关于生日提醒的问题


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

主题:关于生日提醒的问题

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


加好友 发短信
等级:婴狐 帖子:50 积分:610 威望:0 精华:0 注册:2009/12/26 23:14:00
关于生日提醒的问题  发帖心情 Post By:2012/9/26 15:39:00 [只看该作者]

参照帮助中的生日提醒部分写了如下代码,目的是由用户自已设定生日提醒的天数(存在a中),如设为180天(a=180),系统可查找出所有在未来30内过生日的用户,但根据帮助中的代码做完后发现的问题是:凡是跨年过生日的人是无法查找出的,例如,有个客户是1月1日过生日,这段代码只能找到生日是12月31日内的,1月1日这个人是找不到的,这段代码如下:问题应该是出在标红色的部分,是它限定了只能查找今年的,请问如何修改一下能够解决这个问题,没不出太好的解决办法

 

 

Dim a As Integer=RibbonTabs("会员信息管理").Groups("生日提醒").Items("数值输入框1").value

Dim nms As String
For Each dr As DataRow In DataTables("会员档案").DataRows
    Dim dt As Date = dr("客户生日")
    dt = New Date(Date.Today.Year,dt.Month,dt.Day)
    If dt >= Date.Today AndAlso dt < Date.Today.AddDays(a) Then
        nms = nms & ",'" & dr("车牌号") & "'"
    End If
Next
If nms > "" Then
    nms = nms.Trim(",")
    Tables("会员档案").filter = "[车牌号] In (" & nms &")"
Else
    Tables("会员档案").filter =  "[车牌号] =''"
    messagebox.show("没有此期间过生日的客户!","提示")
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/26 15:55:00 [只看该作者]

呵呵,你测试过吗?

我看这段代码, 并不存在你说的问题的哦。


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


加好友 发短信
等级:婴狐 帖子:50 积分:610 威望:0 精华:0 注册:2009/12/26 23:14:00
  发帖心情 Post By:2012/9/26 16:13:00 [只看该作者]

我在项目里运行的时候,是这个结果的,我把项目上传上,麻烦狐爸帮我看看,开发者的密码是888,在“会员信息管理-生日提醒中”输入180,当击“N日提醒”,是根据“客户档案”表中的客户生日字段判断的,但结果是只能找出数据表中到12月31日过生日的,而1月和2月过生日的都找不出来了,会是什么原因呢,谢谢狐爸

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:华通丰田会员管理系统(专业版0921).foxdb

[此贴子已经被作者于2012-9-26 16:14:13编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/26 16:21:00 [只看该作者]

 嗯嗯,确实是有点小毛病。

 需要对输入的天数进行一下判断,溢出的,年份有两种情况。


Dim a As Integer=RibbonTabs("会员信息管理").Groups("生日提醒").Items("数值输入框1").value

Dim nms As String
For Each dr As DataRow In DataTables("会员档案").DataRows
    Dim dt As Date = dr("客户生日")

    Dim dt2 As Date

    dt = New Date(Date.Today.Year, dt.Month,dt.Day)

    dt2 = New Date(Date.Today.AddDays(a).Year, dt.Month, dt.Day)

    If dt >= Date.Today AndAlso dt < Date.Today.AddDays(a) OrElse dt2 >= Date.Today AndAlso dt2 < Date.Today.AddDays(a) Then
        nms = nms & ",'" & dr("车牌号") & "'"
    End If
Next
If nms > "" Then
    nms = nms.Trim(",")
    Tables("会员档案").filter = "[车牌号] In (" & nms &")"
Else
    Tables("会员档案").filter =  "[车牌号] =''"
    messagebox.show("没有此期间过生日的客户!","提示")
End If


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


加好友 发短信
等级:婴狐 帖子:50 积分:610 威望:0 精华:0 注册:2009/12/26 23:14:00
  发帖心情 Post By:2012/9/26 16:31:00 [只看该作者]

呵呵,谢谢lin_hailun老师和狐爸,问题解决了,果然是高人,这个贴看来可以放入“帮助大家来找茬”中了,关于生日提醒部分的内容

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/9/26 16:32:00 [只看该作者]

呵呵,惭愧,我修改一下帮助的代码。

 

图片点击可在新窗口打开查看


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


加好友 发短信
等级:婴狐 帖子:50 积分:610 威望:0 精华:0 注册:2009/12/26 23:14:00
  发帖心情 Post By:2012/9/26 16:51:00 [只看该作者]

狐爸谦虚,您开发的foxtable真是无所不能,太伟大了,专业软件公司开发团队半年才做出的东西foxtable2个月就基本搞定了,而且就一个人开发呀,实现的功能还更多更人性化,尤其是统计分析部分更是无比强大,对您太佩服了

 回到顶部