Foxtable(狐表)用户栏目专家坐堂 → 日期选择


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

主题:日期选择

美女呀,离线,留言给我吧!
xiaohuli
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
日期选择  发帖心情 Post By:2015/8/25 19:59:00 [只看该作者]

表a中有一个开始日期和结束日期,希望能实现开始日期和结束日期不跨月,当选择开始日期是8月的日期的时候,那么结束日期也只能选择8月的日期,不能选择其他的日期,这个控制应该怎么实现。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/25 20:06:00 [只看该作者]

 

[此贴子已经被作者于2015/8/25 20:06:49编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/25 20:08:00 [只看该作者]

DataColChanging事件


If e.DataCol.Name = "结束日期" AndAlso e.newvalue <> Nothing Then
    If Format(e.DataRow("开始日期"), "yyyyMM") <> Format(e.NewValue, "yyyyMM") Then
        e.cancel = True
    End If
End If


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/8/25 20:19:00 [只看该作者]

老师,用了你的代码后,结束日期中直接连日期都输入不进去了,不管是不是跨月的日期都输入后,点击其他控件后,结束日期的值就不在了。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/25 20:20:00 [只看该作者]

看懂代码,先输入开始时间

 


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/8/28 10:12:00 [只看该作者]

老师,现在是这样的,当已经输入了开始日期,然后输入结束日期的时候进行判断,如果输入的结束日期跨月了,然后给出一个日期跨月的提示,当点击是的时候就不清空选择的值,如果点击否,就清空选择的结束日期。如果开始日期没输入,进行输入结束日期,然后在输入开始日期的时候进行判断,日期是否跨月了,然后也是给出跨月的提示。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/28 10:20:00 [只看该作者]

If e.DataCol.Name = "结束日期"  Then
    If e.NewValue <> Nothing AndAlso e.DataRow.IsNull("开始日期") = False
        If Format(e.DataRow("开始日期"), "yyyyMM") <> Format(e.NewValue, "yyyyMM") Then
            Dim result As DialogResult =  MessageBox.Show("是否跨月?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
            If result = DialogResult.No Then
                e.cancel = True
            End If
        End If
    End If
End If

If e.DataCol.Name = "开始日期"  Then
    If e.NewValue <> Nothing AndAlso e.DataRow.IsNull("结束日期") = False
        If Format(e.DataRow("结束日期"), "yyyyMM") <> Format(e.NewValue, "yyyyMM") Then
            Dim result As DialogResult =  MessageBox.Show("是否跨月?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
            If result = DialogResult.No Then
                e.cancel = True
            End If
        End If
    End If
End If


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/9/18 14:57:00 [只看该作者]

老师,目前在下面这个代码的基础上还得要判断出开始日期不能大于结束日期,如果开始日期大于结束日期,那么就清空。开始日期和结束日期上都需要判断。


If e.DataCol.Name = "结束日期"  Then
    If e.NewValue <> Nothing AndAlso e.DataRow.IsNull("开始日期") = False
        If Format(e.DataRow("开始日期"), "yyyyMM") <> Format(e.NewValue, "yyyyMM") Then
            Dim result As DialogResult =  MessageBox.Show("是否跨月?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
            If result = DialogResult.No Then
                e.cancel = True
            End If
        End If
    End If
End If

If e.DataCol.Name = "开始日期"  Then
    If e.NewValue <> Nothing AndAlso e.DataRow.IsNull("结束日期") = False
        If Format(e.DataRow("结束日期"), "yyyyMM") <> Format(e.NewValue, "yyyyMM") Then
            Dim result As DialogResult =  MessageBox.Show("是否跨月?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
            If result = DialogResult.No Then
                e.cancel = True
            End If
        End If
    End If
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/19 10:18:00 [只看该作者]

那你就加上呗,如

 

If e.DataRow("开始日期") > e.NewValue Then

    msgbox("结束日期不能早于开始日期")

    e.Cancel = True

Else

   If Format(e.DataRow("开始日期"), "yyyyMM") <> Format(e.NewValue, "yyyyMM") Then


 回到顶部