以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  生日提醒  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187106)

--  作者:yaojun
--  发布时间:2023/6/21 14:20:00
--  生日提醒
如下代码是提醒未来几天的生日信息,请问如何改成提醒的是本月所有人员的生日信息(本月1号到最后一天的):
Tables("人力资源_table19").SetHeaderRowHeight(36)
Tables("人力资源_table19").DefaultRowHeight = 36
Dim ids As String
Dim n As Integer = 10 \'未来天数,含今天

Dim eDate As Date = Date.Today.AddDays(n)
For Each dr As DataRow In DataTables("员工资料").Select("出生日期 is not null")
    Dim month As Integer = dr("出生日期").Month
    Dim day As Integer = dr("出生日期").Day
    If month = 2 AndAlso day = 29 Then
        If Date.IsLeapYear(Date.Today.Year) = False Then day = 28
    End If
    Dim sDate As Date = new Date(Date.Today.Year, month, day)
    Dim days As TimeSpan = eDate - sDate
    If days.TotalDays >= 0 AndAlso days.TotalDays <= n OrElse days.TotalDays > 365 Then
        ids = ids & "," & dr("_Identify")   \'记录生日的行号
    End If
Next
If ids > "" Then
    ids = ids.Trim(",")
    messagebox.show("未来"& n &"天内有员工过生日,给他们送去祝福吧.","生日提醒")
    Tables("人力资源_table19").filter = "[_Identify] In (" & ids &")"
Else
    Tables("人力资源_Table19").filter = "false"
End If

--  作者:有点蓝
--  发布时间:2023/6/21 14:38:00
--  
筛选本月,一句代码就可以了:http://www.foxtable.com/webhelp/topics/1285.htm

Tables("人力资源_table19").filter = "
SubString(Convert([出生日期],\'System.String\'),6,IIF(SubString(Convert([出生日期],\'System.String\'),7,1) In (\'-\',\'/\'),1,2)) = \'" & Date.Today.Month & "\'"
[此贴子已经被作者于2023/6/21 14:38:51编辑过]

--  作者:yaojun
--  发布时间:2023/6/21 15:01:00
--  
Tables("人力资源_table19").SetHeaderRowHeight(36)
Tables("人力资源_table19").DefaultRowHeight = 36
Tables("人力资源_table19").filter = "SubString(Convert([出生日期],\'System.String\'),6,IIF(SubString(Convert([出生日期],\'System.String\'),7,1) In (\'-\',\'/\'),1,2)) = \'" & Date.Today.Month & "\'"
代码引用没有任何反应


--  作者:有点蓝
--  发布时间:2023/6/21 15:10:00
--  
Tables("人力资源_table19").filter = "SubString(Convert([出生日期],\'System.String\'),6,IIF(SubString(Convert([出生日期],\'System.String\'),7,1) In (\'-\',\'/\'),1,2)) = \'" & format(Date.Today.Month,"00") & "\'"
--  作者:yaojun
--  发布时间:2023/6/21 15:23:00
--  
可以了,谢谢,如果是下个月的生日提醒呢
--  作者:有点蓝
--  发布时间:2023/6/21 15:30:00
--  
.....In (\'-\',\'/\'),1,2)) = \'" & format(Date.Today.addMonths(1).Month,"00") & "\'"
--  作者:yaojun
--  发布时间:2023/6/21 15:35:00
--  
谢谢,非常好