这样写还是不行?
Dim bm As WinForm.ComboBox = e.Form.Controls("部门")
Dim zh As WinForm.TextBox = e.Form.Controls("账号")
Dim mm As WinForm.TextBox = e.Form.Controls("密码")
Dim xm As WinForm.ComboBox = e.Form.Controls("姓名")
If bm.Value ="" Then
MessageBox.Show ("请选择部门!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
If xm.Value ="" Then
MessageBox.Show ("请选择姓名!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
If zh.Value ="" Then
MessageBox.Show ("请输入账号!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
If mm.value = "" Then
MessageBox.Show ("密码不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
'判断部门账号是否一致
Dim dr As DataRow = DataTables("用户管理").Find("账号 = '" & zh.text & "'")
''Dim dr As DataRow = DataTables("用户管理").Find("账号 = '" & zh.text & "' and 部门='" & bm.text & "' and 姓名='" & xm.text & "'")
If dr Is Nothing Then
MessageBox.Show ("账号不存在,请确认账号是否注册!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
If bm.value= dr("部门") And xm.value= dr("姓名") And zh.value= dr("账号") Then
If mm.value= dr("密码") Then
If dr("用户状态") = "停用" Then '如果前面部门或姓名只加载了启用状态的,此处不用判断
MessageBox.Show ("您的账号还未启用或已停用,请与管理员联系!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
Forms("登录").close
Forms("主窗口").Open()
MainTable = Tables("用户管理") '打开主界面表
e.Form.close
Else
MessageBox.Show ("密码错误,请重新输入!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
Else
MessageBox.Show ("部门,姓名,账号不一致,请检查!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
''"非自定义登录,可视化授权"代码放在在项目LoadUserSetting事件中。如果项目没有提供切换用户的功能,那么可以直接在AfterOpenProject事件中设置上述代码.自定义登录代码放在“登录”按钮中
For Each t As Table In Tables '显示所有表和列
t.Visible = True
t.AllowEdit = True
For Each c As Col In t.Cols
c.Visible = True
c.AllowEdit = True
Next
Next
MessageBox.Show(1)
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User)
If User.Type <> UserTypeEnum.User Then
Return
End If
MessageBox.Show(2)
For Each dr1 As DataRow In DataTables("授权表").Select("姓名 = '" & _UserName & "'")
''For Each dr1 As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )
MessageBox.Show(3)
If dr1.IsNull("列名") Then
For Each t As Table In Tables
If t.DataTable.Name = dr1("表名") Then
t.Visible = Not dr1("不可见")
t.AllowEdit = Not dr1("不可编辑")
End If
Next
Else
For Each t As Table In Tables
If t.DataTable.Name = dr1("表名") Then
For Each c As Col In t.Cols
If c.Name = dr1("列名") Then
c.Visible = Not dr1("不可见")
c.AllowEdit = Not dr1("不可编辑")
End If
Next
End If
Next
End If
Next
''条件加载2
If _UserYhjb = "超级用户" Then ''超级用户指"系统管理员"
DataTables("数据录入表2023").LoadFilter = "" '如果用户组是超级用户,加载所有行
DataTables("数据录入表2023").AllowEdit = True ''允许编辑数据
ElseIf _UserYhjb = "1级用户" Then ''1级用户指"经理"
DataTables("数据录入表2023").LoadFilter = "" '如果用户组是1级用户,则加载所有行
DataTables("数据录入表2023").AllowEdit = False '禁止用户修改表中数据,也就是锁定表
ElseIf _UserYhjb = "2级用户" Then '2级用户指"主管"则加载包含主管和员工的行
'DataTables("数据录入表2023").LoadFilter = "填报单位 like '%" & _UserGroup & "%'" '如果用户组是2级用户,加载本部门单位所有行
DataTables("数据录入表2023").LoadFilter = "填报单位 = '" & _UserGroup & "'" '如果用户组是2级用户,加载本部门单位所有行
DataTables("数据录入表2023").AllowEdit = True ''允许编辑数据
ElseIf _UserYhjb = "3级用户" Then
' DataTables("数据录入表2023").LoadFilter = "填报人 like '%" & _UserName & "%'" '3级用户指"员工"加载登录者相关行
DataTables("数据录入表2023").LoadFilter = "填报人 = '" & _UserName & "'" '3级用户指"员工"加载登录者相关行
End If
DataTables("数据录入表2023").Load()