业务单据、基础资料,在编辑界面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();
}