Foxtable(狐表)用户栏目专家坐堂 → [求助]月历非空日期字体加粗显示如何设置?


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

主题:[求助]月历非空日期字体加粗显示如何设置?

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


加好友 发短信
等级:婴狐 帖子:17 积分:377 威望:0 精华:0 注册:2022/7/12 23:05:00
[求助]月历非空日期字体加粗显示如何设置?  发帖心情 Post By:2022/10/22 11:21:00 [只看该作者]


请教老师,月历非空日期字体加粗显示如何设置?


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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/22 11:22:00 [只看该作者]

什么是“非空日期”?

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


加好友 发短信
等级:婴狐 帖子:17 积分:377 威望:0 精华:0 注册:2022/7/12 23:05:00
  发帖心情 Post By:2022/10/22 21:48:00 [只看该作者]

就是双击月历的日期,可筛选出该日期的表的所有记录。
我的想法是:该日期如果有表记录,那么该日期在月历上显示为粗字体,如果该日期没有表记录,该日期在月历上显示为常规字体。这样的好处是月历字体粗细可以显示哪天有记录,哪天没有记录。

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


加好友 发短信
等级:婴狐 帖子:17 积分:377 威望:0 精华:0 注册:2022/7/12 23:05:00
  发帖心情 Post By:2022/10/23 0:47:00 [只看该作者]

Dim Cal As WinForm.Calendar = Forms("主窗口").Controls("Calendar1")
Dim y As Integer = Year(Cal.Value)
Dim m As Integer = Month(Cal.Value)
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取该月的最后一天
Dim ds As New List(Of String)
ds = DataTables("tblIntervOper").SQLGetValues("日期", "日期 >= #" & dt1 & "# and 日期<=#" & dt2 & "#")
Dim str As String
Dim i As Integer
For i = 0 To ds.Count - 1
    str += "CDate(""" & ds(i) & """),"
Next
'output.Show(str.Trim(","))
Forms("主窗口").Controls("Calendar1").BaseControl.BoldedDates = {str.Trim(",")}

上述代码执行后出现错误,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看

不知道哪里错了?


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


加好友 发短信
等级:婴狐 帖子:17 积分:377 威望:0 精华:0 注册:2022/7/12 23:05:00
  发帖心情 Post By:2022/10/23 9:42:00 [只看该作者]

用以下代码解决问题了

Dim Cal As WinForm.Calendar = Forms("主窗口").Controls("Calendar1")
Dim y As Integer = Year(Cal.Value)
Dim m As Integer = Month(Cal.Value)
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取该月的最后一天
Dim ds As New List(Of String)
ds = DataTables("tblIntervOper").SQLGetValues("日期", "日期 >= #" & dt1 & "# and 日期<=#" & dt2 & "#")
Dim dts As New List(Of Date)
For Each d As String In ds
    dts.Add(CDate(d))
Next 
Forms("主窗口").Controls("Calendar1").BaseControl.BoldedDates = dts.ToArray

 回到顶部