以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助 编辑行  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=148191)

--  作者:long086
--  发布时间:2020/4/1 21:37:00
--  求助 编辑行

在一个窗口中 一个 修改按钮 想点击 修改按钮 可以修改 窗口表中(锁定了)选中行,其他的不允许修改

 

Tables("表A").Current.AllowEdit = True

 

这个代码错的,就是想表达这个意思,什么实现


--  作者:2900819580
--  发布时间:2020/4/1 21:41:00
--  
Tables("表A").Current.Locked = True
--  作者:long086
--  发布时间:2020/4/1 21:43:00
--  
谢谢,我想修改,这个表已经锁定了,这样试了不行
[此贴子已经被作者于2020/4/1 21:45:30编辑过]

--  作者:2900819580
--  发布时间:2020/4/1 21:57:00
--  
Tables("表A").AllowEdit = True
Tables("表A").Current.Locked = false

--  作者:long086
--  发布时间:2020/4/1 21:59:00
--  
谢谢,这样其他的行是不是也能编辑了
--  作者:2900819580
--  发布时间:2020/4/1 22:17:00
--  
以下是引用long086在2020/4/1 21:59:00的发言:
谢谢,这样其他的行是不是也能编辑了

这要看你要想干什么,如果想设定权限,如某种 条件下可以编辑,而某种条件下不可以,建议你在参考以下帮助来写

假定有两个用户分组,分别为经理和雇员,经理有审批和取消审批的功能,某行一旦通过审批,将禁止修改。

为此可以增加一个逻辑型列,名为“审批”,然后将表事件PrepareEdit的代码设置为:

If e.Col.Name = "审批" Then \'只有经理才能审批
    If User.Group <> "经理"  Then
        e.Cancel = True
    End
If

ElseIf
e.Row("审批") = True Then \'如果此行已经审批了,则禁止修改
    e.Cancel = True

End
If


--  作者:long086
--  发布时间:2020/4/1 22:25:00
--  

谢谢指点 ,我是想在一个窗口中  窗口中一个表 锁定了,不允许编辑。

 

窗口中 一个      修改按钮      选中一行   然后点击    修改按钮    可以修改 选中行,其他的不允许修改,窗口表中(锁定了)。

 


--  作者:2900819580
--  发布时间:2020/4/1 22:30:00
--  
我的想法是,在你的建一列叫“修改”
修改按钮代码 
Tables("表A").DataTable.DataCols.Add("修改",Gettype(Integer))
Tables("表A").AllowEdit = True
Tables("表A").DataTable.ReplaceFor("修改",1)
Tables("表A").Current("修改") = 0

PrepareEdit的代码
If e.Col.Name <> "修改" Then
   If e.Row("修改") = 1 Then e.Cancel = True
end if
[此贴子已经被作者于2020/4/1 22:33:00编辑过]

--  作者:long086
--  发布时间:2020/4/1 22:35:00
--  
谢谢,我试试
--  作者:2900819580
--  发布时间:2020/4/1 22:37:00
--  
Tables("表A").DataTable.DataCols.Add("修改",Gettype(Integer)) 这句更改为 If Tables("表A").Cols.Contains("修改") = False Then Tables("表A").DataTable.DataCols.Add("修改",Gettype(Integer))