eas里客户端保存,提交里增加校验规则和必填
业务单据、基础资料,在编辑界面EditUI中进行必录校验时,可以直接从界面绑定的数据对象editData中获取值,无需通过界面控件取值。
对于单据头中的属性值,通过editData可以直接通过get方法获取到属性值。对于分录中的数据,可以先获取分录集合,然后遍历分录集合,进行非空校验。
在暂存、保存save、提交submit时,框架会自动调用verifyInput必录校验方法。此时,界面控件中的值已经封装到界面对象中,因此无需直接从控件中取值。
protected void verifyInput(ActionEvent e) throws Exception { VerifyClientUtils.input(this, editData.getEasCompanyNumber(), "EAS公司编码不能为空!"); VerifyClientUtils.input(this, editData.getEasCompanyName(), "EAS公司名称不能为空!"); VerifyClientUtils.input(this, editData.getErpCompanyNumber(), "erp公司标识不能为空!"); VerifyClientUtils.input(this, editData.getErpCompanyName(), "erp公司名称不能为空!"); AdminOrgUnitInfo easCompany = this.editData.getEasCompanyNumber(); String oql = "where easCompanyNumber = '"+easCompany.getId().toString()+"'"; //已经维护的eas公司不能再维护 if (!EmptyUtil.isEmpty(editData.getId())) { oql = oql +" and id !='"+editData.getId().toString()+"'"; } BICompanyRelfCollection info = BICompanyRelfFactory.getRemoteInstance().getBICompanyRelfCollection(oql); if (!EmptyUtil.isEmpty(info)) { MsgBox.showWarning("EAS编码"+easCompany.getNumber()+"公司已维护erp公司映射关系"); SysUtil.abort(); } }
下面VefifyClientUtils的部分代码,包含了常见的一些校验规则,可以复制后使用
package com.kingdee.eas.custom.utils; import java.awt.Component; import com.kingdee.bos.dao.IObjectCollection; import com.kingdee.eas.framework.CoreBaseInfo; import com.kingdee.eas.util.SysUtil; import com.kingdee.eas.util.client.MsgBox; /** * @Description: 客户端校验工具类 * @author zhangLiangfeng * @date */ public class VerifyClientUtils { /** * 必录校验,用于前端输入检查 * 参数为空时弹出警告信息并中断程序 * @param comp 父控件 * @param param 参数 * @param warning 警告信息 * @author zhangLiangfeng * */ public static void input(Component comp, String param, String warning){ if(param == null || param.trim().length() == 0){ MsgBox.showWarning(comp, warning); SysUtil.abort(); } } /** * 必录校验,用于前端输入检查 * 参数为空时弹出警告信息并中断程序 * @param comp 父控件 * @param param 参数 * @param warning 警告信息 * @author zhangLiangfeng * */ public static void input(Component comp, Integer param, String warning){ if(param == null){ MsgBox.showWarning(comp, warning); SysUtil.abort(); } } /** * 必录校验,用于前端输入检查 * 参数为空时弹出警告信息并中断程序 * @param comp 父控件 * @param param 参数 * @param warning 警告信息 * */ public static void input(Component comp, Object param, String warning){ if(param == null){ MsgBox.showWarning(comp, warning); SysUtil.abort(); } } /** * 必录校验,用于前端输入检查 * 参数为空时弹出警告信息并中断程序 * @param comp 父控件 * @param param 参数 * @param warning 警告信息 * @author zhangLiangfeng * */ public static void input(Component comp, CoreBaseInfo param, String warning){ if(param == null){ MsgBox.showWarning(comp, warning); SysUtil.abort(); } } /** * 必录校验,用于前端输入检查 * 参数为空时弹出警告信息并中断程序 * @param comp 父控件 * @param param 参数 * @param warning 警告信息 * @author zhangLiangfeng * */ public static void input(Component comp, IObjectCollection param, String warning){ if(param == null || param.isEmpty()){ MsgBox.showWarning(comp, warning); SysUtil.abort(); } } /** * 警告并中断程序,用于前端 * @param comp 父控件 * @param msg 警告消息 * */ public static void warning(Component comp, String msg){ MsgBox.showWarning(comp, msg); SysUtil.abort(); } /** * 警告并中断程序,用于前端 * @param comp 父控件 * @param msg 警告消息 * */ public static void warning(Component comp, StringBuffer msg){ MsgBox.showWarning(comp, msg.toString()); SysUtil.abort(); } }
linux下的docker操作命令及异常