用友nc65 uap審批流按鈕開發
阿新 • • 發佈:2019-02-10
package nc.ui.fdc_pr.h303113510.actions; import java.awt.event.ActionEvent; import nc.bs.pubapp.pf.util.ApproveFlowUtil; import nc.md.data.access.NCObject; import nc.ui.pubapp.uif2app.AppUiState; import nc.ui.pubapp.uif2app.actions.pflow.ApproveStatus; import nc.ui.pubapp.uif2app.actions.pflow.ScriptPFlowAction; import nc.ui.pubapp.uif2app.query2.action.DefaultRefreshAction; import nc.ui.pubapp.uif2app.view.ShowUpableBillForm; import nc.vo.fdc_pr.h303113510.AggRentPact; import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill; public class ValidPatchAction extends ScriptPFlowAction { /** * 生效按鈕 */ private static final long serialVersionUID = -9099914472763064509L; ShowUpableBillForm billform; private DefaultRefreshAction refreshAction; public DefaultRefreshAction getRefreshAction() { return refreshAction; } public void setRefreshAction(DefaultRefreshAction refreshAction) { this.refreshAction = refreshAction; } public ShowUpableBillForm getBillform() { return billform; } public void setBillform(ShowUpableBillForm billform) { this.billform = billform; } public ValidPatchAction(){ setBtnName("合同生效"); setCode("validAction"); } @Override public void doBeforAction() { super.doBeforAction(); } @Override public void doAction(ActionEvent e) throws Exception { super.doAction(e); } /* * 流程平臺處理需要制單人和主組織資訊 */ @Override protected void fillBusitypeAfterLight(AbstractBill[] lightVOs) { super.fillBusitypeAfterLight(lightVOs); } @Override protected String getErrorMsg() { return "合同生效失敗!"; } @Override protected boolean isActionEnable() { Object[] objs = this.model.getSelectedOperaDatas(); if (objs != null && objs.length > 1) { return true; } Object selectedData = this.model.getSelectedData(); int status = ApproveStatus.FREE; if (selectedData != null) { NCObject obj = NCObject.newInstance(selectedData); if (obj != null) { status = ApproveFlowUtil.getBillStatus(obj).intValue(); } } int volid = -1; if (selectedData instanceof AggRentPact) { AggRentPact agg = (AggRentPact)selectedData; volid = agg.getParentVO().getFpactstate(); } boolean isEnable = this.model.getAppUiState() == AppUiState.NOT_EDIT && selectedData != null; boolean flag = //最新UE規範:要求“未找到匹配審批流的單據也必須提交後才能審批,即自由態單據不能審批。” //status == ApproveStatus.FREE || status == ApproveStatus.APPROVED && volid==0; isEnable = isEnable && flag; return isEnable; } }
3.在客戶端單據動作管理中配置資訊:package nc.ui.fdc_pr.h303113510.actions; import nc.ui.pubapp.uif2app.AppUiState; import nc.ui.pubapp.uif2app.actions.pflow.ScriptPFlowAction; import nc.ui.pubapp.uif2app.view.ShowUpableBillForm; import nc.vo.fdc_pr.h303113510.AggRentPact; public class UnValidPatchAction extends ScriptPFlowAction { /** * 失效按鈕 */ private static final long serialVersionUID = 2666694877481724325L; ShowUpableBillForm billform; public ShowUpableBillForm getBillform() { return billform; } public void setBillform(ShowUpableBillForm billform) { this.billform = billform; } public UnValidPatchAction(){ setBtnName("合同失效"); setCode("unValidAction"); } @Override public void doBeforAction() { super.doBeforAction(); } @Override protected void beforeCheck(Object vo) { super.beforeCheck(vo); } @Override protected String getErrorMsg() { return "合同終止失敗!"; } @Override protected boolean isActionEnable() { Object[] objs = this.model.getSelectedOperaDatas(); if (objs != null && objs.length > 1) { return true; } Object selectedData = this.model.getSelectedData(); int status = -1; if (selectedData instanceof AggRentPact) { AggRentPact agg = (AggRentPact)selectedData; status = agg.getParentVO().getFpactstate(); } //單據為 已生效 狀態 未生效才可用 boolean isEnable = this.model.getAppUiState() == AppUiState.NOT_EDIT && selectedData != null && status == 1; return isEnable; } }