单据字段初始化

1.样例说明

单据字段初始化有3种方式:
1)部分组件在设置页面有“缺省值”属性,可以通过设置该值,进行字段的初始化。
2)部分组件在设置页面没有“缺省值”属性,可以通过前台的js脚本,进行字段的初始化。
3)部分组件在设置页面没有“缺省值”属性,可以通过后台的Handler,进行字段的初始化。推荐使用此种方式 - - 由于页面初始化时会调用ModelCreateEvent事件,在此事件中,可进行页面model的初始化工作,此时创建的性能最佳

2.前台方式

2.1样例配置如下图所示:
单据字段初始化

2.2关键代码:
设置页面的业务日期为当前时间

setInitialDate:function(e){
    var model = me.getCurrentModel();
    model.bizDate = new Date();
}

2.3显示效果:
单据字段初始化

3.后台方式

3.1样例配置如下图所示:
单据字段初始化

3.2关键代码:

package com.kingdee.eas.custom;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.eventbus.event.model.ModelCreateEvent;
import com.kingdee.bos.webframework.context.WafContext;
import com.kingdee.bos.webframework.dynamic.handler.model.WebModelCreateEventHandler;
import com.kingdee.eas.base.permission.UserFactory;

public class InitialCreatorHandler extends WebModelCreateEventHandler  {

	@Override
	public void handleOther(ModelCreateEvent event, IObjectValue model){
		// TODO Auto-generated method stub
		IObjectValue userInfo;
		try {
			userInfo = UserFactory.getRemoteInstance().getValue(WafContext.getInstance().getContext().getCaller());
			
			if (userInfo.isEmpty()||userInfo==null) {		//如果没有用户,默认初始化一个用户
				userInfo = new UserInfo();
				userInfo.setString("name", "administrator");
				userInfo.setString("id", "00000000-0000-0000-0000-00000000000013B7DE7F");
			}
			
			model.put("creator", userInfo);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

3.3显示效果:
单据字段初始化

4.样例演示

1.配置页面

2.预览页面

相关样例