以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- prepareedit 问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160038) |
-- 作者:edisontsui -- 发布时间:2021/1/18 15:38:00 -- prepareedit 问题 Select Case e.Col.name Case "缺陷代号","缺陷数量" If user.name <> "开发者" AndAlso user.name <> "行政" e.Cancel = True End If End Select If e.Col.Name <> "会计核对" AndAlso e.Col.Name <> "录入员核对" AndAlso e.Col.Name <> "准备删除" AndAlso e.Col.Name <> "缺陷代号" AndAlso e.Col.Name <> "缺陷数量" Then If e.Row("录入员核对") = True Then \'如果此列已经核对了,则禁止修改会计核对列和录入员核对列之外的列 e.Cancel = True End If End If If e.Col.Name <> "批号" AndAlso e.Col.Name <> "录入员核对" AndAlso e.Col.Name <> "会计核对" AndAlso e.Col.Name <> "准备删除" AndAlso e.Col.Name <> "缺陷代号" AndAlso e.Col.Name <> "缺陷数量" Then If e.Row("会计核对") = True Then \'如果此列已经核对了,则禁止修改批号和录入员核对和会计核对列之外的列 e.Cancel = True End If End If 上述prepareedit代码的目的是:只允许“开发者”和“行政”两组用户对“缺陷代号”和“缺陷数量”进行编辑。但是实际执行结果是,有时候某些数据行不允许编辑,有时候全部数据行都允许编辑。所以,不知道什么原因导致的,我感觉是不是电脑内存不够导致的,还是其他原因?
|
-- 作者:y2287958 -- 发布时间:2021/1/18 15:43:00 -- 将Select Case的代码放最后面试试 |
-- 作者:有点蓝 -- 发布时间:2021/1/18 16:03:00 -- 请上传实例测试 |
-- 作者:edisontsui -- 发布时间:2021/1/20 16:56:00 -- 我把 select 改为 if 语句,似乎就可以了,先试用再说。 |