Foxtable(狐表)用户栏目专家坐堂 → 请帮助


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

主题:请帮助

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


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
请帮助  发帖心情 Post By: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


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


加好友 发短信
等级:超级版主 帖子:111418 积分:567166 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By: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


 


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


加好友 发短信
等级:超级版主 帖子:111418 积分:567166 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/27 14:06:00 [只看该作者]

代码没有问题,要点击"直接评优_理由”这个列才能弹出窗口。什么类型的窗口?并列,停靠,模式?

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


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

是独立窗口,用原来的判断是可以的,判断锁定行为什么不行呢。

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


加好友 发短信
等级:超级版主 帖子:111418 积分:567166 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:111418 积分:567166 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/29 20:47:00 [只看该作者]

在prepareedit写代码控制的只是不能编辑,并不是锁定这一行,这是2个不同的概念。

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

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

 回到顶部