以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  权限判定  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129044)

--  作者:13775189031
--  发布时间:2018/12/20 15:03:00
--  权限判定

请教

表“物资领用权限”

 
图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

想在“物资采购明细表”中实现,

若表“物资采购明细表”中“物资说明”=表“物资领用权限”中“物资领用权限”,同时

用户user=表“物资领用权限”中“姓名”,才能够编辑逻辑列“领用”,否则逻辑列锁定并提示“领用权限错误!”



--  作者:有点甜
--  发布时间:2018/12/20 15:54:00
--  

datacolchanging事件

 

If e.datacol.name = "领用" orelse e.datacol.name = "物资说明" Then

    Dim fdr as datarow = DataTables("权限表").find("姓名=\'" & user.name & "\' and 物资=\'" & e.datarow("物资说明") & "\'")

    If fdr is Nothing Then

        msgbox("你不能领用")

        e.cancel = true

    End If

End If


--  作者:13775189031
--  发布时间:2018/12/20 16:13:00
--  

If e.DataCol.name = "领料情况_分机组" OrElse e.DataCol.name = "物资说明" Then
    Dim fdr As DataRow = DataTables("物资领用权限").find("姓名=\'" & user.name & "\' and 物资领用权限=\'" & e.DataRow("物资说明") & "\'")
    If fdr Is Nothing Then
        msgbox("无领用权限!")
        e.cancel = True
    End If
End If

没反应


--  作者:13775189031
--  发布时间:2018/12/20 16:24:00
--  

锁定是没问题,有的行会显示提示信息,但有的行没有,什么原因?


--  作者:有点甜
--  发布时间:2018/12/20 17:48:00
--  
以下是引用13775189031在2018/12/20 16:24:00的发言:

锁定是没问题,有的行会显示提示信息,但有的行没有,什么原因?

 

具体实例发上来测试。

 


--  作者:13775189031
--  发布时间:2018/12/24 15:16:00
--  

If e.DataCol.name = "领料情况_分机组" OrElse e.DataCol.name = "物资说明" Then
Dim fdr As DataRow = DataTables("物资领用权限").find("姓名=\'" & user.name & "\' and 物资领用权限=\'" & e.DataRow("物资说明") & "\'")
If fdr Is Nothing Then
msgbox("无领用权限!")
e.cancel = True
End If
End If

 

增加行也提示“无领用权限”


--  作者:有点甜
--  发布时间:2018/12/24 15:27:00
--  

改成

 

If e.NewValue <> e.OldValue andalso (e.DataCol.name = "领料情况_分机组" OrElse e.DataCol.name = "物资说明") Then
    Dim fdr As DataRow = DataTables("物资领用权限").find("姓名=\'" & user.name & "\' and 物资领用权限=\'" & e.DataRow("物资说明") & "\'")
    If fdr Is Nothing Then
        msgbox("无领用权限!")
        e.cancel = True
    End If
End If

[此贴子已经被作者于2018/12/24 15:27:22编辑过]

--  作者:13775189031
--  发布时间:2018/12/25 10:01:00
--  

表“领料清单”中datacolchanging

If e.NewValue <> e.OldValue AndAlso (e.DataCol.name = "审核" OrElse e.DataCol.name = "物资说明") Then
    Dim fdr As DataRow = DataTables("物资领用权限").find("审批人姓名=\'" & user.name & "\' and 物资领用权限=\'" & e.DataRow("物资说明") & "\'")
    If fdr Is Nothing Then
        msgbox("无审批权限!")
        e.cancel = True
    End If
End If

现在直接在“领料清单”中增加行是没有问题,不会提示“无审批权限”

但有一部分行是在“物资采购明细表”中点击“领料”后自动增加行到“领料清单”里面去的,这时还是会提示“无审批权限”


--  作者:有点甜
--  发布时间:2018/12/25 10:04:00
--  
以下是引用13775189031在2018/12/25 10:01:00的发言:

 

现在直接在“领料清单”中增加行是没有问题,不会提示“无审批权限”

但有一部分行是在“物资采购明细表”中点击“领料”后自动增加行到“领料清单”里面去的,这时还是会提示“无审批权限”

 

能否做一个实例发上来测试。


--  作者:13775189031
--  发布时间:2018/12/25 11:14:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产采购管理系统.foxdb

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产采购管理系统.rar

823148

以账户“徐耀”登录,密码888,在“物资采购明细”中,第一行为例,点击“领料情况-分机组”,会在“领料清单”中自动增加一行,但会显示“无审批权限”

但在“领料清单”中直接增加行,则不会显示

 

另外点击“领料情况-分机组”,在领料清单中“物资说明”不会自动生成是什么原因?其他值都没问题!