NCCloud开发-推式生成未保存单据
推式生单,源单界面打开目标单据界面,允许直接修改目标单据后保存
FuncRegisterVO funvo = WorkbenchEnvironment.getInstance() .getFuncRegisterVO("20060GBR");funvo.setClass_name("nc.ui.arap.view.ArapToftPanelAdaptor");FuncletInitData initData = null;initData = new FuncletInitData();initData.setInitType(Integer.parseInt("6666"));// BillQuery<AggGatheringBillVO> query = new// BillQuery<AggGatheringBillVO>(AggGatheringBillVO.class);IArapGatheringBillQueryService service = NC ...
NCCloud开发-联查相关
单据联查实现步骤:1.元数据设置元数据主实体实现IFlowBizItf业务接口,此接口针对联查扩展了两个字段:来源单据类型和来源单据id,将这两个属性对应到元数据的子实体对应字段上
2.单据类型注册可能是由于老脚本的原因,还有很多的单据类型配置中的“来源数据查询类”使用了5系列提供的供应链查询类,在V6.1中都需要删除,保持为空的状态,使用默认的查询类
3.按钮配置在界面上添加联查按钮Action:nc.ui.pubapp.uif2app.actions.LinkQueryAction,需要设置model和单据类型,配置如下:
<bean id="actiont18" class="nc.ui.pubapp.uif2app.actions.LinkQueryAction"> <property name="model" ref="ManageAppModel"/> <property name="billType" value="30 ...
NCCloud开发-VO常用处理类
调用单据转换规则,将一个vo转换为另一个voAggregatedValueObject[] vos = PfUtilTools.runChangeDataAry("30", "F2", SaleOrderVOs);
获取一组VO的一列值,同时保证值不重复,排除null值String[] nc.vo.ic.pub.util.VOEntityUtil.getVOsNotRepeatValue(CircularlyAccessibleValueObject[] vos, String field)或者 String[] sources = (String[]) AggVOUtil.getDistinctFieldArray(mvos,"pk_planitem", String.class);
将VO数组转换为MapMap<String, MaterialVO> map = CollectionUtils.hashVOArray(MaterialVO.CODE, materialVOQuery);
...
NCCloud开发-Servlet服务接口
NC中开发一个Servlet接口
外部Web平台向UAP平台传递数据实现方式有多种,这里介绍一种简单的在UAP平台定义Servlet的形式,外部平台去访问该服务即可,实现方式如下
首先需要在自己的项目中定义一个Servlet、参考如下,需要放在Public端
public class ChangeInfoServlet implements IHttpServletAdaptor{ @Override public void doAction(HttpServletRequest request, HttpServletResponse response) **throws** ServletException, IOException { String name = request.getParameter("name"); String password = request.getParameter("password"); //方式1设置环境变量信息 //NC6X Inv ...
NCCloud开发-常用常量
NC系统用户常量
INCSystemUserConst.NC_USER_PK=”NC_USER0000000000000”;
组织常量
全局组织 IOrgConst.GLOBEORG
默认币种(人民币) IOrgConst.DEFAULTCURRTYPE
默认国家(中国) IOrgConst.DEFAULTCOUNTRYZONE
库存模块元数据常量 ICPubMetaNameConst
NCCloud开发-业务流开发相关
摘录自PfUtilClient类,具体上下文可参考该类
前台根据单据类型编码获取节点编号String funNode = PfUIDataCache.getBillType(new BillTypeCacheKey().buildBilltype(context.getSrcBillType()).buildPkGroup(context.getPk_group())).getNodecode();IPfExchangeService exchangeService=NCLocator.getInstance().lookup(IPfExchangeService.class);//根据来源单据类型,目的单据类型获取最合适的VO转换规则ExchangeVO changeVO=exchangeService.queryMostSuitableExchangeVO(context.getSrcBillType(),context.getCurrBilltype(), null, PfUtilUITools.getLoginGroup(), null);if (changeVO != nul ...
NCCloud开发-开发内容导出部署相关
导出涉及的常用表
----------------------------元数据----------------------------名称空间 select * from md_module where id='dqy'; select * from md_component where namespace = 'dqy'; --组件select * from md_table where resmodule in( select name from md_component where namespace = 'dqy');--表select * from md_class where componentid in ( select id from md_component where namespace = 'dqy' ); --表、类select * from md_accessorpara where ( paravalue like 'nc.vo.dqyyx_%'); ...
NCCloud开发-参照开发总结
///参照类增加自定义过滤条件
public class AceBodyBeforeEditHandler implements IAppEventHandler<CardBodyBeforeEditEvent> { @Override public void handleAppEvent(CardBodyBeforeEditEvent e) { if(e.getKey().equals(PresellDetailBVO.PK_BUILDING)){ String pk_project = e.getBillCardPanel().getHeadItem(PresellHVO.PK_PROJECT).getValue(); if(null != pk_project && pk_project.length() > 0 ){ UIRefPane buildRefPane = (UIRefPane) e.getBillCardPanel(). getBodyIt ...
NCCloud开发-UPM文件说明
UPM文件格式
<?xml version="1.0" encoding="gb2312"?><module name="testEJB"> <public> <component priority="0" singleton="true" remote="true" tx="NONE" > <interface>nc.itf.sample.IHelloPub</interface> <implementation>nc.impl.sample.HelloWorldPub</implementation> </component> </public> <private> <component name="IHelloWorld" priorit ...
NCCloud开发-UI端界面操作
设置单据体页签可用状态getBillCardPanel().setTabEnabled(IBillItem.BODY, IWaGradeCommonDef.WA_SECLV, true);
获取表体按钮BillListPanel.getBodyTabbedPane().getToolBarActions()
按钮Action中设置按钮的可用状态,重写isActionEnable方法@Overrideprotected boolean isActionEnable() { return this.getModel().getAppUiState() == AppUiState.NOT_EDIT;}//同时需要将按钮加入model事件监听public void setModel(BillManageModel model) { this.model = model; this.model.addAppEventListener(this);}
如何获取功能节点号getModel().getContext().getNodeCo ...