操作校验中确认弹窗的三种实现方式
1 业务背景
在项目实战中经常有这样的需求,用户点击界面某个操作按钮,系统会经过一系列的校验,最后弹窗提示用户,“xx操作存在某项问题,是否继续操作!”,在用户点击确认之后,操作继续,或者用户点击取消,操作取消。
2 实现方案
这个需求相对来说比较普遍,在苍穹中也有多种方式来实现。下面将一一介绍。
1 在界面插件中通过showConfirm来实现
社区上已有案例,可参考文档:
https://developer.kingdee.com/article/222757573441666048?productLineId=29&isKnowledge=2&lang=zh-CN
2 通过操作配置来实现
校验级别选择 警告,允许忽略即可。
校验是配置提交操作上,在提交的时候,系统提示如下图。
同时在列表上的操作也会校验并弹窗。
3 通过操作插件来实现
在操作上配置插件,插件代码如下:
public class TestOP extends AbstractOperationServicePlugIn { public void onAddValidators(AddValidatorsEventArgs e) { AbstractValidator validator =new ReqSubmitValidator(); e.addValidator(validator); } } class ReqSubmitValidator extends AbstractValidator { @Override public void validate() { String key=this.getEntityKey(); ExtendedDataEntity[] entitys=this.dataEntities; for (int i = 0; i < entitys.length; i++) { ExtendedDataEntity entity=entitys[i]; //业务实际校验 this.addWarningMessage(entity ,"操作插件校验!"); } } }
效果如下图:
3 场景选择
上面介绍的方案都可以实现,但是却是有差异的。
1 界面插件实现的只能在当前页面生效,如果配置想要在单据和单据列表都生效,就需要配置两次插件,无法通用。
2 通过操作配置实现的可以在单据和单据列表复用,配置实现的只能实现简单的校验。不能实现复杂的跨单据校验场景。
3 通过操作插件可以实现复杂的校验场景,需要现场有二开能力。
4 两种操作(操作配置,操作插件)都可以通过OperationServiceHelper.executeOperate方法去调用生效,
如果想要忽略弹窗校验,可以参考下面代码。
OperateOption operateOption = OperateOption.create();operateOption.setVariableValue("ignorewarn", String.valueOf(true)); OperationResult result = OperationServiceHelper.executeOperate("submit", "testBill", new DynamicObject[] { billObj2 }, operateOption );
操作校验中确认弹窗的三种实现方式
1 业务背景在项目实战中经常有这样的需求,用户点击界面某个操作按钮,系统会经过一系列的校验,最后弹窗提示用户,“xx操作存在某项问题...
点击下载文档
上一篇:根据应用菜单打开不同的列表界面效果下一篇:网络互斥开发
本文2024-09-23 00:17:32发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-138532.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章