以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于生日提醒的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23999)

--  作者:flytianr
--  发布时间: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


--  作者:狐狸爸爸
--  发布时间:2012/9/26 15:55:00
--  

呵呵,你测试过吗?

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


--  作者:flytianr
--  发布时间:2012/9/26 16:13:00
--  

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

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

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

--  作者:lin_hailun
--  发布时间: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
--  发布时间:2012/9/26 16:31:00
--  
呵呵,谢谢lin_hailun老师和狐爸,问题解决了,果然是高人,这个贴看来可以放入“帮助大家来找茬”中了,关于生日提醒部分的内容
--  作者:狐狸爸爸
--  发布时间:2012/9/26 16:32:00
--  

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

 

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


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