以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 我在click加了授权代码,明细表(子表)就不能编辑,请问怎么才能让明细表能够编辑? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20958) |
-- 作者:akzzwj -- 发布时间:2012/6/25 14:11:00 -- 我在click加了授权代码,明细表(子表)就不能编辑,请问怎么才能让明细表能够编辑? 材料出库单 表 是父表;材料出库单明细 表 是子表 我建了一个“新增”入库单 的窗口,"新增"按钮的click事件的代码是: If Functions.Execute("ShouQuan","A-材料出库单","2-创建") Then
结果 在 “新增”入库单 的窗口里 明细表(子表)可以新增行 可是就是不能添加数据、不能编辑。请问如何调整代码,怎么让窗口中的明细表(子表)能够编辑(添加数据)? |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/25 14:13:00 -- 这得看你编辑授权的代码是什么了。 |
-- 作者:akzzwj -- 发布时间:2012/6/25 14:26:00 -- 授权函数名为ShouQuan,代码为: If User.Type <> UserTypeEnum.User Then \' 如果是开发者或者管理员Return True \'则具备所有权限 End If Dim dt As DataTable = DataTables("授权") Dim dr As DataRow \'首先判断分组的授权用户是否包括此用户或此用户所属的分组 dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 Is Null" ) If dr Is Nothing Then MessageBox.show("不存在名为""" & args(0) & "分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return False End If If dr.IsNull("用户") = False Then Dim nms() As String = dr("用户").Split(",") For Each nm As String In nms If nm = User.Group OrElse nm = User.Name Then \'如果授权用户包括登录用户所属的分组或其用户名 Return True \'返回True End If Next End If \'然后判断权限的授权用户是否包括此用户或此用户所属的分组 If Args(1) = "" Then Return False End If dr = dt.Find("分组 = \'" & args(0) & "\' And 权限 = \'" & args(1) & "\'") If dr Is Nothing Then MessageBox.show("不存在名为""" & args(1) & "权限!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return False End If If dr.IsNull("用户") = False Then Dim nms() As String = dr("用户").Split(",") For Each nm As String In nms If nm = User.Group OrElse nm = User.Name Then \'如果授权用户包括登录用户所属的分组或其用户名 Return True \'返回True End If Next End If Return False 狐狸爸爸,请问 这个代码 该怎么改,让相关的关联表也有编辑权限 |
-- 作者:akzzwj -- 发布时间:2012/6/25 14:28:00 -- 我的代码 都是按照 目录树形式的授权 的帮助中的这一章节中的代码做的 请问 狐狸爸爸 该怎么调整代码 让关联表也有编辑权限 |
-- 作者:akzzwj -- 发布时间:2012/6/25 15:21:00 -- 增加权限按钮的代码: Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")Dim pd As WinForm.TreeNode = trv.SelectedNode trv.Select() If pd.Level = 1 Then pd = pd.ParentNode End If Dim i As Integer Do i = i+ 1 Dim nm As String = "权限" & i If pd.Nodes.Contains(nm) = False Dim nd As WinForm.TreeNode = pd.Nodes.Add(nm) Dim dr As DataRow = DataTables("授权").AddNew() dr("分组") = pd.name dr("权限") = nm trv.SelectedNode = nd trv.BeginEdit Exit Do End If Loop 目录树形式的授权中的增加权限的这段代码 该如何修改才能使一张表的关联表(子表)也编辑权限
|
-- 作者:akzzwj -- 发布时间:2012/6/25 15:27:00 -- 狐狸爸爸 帮我看一下啊
|
-- 作者:akzzwj -- 发布时间:2012/6/25 15:42:00 -- 狐狸爸爸 我的问题 弄 啊? |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/25 16:06:00 -- 贴出你的PrePareEdit事件代码。 |
-- 作者:akzzwj -- 发布时间:2012/6/25 16:10:00 -- 主表的 PrePareEdit事件这有这个代码e.Cancel = True 子表的没有 |
-- 作者:狐狸爸爸 -- 发布时间:2012/6/25 16:15:00 -- 将这个代码改为:
if e.Table.IsRelation = False Then e.Cancel = True End if |