使用“校验规则”和 “插件操控弹窗”的正确姿势原创
金蝶云社区-louismartin
louismartin
2人赞赏了该文章 805次浏览 未经作者许可,禁止转载编辑于2022年12月27日 21:30:53

我们通常使用代码去控制一个窗口的弹出

this.getView().showForm(xxx);

那这样的代码应该放在什么事件里面呢?

        通常情况下是通过点击按钮去触发弹窗,那我们在选择事件的时候就可能会选择 BeforeDoOperation 或者 AfterDoOperation,甚至是其他的click事件,那其实都是可以触发成功的,但是如果我们想使用界面设计器给这个按钮添加一个规则,比如状态不是审核通过的,就不能弹出这个窗口,这种情况下对事件的选择就有要求了。

        先给出标准答案,在AfterDoOperation中使用:

@Override
    public void afterDoOperation(AfterDoOperationEventArgs args) {
        OperationResult operationResult = args.getOperationResult();
        // 此处能够获取页面配置的校验规则的执行结果
        if (operationResult != null && !operationResult.isSuccess()) {
            return;
        }
        FormOperate formOperate = (FormOperate) args.getSource();
        String operateKey = formOperate.getOperateKey();
        if (xxxxx.equals(operateKey)) {
            this.getView().showForm(xxx);
        }
    }

为什么不能在BeforeDoOperation中使用? 因为这个事件发生在校验之前

图标赞 2
2人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0