单据字段初始化有3种方式:
1)部分组件在设置页面有“缺省值”属性,可以通过设置该值,进行字段的初始化。
2)部分组件在设置页面没有“缺省值”属性,可以通过前台的js脚本,进行字段的初始化。
3)部分组件在设置页面没有“缺省值”属性,可以通过后台的Handler,进行字段的初始化。推荐使用此种方式 - - 由于页面初始化时会调用ModelCreateEvent事件,在此事件中,可进行页面model的初始化工作,此时创建的性能最佳
2.1样例配置如下图所示:
2.2关键代码:
设置页面的业务日期为当前时间
setInitialDate:function(e){
var model = me.getCurrentModel();
model.bizDate = new Date();
}
2.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显示效果:
1.配置页面
2.预览页面