打开页面时给表头F7、分录F7设置默认值

怎么给单据的新增页面的某些字段添加默认值呢,一般编辑页面打开时,如果是新增,后台都会触发modelCreateEvent事件(如果是编辑某个已知单据,则触发modelLoadEvent事件)。由于F7的值是一个对象,要得到默认值的值得话,一般都要先去后台查出来,所以可以扩展modelCreateEvent事件的after后插功能。在自己的处理器中查出数据,然后放到model当中去。

1.扩展后台功能
打开页面时给表头F7、分录F7设置默认值

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.效果图

打开页面时给表头F7、分录F7设置默认值

相关样例