Foxtable(狐表)用户栏目专家坐堂 → 求助,在窗体上的副本表如何控制只能修改某一列?


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

主题:求助,在窗体上的副本表如何控制只能修改某一列?

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


加好友 发短信
等级:幼狐 帖子:135 积分:1097 威望:0 精华:0 注册:2013/4/17 13:49:00
求助,在窗体上的副本表如何控制只能修改某一列?  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4759 积分:34603 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/4/18 12:45:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:135 积分:1097 威望:0 精华:0 注册:2013/4/17 13:49:00
  发帖心情 Post By:2014/4/18 12:53:00 [只看该作者]

我的需求不是这样的,楼上,谢谢!窗口中的Table控件,绑定表A,副本表,允许编辑,在Table控件没有PrepareEdit事件啊, 不能在表A上写这个代码,如果写上,那么其他人也不能编辑该列了。

 

If e.Col.Name = "第一列" AndAlso User.Group <> "经理" Then
    e.Cancel = True
End
If

 

补上代码,是在“对账单”的窗口里,想实现“对账单”中“加工单”表过滤出来的行,只能修改“清单日期”列,而不能修改其他任何列。

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:xx加工厂.rar

[此贴子已经被作者于2014-4-18 12:58:08编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/18 14:03:00 [只看该作者]

 回复3楼,副本表的事件也可以写在表属性里的,用e.table.name去区分

 

 If e.Table.Name = "窗口1_Table1" Then

 

 End If


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/4/18 14:03:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:xx加工厂.foxdb


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/18 14:09:00 [只看该作者]

 代码类似

 

If e.IsFocusCell Then
    If e.Table.Name = "对账单_加工单" AndAlso e.Col.Name <> "清单日期" Then
        e.Cancel = True
    End If
End If


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/18 14:16:00 [只看该作者]

.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:xx加工厂.rar


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


加好友 发短信
等级:幼狐 帖子:135 积分:1097 威望:0 精华:0 注册:2013/4/17 13:49:00
  发帖心情 Post By:2014/4/18 14:39:00 [只看该作者]

谢谢楼上各位老师的帮助,感谢y2287958有点甜  lsy   Bin


 回到顶部