创建按钮功能实现的Action
package nc.ui.hsw.actions;
import java.awt.event.ActionEvent;
import nc.ui.hsw.show.windows.SplitLineDialogNew;
import nc.ui.hsw.show.windows.SplitLineDialog;
import nc.ui.pu.m23.view.ArriveCardForm;
import nc.ui.pub.beans.MessageDialog;
import nc.ui.so.salequotation.model.SalequoModel;
import nc.ui.so.salequotation.view.SalequoBillForm;
import nc.ui.uif2.NCAction;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.so.salequotation.entity.SalequotationBVO;
public class XSBJDbuttonAction extends NCAction{
private final String btncode = "PUSH_FX";
private final String btnname = "代替品";
private SalequoModel model;
private ArriveCardForm form;
private SalequoBillForm billForm;
@Override
public void doAction(ActionEvent arg0) throws Exception {
int[] srow = null;
SalequotationBVO bvo =null;
// TODO 自动生成的方法存根
srow = this.getBillForm().getBillCardPanel().getBillTable()
.getSelectedRows(); // 当前所选界面是卡片界面
if (srow == null || srow.length == 0) {
//错误提示
ExceptionUtils.wrappBusinessException("请选一行到货单表体!");
return;
} else if (srow.length > 1) {
//错误提示
ExceptionUtils.wrappBusinessException("只能选一行到货单表体!");
return;
}
//this.getBillForm().getBillCardPanel().getBillData();
//form.getBillCardPanel().getBodyItems();
//获取当前选中的表体VO
bvo = (SalequotationBVO) this.getBillForm().getBillCardPanel().getBillModel()
.getBodyValueRowVO(srow[0], SalequotationBVO.class.getName());
if(null==bvo.getVbdef6()||"".equals(bvo.getVbdef6())){
//错误提示
MessageDialog.showErrorDlg(this.getBillForm(), "警告", "请先选择发货仓库再进行替代品选择!!");
return;
}
if(null==bvo.getNassistnum()||"".equals(bvo.getNassistnum())){
//错误提示
MessageDialog.showErrorDlg(this.getBillForm(), "警告", "请先填写数量再进行替代品选择!!");
return;
}
/*AbstractFunclet funclet = (AbstractFunclet) getModel().getContext()
.getEntranceUI();
AggSalequotationHVO custVo=(AggSalequotationHVO) this.getModel().getSelectedData();*/
//创建弹出框的对象
SplitLineDialog dlg=new SplitLineDialog(this.getBillForm(),model);
//初始化界面的数据
dlg.initData(srow[0],bvo);
//展示界面
dlg.showModal();
}
public XSBJDbuttonAction(){
this.setCode(btncode);
this.setBtnName(btnname);
}
public SalequoModel getModel() {
return model;
}
public void setModel(SalequoModel model) {
this.model = model;
}
public SalequoBillForm getBillForm() {
return billForm;
}
public void setBillForm(SalequoBillForm billForm) {
this.billForm = billForm;
}
}
按钮注册的xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 销售报价单的替代品-->
<!-- 配置卡片界面显示的按钮 actionsOfCard-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="nc.ui.pubapp.plugin.action.InsertActionInfo">
<property name="actionContainer" ref="actionsOfCard" />
<!--在何种状态下显示-->
<property name="actionType" value="edit"/>
<!--表示按钮在界面中的位置-->
<property name="target" ref="linkQueryActionGroup"/>
<property name="pos" value="after"/>
<!--将按钮的Bean放入到按钮扩展类中-->
<property name="action" ref="tidaiping"></property>
</bean>
<!-- 按钮action的类的注册 class后面跟的是action的全路径-->
<bean id="tidaiping" class="nc.ui.hsw.actions.XSBJDbuttonAction">
<property name="billForm" ref="billFormEditor" />
<property name="model" ref="manageAppModel" />
</bean>
</beans>