|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
方式一 直接在前台写SQL进行查询
方式二 写类的方式
1.UI 工厂定义了 IBDGetCheckClass 接口来获得后台校验类的信息,该
接口只有一个方法 getCheckClass ,它返回后台校验类的名称。我们定义类
CardGetCheck,实现该接口,如下:
import java.io.Serializable;
import nc.vo.trade.pub.IBDGetCheckClass;
public class CardGetCheck implements Serializable,IBDGetCheckClass{
public String getCheckClass() {
// TODO Auto-generated method stub
return "nc.ui.zx.zx01.BusiCheck"; //全类名
}
}
2.在UI类中,重载getUserObject方法:
public Object getUserObject() {
return new CardGetCheck();
}
3.BS 端的 SampleBusiCheck 类就是后台校验的执行类。后台校
验执行类的接口是 IBDBusiCheck ,所有后台校验执行类都应该实现这
个接口。假设我们的单据要保证文具名不和数据库中重复,
BusiCheck类如下:
package nc.ui.zx.zx01;
import nc.bs.trade.business.IBDBusiCheck;
import nc.bs.trade.comcheckunique.BillIsUnique;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;
import nc.vo.trade.pub.IBDACTION;
public class BusiCheck implements IBDACTION, IBDBusiCheck {
public void check(int intBDAction, AggregatedValueObject vo, Object userObj)
throws Exception {
// 对保存进行验证
if (intBDAction == this.SAVE) {
this.onCheckSave(vo);
}
}
public void dealAfter(int arg0, AggregatedValueObject arg1, Object arg2)
throws Exception {
// TODO Auto-generated method stub
}
private void onCheckSave(AggregatedValueObject vo) throws Exception {
// 唯一校验工具类
BillIsUnique check = new BillIsUnique();
java.util.ArrayList unilist = new java.util.ArrayList();
unilist.add(new String[] {"name"});
try {
check.checkBillIsUnique(vo, unilist);
} catch (BusinessException e) {
throw new BusinessException("该文具已经存在");
}
}
}
方式一
在ClientEH中的onBoSave()中调用如下代码
1.非空的有效性判断
getBillCardPanelWrapper().getBillCardPanel().getBillData().dataNotNullValidate();
2.表体不能为空校验
BillModel model = getBillCardPanelWrapper().getBillCardPanel().getBillModel();
if (model != null) {
int rowCount = model.getRowCount();
if (rowCount < 1) {
getBillUI().showErrorMessage("表体行不能为空!");
return;
}
}
3.表体不重复验证
BillModel model = getBillCardPanelWrapper().getBillCardPanel().getBillModel();
int res1 = uniqueCheck(model, new String[]{"pk_task"});
if(res1 == 1){
getBillUI().showErrorMessage("任务分类有重复,不允许保存!");
return;
}
下面代码可以下载Toolkits类中
public int uniqueCheck(BillModel bm,String[] code){
int res=0;
HashMap hm=new HashMap();
for(int i=0;i<bm.getRowCount();i++){
String key="key";
for(int j=0;j<code.length;j++){
key+=bm.getValueAt(i,code[j])==null?"":bm.getValueAt(i,code[j]).toString();
}
if(hm.containsKey(key)){
return 1;
}
hm.put(key, i+"");
}
return res;
} |
|