(FAQ)单据审批界面,如何加入并显示单据自身的功能按钮
1,352次浏览
编辑于2015年03月02日 00:00:00
【问题】: (FAQ)单据审批界面,如何加入并显示单据自身的功能按钮
版本: 6.0
模块: 工作流管理
【答复】:
在框架中已经暴露暴露了一个接口,如果单据有这样的需求,只需将需要增加到审批界面的单据按钮填充到接口中即可。接口定义: //工作流审批合并用户自定义控件,由业务实现 protected List mergeMultiApproveButton(){ } 只需要将业务的按钮增加到List,返回即可 例如: 我们这边一个客户需要在工作流的审批节点实现一个功能:提交前能够先保存单据的数据,在以后的某个时间点再提交单据,请问应该怎么实现这个功能,请指点一下。可以将这种功能在多级审批界面上提供单独的按钮和菜单支持,需要一点二次开发,将功能封装到按钮上,然后将此按钮增加到工作流审批界面上。 1. 功能封装,需要二次开发自己根据功能开发 2. 按钮或菜单集成到审批界面,可以按照如下方式: 将业务的按钮加载多级审批的工具条上 两种方式: a.业务二次开发单据实现IWorkflowUISupport接口,并自己实现IWorkflowUIEnhancement接口即可,具体请查看接口的申明和使用说明。需实现关键方式getApporveToolButtons b.在二次开发单据中实现基类的mergeMultiApproveButton方法,将需要添加到多级审批界面的按钮添加到此方式即可。 代码示例: 第一种方式: 如单据UI为DemoBillEditUI public class DemoBillEditUIextends CoreBillEditUI implements IWorkflowUISupport { public IWorkflowUIEnhancement getWorkflowUIEnhancement() { DemoWFEnhancement demoWFEnhancement = new DemoWFEnhancement(); //增加一些业务功能菜单 List aList = new ArrayList(); menuView.getItem(0).setVisible(false); menuView.getItem(1).setVisible(false); menuView.getItem(2).setVisible(false); menuView.getItem(3).setVisible(false); aList.add(menuView); demoWFEnhancement.setMenuList(aList); //增加业务功能按钮 List buttonList = new ArrayList(); buttonList.add(button1); buttonList.add(button2); demoWFEnhancement.setApproveToolbar(buttonList); return demoWFEnhancement; } } DemoWFEnhancement extends DefaultWorkflowUIEnhancement{ List menuList = null List toolBarList = null; public List getApproveMenus(CoreUIObject uiObject) { return menuList; } public List getApporveToolButtons(CoreUIObject uiObject) { return toolBarList; } public String getQueryFieldNameBindingWf(CoreUIObject uiObject) { return "id"; } public boolean enableEntryProcess(BOSObjectType objectType) throws Exception { return false; } public void setApproveToolbar (List list) throws Exception { menuList = list; } 。。。。。。。 } 第二种方式: 需要在单据中实现mergeMultiApproveButton方法: protected List mergeMultiApproveButton(){ List bnList = new ArrayList(); bnList.add(业务按钮); 。。。。。。。。。。 return bnList; }
版本: 6.0
模块: 工作流管理
【答复】:
在框架中已经暴露暴露了一个接口,如果单据有这样的需求,只需将需要增加到审批界面的单据按钮填充到接口中即可。接口定义: //工作流审批合并用户自定义控件,由业务实现 protected List mergeMultiApproveButton(){ } 只需要将业务的按钮增加到List,返回即可 例如: 我们这边一个客户需要在工作流的审批节点实现一个功能:提交前能够先保存单据的数据,在以后的某个时间点再提交单据,请问应该怎么实现这个功能,请指点一下。可以将这种功能在多级审批界面上提供单独的按钮和菜单支持,需要一点二次开发,将功能封装到按钮上,然后将此按钮增加到工作流审批界面上。 1. 功能封装,需要二次开发自己根据功能开发 2. 按钮或菜单集成到审批界面,可以按照如下方式: 将业务的按钮加载多级审批的工具条上 两种方式: a.业务二次开发单据实现IWorkflowUISupport接口,并自己实现IWorkflowUIEnhancement接口即可,具体请查看接口的申明和使用说明。需实现关键方式getApporveToolButtons b.在二次开发单据中实现基类的mergeMultiApproveButton方法,将需要添加到多级审批界面的按钮添加到此方式即可。 代码示例: 第一种方式: 如单据UI为DemoBillEditUI public class DemoBillEditUIextends CoreBillEditUI implements IWorkflowUISupport { public IWorkflowUIEnhancement getWorkflowUIEnhancement() { DemoWFEnhancement demoWFEnhancement = new DemoWFEnhancement(); //增加一些业务功能菜单 List aList = new ArrayList(); menuView.getItem(0).setVisible(false); menuView.getItem(1).setVisible(false); menuView.getItem(2).setVisible(false); menuView.getItem(3).setVisible(false); aList.add(menuView); demoWFEnhancement.setMenuList(aList); //增加业务功能按钮 List buttonList = new ArrayList(); buttonList.add(button1); buttonList.add(button2); demoWFEnhancement.setApproveToolbar(buttonList); return demoWFEnhancement; } } DemoWFEnhancement extends DefaultWorkflowUIEnhancement{ List menuList = null List toolBarList = null; public List getApproveMenus(CoreUIObject uiObject) { return menuList; } public List getApporveToolButtons(CoreUIObject uiObject) { return toolBarList; } public String getQueryFieldNameBindingWf(CoreUIObject uiObject) { return "id"; } public boolean enableEntryProcess(BOSObjectType objectType) throws Exception { return false; } public void setApproveToolbar (List list) throws Exception { menuList = list; } 。。。。。。。 } 第二种方式: 需要在单据中实现mergeMultiApproveButton方法: protected List mergeMultiApproveButton(){ List bnList = new ArrayList(); bnList.add(业务按钮); 。。。。。。。。。。 return bnList; }
推荐阅读