Foxtable(狐表)用户栏目专家坐堂 → 表事件大于窗口事件要怎么处理


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

主题:表事件大于窗口事件要怎么处理

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
表事件大于窗口事件要怎么处理  发帖心情 Post By:2020/5/16 12:38:00 [只看该作者]

表事件,已审核不可编辑,窗口事件:只选中可编辑,其他不可编辑,但实际中,一直执行表事件,不执行窗口事件,尽管窗口的表设为副表,也是一样

需求是,未审核,都可以编辑,包括选中字段,已审核,只有选中字段,可编辑,其他不可编辑。

表事件
If e.Row.IsNull("审核") = False Then '如果审批列不为空
    e.Cancel = True '则禁止编辑
End If

窗口事件
 If c.Name = "选中" OrElse c.Name = "选中"
    Else
        c.AllowEdit = False
    End If

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/16 13:41:00 [只看该作者]

prepareedit事件的控制和AllowEdit 是2种不同的控制编辑用法,互不干扰。主表的prepareedit事件会同时影响主表和副本

表事件
if e.table.name = "主表名称"
If e.Row.IsNull("审核") = False Then '如果审批列不为空
    e.Cancel = True '则禁止编辑
End If
else ‘是副本
If e.Row.IsNull("审核") = False andalso e.col.Name <> "选中" Then
    e.Cancel = True '则禁止编辑
End If
end if

 回到顶部