Foxtable(狐表)用户栏目专家坐堂 → 非管理员不能删除数据,但是通过窗口按钮可以删除数据怎么弄?


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

主题:非管理员不能删除数据,但是通过窗口按钮可以删除数据怎么弄?

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
非管理员不能删除数据,但是通过窗口按钮可以删除数据怎么弄?  发帖心情 Post By:2020/3/22 18:41:00 [只看该作者]

如标题。非管理员不能删除数据,但是通过窗口的取消按钮可以删除当前新增的行怎么弄?


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


客户信息表(kehu)

BeforeDeleteDataRow 事件


If  User.name<> "管理员" Then
    e.Cancel = True '那么取消输入并提示用户
    Messagebox.Show("请联系管理员删除客户信息","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

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


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

取消使用的是RejectChanges,这个不会触发BeforeDeleteDataRow 事件,撤销是另外一种行为,不是删除。

直接在取消按钮里判断

if User.name<> "管理员" then
    e.Cancel = True '那么取消输入并提示用户
    Messagebox.Show("请联系管理员删除客户信息","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
end if
这里是撤销的代码

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2020/3/24 9:31:00 [只看该作者]

因为打开窗口后,立马新增一行才能在窗口里输入数据。
窗口 AfterLoad 事件,Tables("kehu").AddNew() 
那么对应的,如果窗口控件 触发确认按钮,则保存这一行。如果取消则删除这一行。(比如录入新客户信息的时候发现重复了,肯定要选取消按钮,肯定要删除这一行)
取消的按钮事件
Tables("kehu").Current.Delete()
e.Form.Close()


但是客户信息表(kehu)  BeforeDeleteDataRow 事件

If  User.name<> "管理员" Then
    e.Cancel = True '那么取消输入并提示用户
    Messagebox.Show("请联系管理员删除客户信息","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

这时候只有管理员才能在点取消按钮的时候完成Tables("kehu").Current.Delete() 这是不对的。
目标:只有管理员才能在表中删除数据,但是窗口中任何一个人都可以通过取消按钮来删除当前不需要的这一行,如何实现?

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2020/3/24 9:36:00 [只看该作者]

如一楼的图片,因为取消的时候不能删除当前录入错误的数据,所以经过多次“取消”后,会出现很多空数据行,或者错误的数据。这样是不对的。

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


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

取消按钮

Dim r As Row = Tables("kehu").Current
If r IsNot Nothing Then
    If r.DataRow.RowState = DataRowState.Added
        systemrerady = False
        r.Delete
        systemrerady = True
    End If
End If

 回到顶部