以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]窗口功能 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68888) |
-- 作者:wusim -- 发布时间:2015/5/27 6:59:00 -- [求助]窗口功能 要求: 1、当确认列不为空,锁定行,只有角色是“电梯审核“,且审核列为空时,可以编辑审核退回意见,只有是角色是批准,且审核列不为空时,可以编辑审批退回意见。 2、当确认列为空,除了审核退回意见列和审批退回意见列,不能编辑。其他列可以编辑。 在prepareEdit写入代码: Select Case e.Col.name Case "审核退回意见", "批准退回意见" If e.Row.IsNull("确认") = False Then If e.Col.Name = "审核退回意见" Then If User.Isrole("电梯审核") = False Or e.Row.IsNull("审核") = False Then e.Cancel = True End If Else If e.Col.Name = "批准退回意见" Then If User.Isrole("审批") = False Or e.Row.IsNull("审核") = True Then e.Cancel = True End If End If Else e.cancel = True End If Case Else If e.Row.IsNull("确认") = False Then e.cancel = True End If End Select Dim ctl As WinForm.Control = e.Sender If ctl.Name <> "单位查找" AndAlso ctl.Name <> "出厂编号查找" Then If Tables("表A").Current.DataRow.SQLGetValue("确认").Gettype.Name = "DBNull" Then \'确认是空值 ctl.ReadOnly = BooleanEnum.False \'可以编辑 Else ctl.ReadOnly = BooleanEnum.True \'禁止编辑 End If End If [此贴子已经被作者于2015/5/27 7:16:24编辑过]
|
-- 作者:Bin -- 发布时间:2015/5/27 8:34:00 -- 代码是一样的. 把 e.row 改为 tables("表名").current e.col.name 改为 e.sender.name
|
-- 作者:大红袍 -- 发布时间:2015/5/27 9:13:00 -- 或者,你可以在datacolchanging事件写代码,代码和prepareEdit的事件基本一致col换成DataCol,row换成DataRow |