以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 行锁定问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4104) |
||||
-- 作者:lihe60 -- 发布时间:2009/8/28 11:32:00 -- 行锁定问题 采购申请单窗口如何实现这样的功能: 采购主管签署意见,部门主管就不能修改意见;采购主管删除意见,部门主管就能修改意见。 审批人签署意见,采购主管就不能修改意见;审批人删除意见,采购主管就能修改意见。
|
||||
-- 作者:yangming -- 发布时间:2009/8/28 11:45:00 -- 看你的陈述,有点晕了,下午有时间再看看文件吧 |
||||
-- 作者:yangming -- 发布时间:2009/8/28 12:07:00 -- 参看帮助 准备编辑单元格的时候执行。 e参数属性: Table: 准备编辑的表 重要提示:千万不要在PrepareEdit事件显示Messagebox这样的对话框,因为每次进入单元格就会出现提示,这样会导致死循环的出现。 示例一 我们知道,通过审核的行(锁定行)是禁止用户编辑的,但是系统提供的审核功能,非常的不灵活,因为一旦锁定,任何人都不能编辑。 我们先来看看第一种情况如何实现,假定在一个客户消费数据表,有一逻辑列,名为“已结帐”;如果某一行的已结帐列被勾选,那么我们除了经理之外,员工不可以再修改该行。 If e.Row("已结帐") = True AndAlso User.Group <> "经理" Thene.Cancel = True End If User.Group表示登录用户的分组,在用户管理中,可以给用户设置不同的组别。 再看第二种情况,假定消费表中还有一个折扣列,我们希望只有经理级别的人员,才能给客户打折,也就是只有经理级别操作人员才能在该列中输入或修改数据,实现代码同样很简单,在该表的PrepareEdit事件中输入: If e.Col.Name = "折扣" AndAlso User.Group <> "经理" Thene.Cancel = True End If 还来一个例子,我们知道易表有一个锁定非空内容的功能,也就是只有空白单元格才能输入数据,一旦输入就不能修改,在Foxtable我们也可以很轻松地实现这个功能,例如希望锁定“标注”列的非空内容: If e.Col.Name = "标注" AndAlso e.Row.IsNull("标注") = False Thene.Cancel = True End If 从上面的演示可以看出,利用PrepareEdit事件,可以带来强大的编辑控制功能,远不是系统的审核功能所能比拟的。 |
||||
-- 作者:mr725 -- 发布时间:2009/8/28 13:30:00 --
|