Foxtable(狐表)用户栏目专家坐堂 → 出入库


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

主题:出入库

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/12 17:08:00 [只看该作者]

谢谢老师,问题解决了。又有个新问题,倒不明白了。
一个表里有A、B、C、D、E五列,分别有两人填写,甲填写A、B列,乙填写c、d
现在想在BeforeDeleteDataRow事件中设置权限,限制删除。
1、如果A或B不为空,除了甲,其它的人不能删除,也不能在C和D列写入
2、如果C或D不为空,除了乙,其它的人不能删除,也不能在A和B列写入
3、只有甲和已有删除权限,其它人不能删除


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


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


If e.DataRow.isnull("A") = false orelse e.DataRow.isnull("B") = false Then
If User.Name <> "" Then
    MessageBox.Show(
"
不能删除,别乱来!""提示")
    e.Cancel = True
end if
End
 
If

不能编辑到PrepareEdit事件处理
Select Case User.Name
    Case
 "C",
"D"
If e.Row.isnull("A") = false orelse e.Row.isnull("B") = false Then
If User.Name <> "" Then
    e.Cancel = True
end if
End
 
If
End Select

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/13 8:41:00 [只看该作者]

If User.Name <> "开发者" Then
    Select Case e.Col.name
        Case "库存"
            e.cancel = True
            e.Continue = False '取消后续同类操作
            Messagebox.Show("系统自动生成,不能填写和修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)         这一段没问题
            
            
        Case "日期","物品名称","单位","规格型号"                                                              如果是总务主任或保管员这四列允许编辑,但总务主任编辑不了。
            If User.IsRole("保管员") = False OrElse user.isrole("总务主任") = False  Then          
                e.cancel = True
                e.Continue = False '取消后续同类操作
                Messagebox.Show("只有管理人员才能填写,修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)      
            End If
    请老师给看看代码有什么问题呢
        
        Case "入库_供货单位","入库_数量","入库_过期日期"
            If e.Row.isnull("出库_出库人") = False OrElse e.Row.isnull("出库_数量") = False Then
                If user.isrole("保管员") = False  Then
                    e.cancel = True
                    e.Continue = False '取消后续同类操作
                    Messagebox.Show("只有管理员或本班班主任才能填写,修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If
            End If
            
        Case "出库_出库人","出库_数量"
            If e.Row.isnull("入库_供货单位") = False OrElse e.Row.isnull("入库_数量") = False Then
                
                If user.isrole("总务主任") = False  Then
                    e.cancel = True
                    e.Continue = False '取消后续同类操作
                    Messagebox.Show("只有总务主任才能填写,修改!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If
            End If
            
    End Select
End If

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


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

If User.IsRole("保管员") = False andalso user.isrole("总务主任") = False  Then       

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2022/4/13 11:03:00 [只看该作者]

不能编辑到PrepareEdit事件处理
Select Case User.Name
    Case
 "C",
"D"
If e.Row.isnull("A") = false orelse e.Row.isnull("B") = false Then
If User.Name <> "" Then
    e.Cancel = True
end if
End
 
If
End Select
老师,这一段代码我还是绕不出来
有点复杂
一共有ABCDEFG六列,ABC三列是两个人都可以编辑;DE只有甲可以编辑FG只有乙可以编辑
现在有个问题,就是一条记录,如果是甲已编辑,也就是DE不为空的情况下,乙就不能编辑这条记录的FG两列。
  A   B   C  D    E   F  G     
  ddd  ccc   kk    ttt   rrr  甲已在DE格内写入信息,乙不能再编辑   同F     
   ddd  ccc    kk         乙这时可以写入  同F    




[此贴子已经被作者于2022/4/13 11:04:25编辑过]

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


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

甲已编辑,也就是DE不为空的情况下,乙就不能编辑这条记录的FG两列

Select Case User.Name
    Case "D","E"
        If User.Name <> "甲" Then
            e.Cancel = True
        End If
    Case "F","G"
        If User.Name <> "乙" Then
            e.Cancel = True
        Else
            If e.Row.isnull("D") = False OrElse e.Row.isnull("E") = False Then
                e.Cancel = True
            End If
        End If
End Select

 回到顶部
总数 16 上一页 1 2