金蝶EAS,编辑界面EditUI必录校验,业务校验,单据头及分录必输校验

xiaoxiao2021-02-28  102

业务单据、基础资料,在编辑界面EditUI中进行必录校验时,可以直接从界面绑定的数据对象editData中获取值,无需通过界面控件取值。

对于单据头中的属性值,通过editData可以直接通过get方法获取到属性值。对于分录中的数据,可以先获取分录集合,然后遍历分录集合,进行非空校验。

在暂存、保存、提交时,框架会自动调用verifyInput必录校验方法。此时,界面控件中的值已经封装到界面对象中,因此无需直接从控件中取值。

/** * 必录校验 */ protected void verifyInput(ActionEvent e) throws Exception { VerifyUtil.input(this, editData.getNumber(), "报表编码不能为空!"); VerifyUtil.input(this, editData.getName(), "报表名称不能为空!"); VerifyUtil.input(this, editData.getTitle(), "标题分录(取数类型)不能为空!"); VerifyUtil.input(this, editData.getItem(), "项目分录(报表项目)不能为空!"); isExistsNumber(); //编码是否存在 ReportTitleCollection titles = editData.getTitle(); for(int i = 0; i < titles.size(); i++){ ReportTitleInfo title = titles.get(i); VerifyUtil.input(this, title.getTypeName(), "取数类型分录第" + (i + 1) + "行名称不能为空!"); VerifyUtil.input(this, title.getColumnNo(), "取数类型分录第" + (i + 1) + "行列号不能为空!"); if(VerifyUtil.isNull(title.getType()) && title.isIsValid()){ Utils.warning(this, "取数类型分录第" + (i + 1) + "行,取数类型为空时,无法参与取数!"); } } ReportItemCollection items = editData.getItem(); for(int i = 0; i < items.size(); i++){ ReportItemInfo item = items.get(i); VerifyUtil.input(this, item.getItemName(), "报表项目分录第" + (i + 1) + "行名称不能为空!"); VerifyUtil.input(this, item.getRowNo(), "报表项目分录第" + (i + 1) + "行行号不能为空!"); VerifyUtil.input(this, item.getColumnNo(), "报表项目分录第" + (i + 1) + "行列号不能为空!"); if(VerifyUtil.isNull(item.getItem()) && item.isIsValid()){ Utils.warning(this, "报表项目分录第" + (i + 1) + "行,报表项目为空时,无法参与取数!"); } } }

必录校验常用代码片段:

/** * 必录校验,用于前端输入检查 * 参数为空时弹出警告信息并中断程序 * @param comp 父控件 * @param param 参数 * @param warning 警告信息 * @author 郭旭 * */ 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 郭旭 * */ 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 警告信息 * @author 郭旭 * */ 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 郭旭 * */ 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 郭旭 * */ 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); abort(); } /** * 警告并中断程序,用于前端 * @param comp 父控件 * @param msg 警告消息 * */ public static void warning(Component comp, StringBuffer msg){ MsgBox.showWarning(comp, msg.toString()); abort(); }

转载请注明原文地址: https://www.6miu.com/read-46153.html

最新回复(0)