以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  不允许你增加新的数据行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192896)

--  作者:edisontsui
--  发布时间:2024/7/31 9:13:00
--  不允许你增加新的数据行
有一个数据表,其beforedeletedatarow 有如下代码:
If User.name <> "开发者" AndAlso user.group <> "财务" AndAlso user.group <> "行政" Then
    e.Cancel = True 
    Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
当开发者登录时,是可以增加数据行的,但是当 "行政" 这个组登录时,就会有 “不允许你增加新的数据行” 的提示。请问是哪里的问题呢?谢谢。

--  作者:有点蓝
--  发布时间:2024/7/31 10:08:00
--  
beforedeletedatarow 这个事件是删除行前触发的。增加行检查BeforeAddDataRow事件

另外上面这个代码判断有逻辑错误,使用文字说明一下要做什么判断

--  作者:edisontsui
--  发布时间:2024/7/31 10:58:00
--  
不好意思,是我上面写错了,这些代码是放在 beforeadddararow 里面的:
If User.name <> "开发者" AndAlso user.group <> "财务" AndAlso user.group <> "行政" Then
    e.Cancel = True 
    Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

执行的时候出现的提示是“不允许你增加新的数据行!” ,而不是上段中红色部分的文字。而且提示框有一个大的倒感叹号那样子的符号。

此主题相关图片如下:0731.jpg
按此在新窗口浏览图片


--  作者:cd_tdh
--  发布时间:2024/7/31 11:03:00
--  
http://www.foxtable.com/webhelp/topics/0326.htm

MessageBox有一个共享方法Show,用于显示对话框,语法是:

MessageBox.Show(Message, Caption, Buttons, Icon)

参数说明
Message要显示的信息
Caption对话框标题
Buttons可选参数,指定要显示的按钮,MessageBoxButtons型枚举,包括以下可选值:
 
AbortRetryIgnore:包含“中止”、“重试”和“忽略”按钮。
OK:包含“确定”按钮
OKCancel:包含“确定”和“取消”按钮
RetryCancel:包含“重试”和“取消”按钮
YesNo:包含“是”和“否”按钮
YesNoCancel:包含“是”、“否”和“取消”按钮

如果省略,则显示“确定”按钮。

Icon可选参数,指定要显示的图标,MessageBoxIcon型枚举,包括以下可选值:
 
Error:显示错误图标,由一个红色背景的圆圈及其中的白色 X 组成的。
Information:显示信息图标,由一个圆圈及其中的小写字母 i 组成的。
None:不显示图标。
Question:显示提问图标,是由一个圆圈和其中的一个问号组成的。
Warning:显示警告图标,一个黄色背景的三角形及其中的一个感叹号组成的。
看明白帮助中的语法。
Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示")

此主题相关图片如下:qq20240731-105936.jpg
按此在新窗口浏览图片

[此贴子已经被作者于2024/7/31 11:16:00编辑过]

--  作者:有点蓝
--  发布时间:2024/7/31 11:07:00
--  
使用文字说明一下要做什么判断
--  作者:edisontsui
--  发布时间:2024/7/31 12:35:00
--  
我想增加数据行,但是无缘无故会出现 "不允许你增加新的数据行!" 这个提示,但是又不知道原因在哪里,因为我的 BeforeAddDaraRow 的设置是没有问题的。这个提示是在执行某个按钮里面的代码 Dim nr As DataRow = DataTables("CHECKINOUT").AddNew() 时出现的,如果我直接去到数据表 CHECKINOUT 那里去增加数据行是不会有这个提示的。
--  作者:有点蓝
--  发布时间:2024/7/31 13:35:00
--  
使用文字说明一下这个代码想实现什么功能,按什么逻辑判断!
--  作者:edisontsui
--  发布时间:2024/7/31 15:01:00
--  
BeforeAddDaraRow 的如下代码 
If User.name <> "开发者" AndAlso user.group <> "财务" AndAlso user.group <> "行政" Then
    e.Cancel = True 
    Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
想实现的功能:
如果不是开发者这个用户,以及不是财务那个用户组,以及不是行政那个用户组,就不准增加数据行。

--  作者:有点蓝
--  发布时间:2024/7/31 15:06:00
--  
如果说3个条件只要有一个符合就可以新增,参考

If User.name = "开发者" orelse user.group = "财务" orelse user.group = "行政" Then
else
    e.Cancel = True 
    Messagebox.Show("<考勤机记录> 提示:不允许你增加新的数据行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

--  作者:edisontsui
--  发布时间:2024/8/1 7:44:00
--  
好像可以了,我再留意一下。请问用8楼和9楼的方式为什么结果会不同呢?