先上效果:
操作前:
操作后:
添加按钮步骤一:
步骤二:
添加后确定,并发布业务单元(单据**biz)生成相关文件
切换到 设计视图下 打开 **EditUI 在大纲 视图下
用扩展控件 添加 接收 并更改属性
更改一下属性
SampleReceiveSendRegBillEditUIPIEx.java 代码如下:
public void onLoad() throws Exception {
super.onLoad();
this.setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize());
//进入单据界面判断 接收状态
if(editData.getReceivePerson()!=null){
this.contreceivePerson.setEnabled(false);//接收人灰显
this.contreceiveDate.setEnabled(false);//接受日期灰显
this.btnReceive.setEnabled(false);//接受按钮灰显
}
}
//接收
public void actionReceive_actionPerformed(ActionEvent e) throws Exception {
ObjectUuidPK pk = new ObjectUuidPK(editData.getId());
this.contreceivePerson.setEnabled(false);//接收人灰显
this.contreceiveDate.setEnabled(false);//接受日期灰显
this.btnReceive.setEnabled(false);//接受按钮灰显
//调用 后台逻辑
SampleReceiveSendRegBillFactory.getRemoteInstance().receive(editData);
MsgBox.showInfo("接收人和接收日期填写成功!");
//更改值后刷新编辑页面
this.editData = ((SampleReceiveSendRegBillInfo) getValue(pk));
setDataObject(this.editData);
loadFields();
setSave(true);
setSaved(true);
}
SampleReceiveSendRegBillControllerBeanEx.java 代码如下:
//后台接收方法
protected void _receive(Context ctx, IObjectValue model)throws BOSException {
SampleReceiveSendRegBillInfo billInfoModel = (SampleReceiveSendRegBillInfo)model;
try {
String useInfoID = ContextUtil.getCurrentUserInfo(ctx).getId().toString();
UserInfo userInfo = UserFactory.getLocalInstance(ctx).getUserInfo(new ObjectUuidPK(useInfoID));
//PersonInfo person = PersonFactory.getLocalInstance(ctx).getPersonInfo(new ObjectUuidPK(userInfo.getPersonId().toString()));
billInfoModel.setReceivePerson(userInfo.getPerson());//获取接收人
billInfoModel.setReceiveDate(new Date());//接受日期
SampleReceiveSendRegBillFactory.getLocalInstance(ctx).update(new ObjectUuidPK(billInfoModel.getId().toString()), billInfoModel);
} catch (EASBizException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}