Foxtable(狐表)用户栏目专家坐堂 → 内部函数传e


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

主题:内部函数传e

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
内部函数传e  发帖心情 Post By:2022/9/26 9:29:00 [只看该作者]

老师,内部函数传e还是没怎么搞懂,请老师看看

内部函数代码如下:

Dim e As Object = Args(0)
Dim dr As DataRow = DataTables("用户管理").Find("姓名 = '" & _UserName & "'")
If dr Is Nothing Then
    MessageBox.Show("你没有该权限!", "提示", MessageBoxButtons.OK)
    Return ""    '该返回那个值,不在执行后续按钮中新增的代码?
Else
    Dim Str As String = dr("功能权限")
    Dim nm = e.sender.Name
    If Str.IndexOf(nm) = -1 Then '0满足条件,-1不满足条件
        MessageBox.Show("你没有权限")
        Return ""   '该返回那个值,不在执行后续按钮中新增的代码?
    End If
End If

 

窗口中按钮调用代码如下:

Functions.Execute("功能权限",e,"新增")
Tables("中标项目管理").AddNew()

 


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


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

和e参数没有一点关系,根据需要返回一个值,然后判断这个值是否符合预期即可
比如返回true
Return true
然后判断
if Functions.Execute("功能权限",e,"新增") = false then
Tables("中标项目管理").AddNew()
endif

也可以返回其它任意值
比如返回有权限返回1,无权限返回0
If dr Is Nothing Then
    MessageBox.Show("你没有该权限!", "提示", MessageBoxButtons.OK)
    Return 0    '该返回那个值,不在执行后续按钮中新增的代码?
Else
    Dim Str As String = dr("功能权限")
    Dim nm = e.sender.Name
    If Str.IndexOf(nm) = -1 Then '0满足条件,-1不满足条件
        MessageBox.Show("你没有权限")
        Return 0  '该返回那个值,不在执行后续按钮中新增的代码?
    End If
End If
return 1

然后判断
if Functions.Execute("功能权限",e,"新增") = 1 then
Tables("中标项目管理").AddNew()
endif

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/9/26 10:03:00 [只看该作者]

Functions.Execute("功能权限",e,"新增")

怎么把按钮名称传到内部函数呢,调用的时候在写一次按钮名称,觉得不方便。

 

Dim e As Object = Args(0)
Dim dr As DataRow = DataTables("用户管理").Find("姓名 = '" & _UserName & "'")
If dr Is Nothing Then
    MessageBox.Show("你没有权限!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    Return True
Else
    Dim Str As String = dr("功能权限")
    Dim nm = e.sender.Name
    If Str.IndexOf(nm) = -1 Then '0满足条件,-1不满足条件
        MessageBox.Show("你没有权限!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Return True
    End If
End If

[此贴子已经被作者于2022/9/26 10:04:42编辑过]

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


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

如果是在click事件里使用的,和正常方式使用e参数即可,比如e.sender就是正在点击的按钮

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


加好友 发短信
等级:狐精 帖子:3205 积分:21299 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2022/9/26 10:13:00 [只看该作者]

明白了,直接这样就行了

Functions.Execute("功能权限",e)

[此贴子已经被作者于2022/9/26 10:13:18编辑过]

 回到顶部