Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
下载信息 [文件大小: 下载次数: ] | |
点击浏览该文件:管理项目1.table |
参看帮助
PrepareEdit
准备编辑单元格的时候执行。
e参数属性:
Table: 准备编辑的表
Row: 准备编辑的行
Col: 准备编辑的列
IsFocusCell: 逻辑型,是否是焦点单元格
Cancel: 逻辑型,默认为False,设为True取消编辑。
重要提示:千万不要在PrepareEdit事件显示Messagebox这样的对话框,因为每次进入单元格就会出现提示,这样会导致死循环的出现。
示例一
我们知道,通过审核的行(锁定行)是禁止用户编辑的,但是系统提供的审核功能,非常的不灵活,因为一旦锁定,任何人都不能编辑。
也许你可能需要更灵活的审核功能,例如,可能希望某一状态下的行,对于特定的人员是可以编辑的,而对于其他人是禁止编辑的;也有一种情况,对于某一列,您可能希望得到授权的人才能编辑
我们先来看看第一种情况如何实现,假定在一个客户消费数据表,有一逻辑列,名为“已结帐”;如果某一行的已结帐列被勾选,那么我们除了经理之外,员工不可以再修改该行。
实现的代码很简单,在该表的PrepareEdit事件中输入:
If
e.Row("已结帐") = True AndAlso User.Group <> "经理" ThenUser.Group表示登录用户的分组,在用户管理中,可以给用户设置不同的组别。
再看第二种情况,假定消费表中还有一个折扣列,我们希望只有经理级别的人员,才能给客户打折,也就是只有经理级别操作人员才能在该列中输入或修改数据,实现代码同样很简单,在该表的PrepareEdit事件中输入:
If
e.Col.Name = "折扣" AndAlso User.Group <> "经理" Then还来一个例子,我们知道易表有一个锁定非空内容的功能,也就是只有空白单元格才能输入数据,一旦输入就不能修改,在Foxtable我们也可以很轻松地实现这个功能,例如希望锁定“标注”列的非空内容:
If
e.Col.Name = "标注" AndAlso e.Row.IsNull("标注") = False Then从上面的演示可以看出,利用PrepareEdit事件,可以带来强大的编辑控制功能,远不是系统的审核功能所能比拟的。
在表中进行剪切、粘贴的时候,会针对每一个可能会受影响的单元格触发PrepareEdit事件,从而让编辑控制做到滴水不漏。
下载信息 [文件大小: 下载次数: ] | |
点击浏览该文件:行锁定问题 org 管理项目1.rar |