以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请帮助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144676)

--  作者:nxqtxwz
--  发布时间:2019/12/26 18:38:00
--  请帮助

一、下面的代码想改成判断当前行或表如果锁定则执行下面的代码,在Click 事件。

 

If user.IsRole("人事信息维护员") = False Then    改成: If e.DataRow.Locked  = True   Then        \'为什么出错

    Select  Case e.Col.Name
        Case  "直接评优_理由"

            If Forms("考核评优").Opened = False Then Forms("考核评优").Open
            Forms("考核评优").Controls("TextBox1").text = e.Row(e.Col.Name)
        End  Select
    End If

 

二、角色不是校长隐藏审核列,为什么不执行呢?

If User.IsRole("校长")=False  Then
   Tables("考核评优").Cols.Remove("核定")
End  If


--  作者:有点蓝
--  发布时间:2019/12/27 8:39:00
--  
再把这个帮助看10遍:http://www.foxtable.com/webhelp/topics/0604.htm,再看看:http://www.foxtable.com/webhelp/topics/1591.htm

If e.Row.Locked  = True  Then 

汽车和单车都有个车字,但是并不是汽车有方向盘,单车也就有方向盘。不同事件的e参数是不一样的,click事件e参数没有DataRow,但是有Row。不要以为一个事件有e.DataRow,然后所有的事件都有e.DataRow。每个事件都有什么参数,请查看帮助再使用。

隐藏审核列的代码放在什么地方?

--  作者:nxqtxwz
--  发布时间:2019/12/27 14:01:00
--  
以下是引用有点蓝在2019/12/27 8:39:00的发言:
再把这个帮助看10遍:http://www.foxtable.com/webhelp/topics/0604.htm,再看看:http://www.foxtable.com/webhelp/topics/1591.htm

If e.Row.Locked  = True  Then 

汽车和单车都有个车字,但是并不是汽车有方向盘,单车也就有方向盘。不同事件的e参数是不一样的,click事件e参数没有DataRow,但是有Row。不要以为一个事件有e.DataRow,然后所有的事件都有e.DataRow。每个事件都有什么参数,请查看帮助再使用。

隐藏审核列的代码放在什么地方?

老师你好,谢谢指导。我也在努力的学习呢,基础太差了,慢慢来吧。

下在的代码我是想让它遇到表中的锁定行就打开窗口,但代码好象是不执行呀,请老师给看看。

 

If e.Row.Locked  = True  Then
\'If user.IsRole("人事信息维护员") = False Then
    Select  Case e.Col.Name
        Case  "直接评优_理由           

            If Forms("考核评优").Opened = False Then Forms("考核评优").Open
            Forms("考核评优").Controls("TextBox1").text = e.Row(e.Col.Name)
        End  Select
    End If


 


--  作者:有点蓝
--  发布时间:2019/12/27 14:06:00
--  
代码没有问题,要点击"直接评优_理由”这个列才能弹出窗口。什么类型的窗口?并列,停靠,模式?

--  作者:nxqtxwz
--  发布时间:2019/12/27 14:12:00
--  
是独立窗口,用原来的判断是可以的,判断锁定行为什么不行呢。
--  作者:有点蓝
--  发布时间:2019/12/27 14:19:00
--  
确定这一行是锁定的?通过什么方式锁定的?

msgbox(e.Row.Locked ) ‘这里弹出什么?

If e.Row.Locked  = True  Then 
\'If user.IsRole("人事信息维护员") = False Then
    Select  Case e.Col.Name
        Case  "直接评优_理由           

            If Forms("考核评优").Opened = False Then Forms("考核评优").Open
            Forms("考核评优").Controls("TextBox1").text = e.Row(e.Col.Name)
        End  Select
    End If


--  作者:nxqtxwz
--  发布时间:2019/12/29 14:43:00
--  
以下是引用有点蓝在2019/12/27 14:19:00的发言:
确定这一行是锁定的?通过什么方式锁定的?

msgbox(e.Row.Locked ) ‘这里弹出什么?

If e.Row.Locked  = True  Then 
\'If user.IsRole("人事信息维护员") = False Then
    Select  Case e.Col.Name
        Case  "直接评优_理由           

            If Forms("考核评优").Opened = False Then Forms("考核评优").Open
            Forms("考核评优").Controls("TextBox1").text = e.Row(e.Col.Name)
        End  Select
    End If

老师,显示的是 false。

用下面的代码锁定的。

 

If e.Col.name <> "核定"  AndAlso e.Row("核定") = True Then
        e.cancel = True
    End If

[此贴子已经被作者于2019/12/29 14:46:58编辑过]

--  作者:有点蓝
--  发布时间:2019/12/29 20:47:00
--  
在prepareedit写代码控制的只是不能编辑,并不是锁定这一行,这是2个不同的概念。

把是否锁定的判断改为"核定"列的判断即可

If e.Row.Locked  = True  Then 
改为
If e.Row("核定") = True  Then