以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助,在窗体上的副本表如何控制只能修改某一列? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49464) |
||||
-- 作者:topunion009 -- 发布时间:2014/4/18 12:32:00 -- 求助,在窗体上的副本表如何控制只能修改某一列? 请教下各位,在窗体中放一个Table控件绑定表A,设置为副本表,如何才能实现在此窗体中只能编辑表A的某一列,而不能编辑表A其他列。
假定设计了一个录入窗口用于录入表A的数据,要求张三负责输入第一列、第二列、第三列的内容 要实现此目的,只需在窗口的全局事件的Enter事件中设置代码: Dim ctl As WinForm.Control = e.Sender Select Case ctl.BindingField Case "表A.第一列", "表A.第二列", "表A.第三列" If User.Name = "张三" Then ctl.ReadOnly = BooleanEnum.False \'允许编辑 Else ctl.ReadOnly = BooleanEnum.True \'禁止编辑 End If End Select 参考这段代码没有起作用,不知道为何?副本表如果设置为允许编辑,每列都可以编辑了。各位帮忙看看,谢谢 |
||||
-- 作者:y2287958 -- 发布时间:2014/4/18 12:45:00 -- http://www.foxtable.com/help/topics/0605.htm |
||||
-- 作者:topunion009 -- 发布时间:2014/4/18 12:53:00 -- 我的需求不是这样的,楼上,谢谢!窗口中的Table控件,绑定表A,副本表,允许编辑,在Table控件没有PrepareEdit事件啊, 不能在表A上写这个代码,如果写上,那么其他人也不能编辑该列了。
If e.Col.Name = "第一列" AndAlso User.Group <> "经理" Then
补上代码,是在“对账单”的窗口里,想实现“对账单”中“加工单”表过滤出来的行,只能修改“清单日期”列,而不能修改其他任何列。
[此贴子已经被作者于2014-4-18 12:58:08编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2014/4/18 14:03:00 -- 回复3楼,副本表的事件也可以写在表属性里的,用e.table.name去区分
If e.Table.Name = "窗口1_Table1" Then
End If |
||||
-- 作者:lsy -- 发布时间:2014/4/18 14:03:00 --
|
||||
-- 作者:有点甜 -- 发布时间:2014/4/18 14:09:00 -- 代码类似
If e.IsFocusCell Then |
||||
-- 作者:Bin -- 发布时间:2014/4/18 14:16:00 -- .
|
||||
-- 作者:topunion009 -- 发布时间:2014/4/18 14:39:00 -- 谢谢楼上各位老师的帮助,感谢y2287958有点甜 lsy Bin |