以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]限制超时录入数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177315)

--  作者:秋夜凉了
--  发布时间:2022/5/17 15:11:00
--  [求助]限制超时录入数据
请问老师
有列为开单日期,这行数据只能在2天内可以录入数据,超过日期就锁定禁止录入,要如何实现呢

--  作者:有点蓝
--  发布时间:2022/5/17 15:14:00
--  
PrepareEdit事件

If e.Row.isnull("开单日期") = false andalso( e.Row("开单日期") < date,today.adddays(-1) orelse e.Row("开单日期") > date,today) Then
    e.Cancel = True
End
 
If

--  作者:秋夜凉了
--  发布时间:2022/5/17 15:24:00
--  回复:(有点蓝)PrepareEdit事件If e.Row.isnul...
蓝老师这表达式不能用。



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

--  作者:有点蓝
--  发布时间:2022/5/17 15:40:00
--  
If e.Row.isnull("开单日期") = false andalso( e.Row("开单日期") < date.today.adddays(-1) orelse e.Row("开单日期") > date.today) Then
    e.Cancel = True
End
 
If

--  作者:秋夜凉了
--  发布时间:2022/5/18 8:58:00
--  回复:(有点蓝)If e.Row.isnull("开单日期") =...

蓝老师,请问,我在表的DataRowLockedChanging 加入 特定人 可以取消锁定的行,怎么没有触发呢。

If e.DataRow.Locked  = True Then
    If User.Name <> "张三" Then
        e.Cancel = True
    End If
End If

--  作者:有点蓝
--  发布时间:2022/5/18 9:21:00
--  
我测试没有问题,要点击解锁行才会触发

msgbox(1) ‘这个能不能弹出来’
msgbox(e.DataRow.Locked )
If e.DataRow.Locked  = True Then
msgbox(User.Name)
    If User.Name <> "张三" Then
        e.Cancel = True
    End If
End If

--  作者:秋夜凉了
--  发布时间:2022/5/18 9:50:00
--  回复:(有点蓝)我测试没有问题,要点击解锁行才会触...
蓝老师,请帮忙看下我哪里搞错了,是不是窗口1按钮弄错了还是表事件。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


[此贴子已经被作者于2022/5/18 9:50:43编辑过]

--  作者:有点蓝
--  发布时间:2022/5/18 10:12:00
--  
首先要先锁定,再去解锁,才有意义

其次要使用不同的用户登录测试

--  作者:秋夜凉了
--  发布时间:2022/5/18 11:12:00
--  回复:(有点蓝)首先要先锁定,再去解锁,才有意义其...
那老师我用这个
PrepareEdit事件

If e.Row.isnull("开单日期") = false andalso( e.Row("开单日期") < date,today.adddays(-1) orelse e.Row("开单日期") > date,today) Then
    e.Cancel = True
End
 
If
后,需要解锁行,怎么弄呢·

--  作者:有点蓝
--  发布时间:2022/5/18 11:36:00
--  
这个代码是按指定条件禁止编辑,不是加锁,无法解锁。

如果不想要禁止编辑,就去掉这个代码,或者更改"开单日期"以符合编辑条件。