业务场景:单据编码、身份证号等字段,如果需要全局唯一,保存数据时需要进行数据校验。
系统中存在对应数据并且非本条数据的情况下,违反全局唯一的限定。
改方法需要在verifyInput(ActionEvent e)方法中调用。
/**
* 编码是否已经存在
* 已存在该编码的话,警告并中断程序
*/
private void isExistsNumber() throws Exception {
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("number", editData.getNumber()));
if(editData.getId() != null){
filter.getFilterItems().add(new FilterItemInfo("id", editData.getId(), CompareType.NOTEQUALS));
}
boolean exists = ReportFactory.getRemoteInstance().exists(filter);
if(exists){
Utils.warning(this, "报表编码不允许重复,请重新录入!");
}
}
/**
* 警告并中断程序,用于前端
* @param comp 父控件
* @param msg 警告消息
*
*/
public static void warning(Component comp, String msg){
MsgBox.showWarning(comp, msg);
SysUtil.abort();
}