自定义函数权限判断 (他只在第一次调用的时候弹出这个错误窗口是为什么呢? 下面就是自定义函数的全部代码)
调用的目标发生了异常。
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Runtime.InteropServices.ExternalException: 所请求的剪贴板操作失败。
在 System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr)
在 System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay)
在 System.Windows.Forms.Clipboard.SetText(String text, TextDataFormat format)
在 System.Windows.Forms.Clipboard.SetText(String text)
在 UserCode.AJMi5keGe3em3rR4X(Object[] Args)
--- 内部异常堆栈跟踪的结尾 ---
在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 Foxtable.UserFunctions.Execute(String Name, Object[] Args)
下面的内容是自定义函数
'Args(0) TmpModuleID '传入模块名称
'Args(1) QX '传入需要判断的权限(读取,编辑,删除,增加,分享...等等)
'可传入的参数有,addon assign audit back deleteon editon printon readon Share
' 插件 指派分配 审计 返回 删除? 编辑? 打印? 只读? 分享
'---------------------------------------下面是 人员ID 和部门ID 的判断参数(判断是否本人是否本部门)
'Args(2) SalesManID2 '传入销售员ID(判断参数) '修改数据的时候才传入这个参数作为判断,(用来判断以前的数据的人员是不是本人)
'Args(3) DepartmentID2 '传入部门ID(判断参数) '用作数据对比的部门ID(旧数据中的)
Dim ModuleID2 As String = Args(0)
Dim QX As String = Args(1)
Dim SalesManID2 As String = Args(2)
Dim DepartmentID2 As String = Args(3)
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Select " & QX & " f rom {QX_roleDetail} where RoleID = '" & TmpRoleID & "' And ModuleNO = '" & ModuleID2 & "'"
Dim Res As String = cmd.ExecuteScalar
Select Case Res
Case "0"
Return("无权限") '返回
Case "1"
If SalesManID2 <> "" Then '销售员ID 如果不等于是空
If SalesManID2 <> TmpUserID Then '销售员ID 不等于用户ID
Return("无权限")
End If
End If
Case "2"
If DepartmentID2 <> "" Then '如果部门本表ID 不等于空
If DepartmentID2 <> TmpDepartmentID Then '如果部门本表ID 不等于 全局变量的部门ID
Return("无权限")
End If
End If
Case "3"
' 这个判断是是不是本部门的,如果不是就不能修改
If TmpDepartmentID.SubString(0,TmpDepartmentID.length-2) <> DepartmentID2.SubString(0,TmpDepartmentID.length-2) Then
Return("无权限")
End If
Case "4"
' 如果 8866.substring(0.2) 不等于 887766.substring(0,2)
If DepartmentID2.SubString(0,2) <> TmpDepartmentID.SubString(0,2) Then '同上 (主要是判断相等就能编辑)
Return("无权限")
End If
Case Else
Return Nothing
End Select
Return Nothing
[此贴子已经被作者于2017/10/12 21:08:02编辑过]