怎么给单据的新增页面的某些字段添加默认值呢,一般编辑页面打开时,如果是新增,后台都会触发modelCreateEvent事件(如果是编辑某个已知单据,则触发modelLoadEvent事件)。由于F7的值是一个对象,要得到默认值的值得话,一般都要先去后台查出来,所以可以扩展modelCreateEvent事件的after后插功能。在自己的处理器中查出数据,然后放到model当中去。
1.扩展后台功能
1.后台逻辑处理,往model中赋初始值
public class ModelCreateEventExtHandler extends AbstractModelCreateEventHandler {
@Override
protected IApplication getApplication() {
// TODO Auto-generated method stub
return ApplicationSessionContext.getApplication();
}
public void onModelCreate(ModelCreateEvent event) throws WafException,BOSException {
super.onModelCreate(event);
try {
IObjectValue model = event.getModel();
// 查出表头默认的审核人
UserInfo auditor = UserFactory.getRemoteInstance().getUserByID(new ObjectUuidPK("0neDVi62QEOjlkIFhMP7yxO33n8="));
model.put("auditor", auditor);
// 查出分录默认的物料
MaterialInfo item = MaterialFactory.getRemoteInstance().getMaterialInfo(new ObjectUuidPK("p4AAAAAADexECefw"));
IObjectCollection entrys = (IObjectCollection) model.get("entrys");
if (entrys.size() == 0) {
// 如果没有分录的话默认加一个
NetOrderEntryInfo entry = new NetOrderEntryInfo();
entry.setItem(item);
entrys.addObject(entry);
} else {
for (int i = 0; i < entrys.size(); i++) {
entrys.getObject(i).put("item", item);
}
}
} catch (EASBizException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3.效果图