Foxtable(狐表)用户栏目专家坐堂 → 请问如何实现不同的日期区间设定不同的休息日


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

主题:请问如何实现不同的日期区间设定不同的休息日

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


加好友 发短信
等级:幼狐 帖子:52 积分:565 威望:0 精华:0 注册:2021/9/23 6:49:00
请问如何实现不同的日期区间设定不同的休息日  发帖心情 Post By:2022/7/31 8:23:00 [只看该作者]

我的系统已经设定好了日期列和星期列
比如说7月份周二,周六休息
在输入七月份周二或者周六的日期的时候体统发出提示这天休息
8月换到周三休息,系统提示周三休息

目前我只会根据所有的日期判断,请问如何分区间判断呢?谢谢大神

If e.DataCol.Name = "星期" Then
 
    If e.DataRow("星期")="星期二"
       MessageBox.Show("星期二休息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
       If e.NewValue <> e.OldValue Then
          e.DataRow("da") = e.OldValue
           e.DataRow("作废") = True
        End If
    End If
    If e.DataRow("星期")="星期六"
        MessageBox.Show("星期六休息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        If e.NewValue <> e.OldValue Then
           e.DataRow("da") = e.OldValue
         e.DataRow("作废") = True
        End If
    End If
end if 

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109501 积分:557173 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/31 20:26:00 [只看该作者]

建一个休息日表,记录每次需要判断的月份的休息日,然后通过查表判断,大概是这样

If e.DataCol.Name = "星期" Then
 dim dr as datarow = datatables("休息日").find("月份=" & date.today.year & " and 休息日=#" & e.DataRow("星期") & "#")
    If dr isnot nothing
       MessageBox.Show(e.DataRow("星期") & "休息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
          e.DataRow("da") = e.OldValue
           e.DataRow("作废") = True
    End If
end if 

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


加好友 发短信
等级:幼狐 帖子:52 积分:565 威望:0 精华:0 注册:2021/9/23 6:49:00
  发帖心情 Post By:2022/8/2 3:14:00 [只看该作者]

是不是把每个休息的日期写进休息日的表格


图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图 2022-08-01 174724.png
图片点击可在新窗口打开查看
出现错误提示
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:表,查看收据,DataColChanging
详细错误信息:
调用的目标发生了异常。
表达式包含无效的日期常量“##”。

另外
我是不是应该把
Date.today.year 中的year换成month
然后我会在原表中输入不是当日的日子,比如说现在是8月,我会输入7月的日期,并且根据输入的日期来判断这一天是不是7月的休息日
[此贴子已经被作者于2022/8/2 5:48:18编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

dim dr as datarow = datatables("休息日").find("月份=" & date.today.month & " and 休息日='" & e.DataRow("星期") & "'")

#改为单引号

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


加好友 发短信
等级:幼狐 帖子:52 积分:565 威望:0 精华:0 注册:2021/9/23 6:49:00
  发帖心情 Post By:2022/8/3 0:34:00 [只看该作者]

老师报错的问题解决了,但只能判断输入日期的月份
但是我有需要输入以前的日期
比如今天是8月,想要输入7月的日期,就还是只能判断成8月,而不是7月了

不过找到一个笨办法
先创建一个年份列,一个月份列
再用代码赋值
    Dim r As DataRow = e.DataRow
    r("月份") = month(r("da"))
    
    r("年份") = year(r("da"))
再把date.today.month 换成 月份= "& e.DataRow("月份")

有没有直接判断单元格中的日期的月份
搜索论坛中帖子好像是"month(日期)"
还是
month(e.datarow("日期")
不知道如何把date.today.month 替换进去
[此贴子已经被作者于2022/8/3 7:50:56编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

dim dr as datarow = datatables("休息日").find("月份=" & e.DataRow("星期").month & " and 休息日='" & e.DataRow("星期") & "'")

 回到顶部