做了一个推单,记录一下:上游单据增加推单按钮,点击按钮进行单据转换,然后进入下游单据的编辑页面,

效果如图:

在上游单据增加推单按钮

点击按钮后进入下游单据编辑页面

实现方法:

step1:因为要打开下游单据,所以先修改下游单据的功能节点初始化监听类

在功能注册中找到下游单据的初始化xml

修改或者新增节点初始化监听类

 <bean id="InitDataListener"class="nc.ui.pubapp.uif2app.model.DefaultFuncNodeInitDataListener"><property name="context" ref="context" /><property name="model" ref="ManageAppModel" /><property name="voClassName" value="nc.vo.so.m30.entity.SaleOrderVO" /><property name="autoShowUpComponent" ref="billFormEditor" /><property name="queryAction" ref="queryAction" /><!-- by HHH in 2018-11-17 推单初始化处理类 --><property name="processorMap"><map><entry><key><value>8888</value></key><bean class="nc.ui.so.m30.billui.refbill.InitDataProcessorFor8888"><property name="transferProcessor" ref="transferViewProcessorFor8888" /></bean></entry></map></property></bean><!-- by HHH 2018-11-17 转单处理类 --><bean id="transferViewProcessorFor8888" class="nc.ui.pubapp.billref.dest.TransferViewProcessor"><property name="list" ref="listView" /><property name="actionContainer" ref="actionsOfList" /><property name="cardActionContainer" ref="actionsOfCard" /><property name="transferLogic" ref="defaultBillDataLogicFor8888" /><property name="billForm" ref="billFormEditor" /><property name="cancelAction" ref="cancelAction" /><property name="saveAction" ref="saveAction" /><!-- 单据提交按钮 --><property name="commitAction" ref="sendApproveAction" /></bean><!-- by HHH 2018-11-17 转单处理类 --><bean id="defaultBillDataLogicFor8888" class="nc.ui.pubapp.billref.dest.DefaultBillDataLogic"><property name="billForm" ref="billFormEditor" /></bean>
package nc.ui.so.m30.billui.refbill;import nc.funcnode.ui.FuncletInitData;
import nc.ui.pubapp.billref.dest.TransferViewProcessor;
import nc.ui.pubapp.uif2app.model.DefaultFuncNodeInitDataListener;/*** * @author HHH* 初始化转单处理类*/
public class InitDataProcessorFor8888 implements DefaultFuncNodeInitDataListener.IInitDataProcessor{private TransferViewProcessor transferProcessor;public TransferViewProcessor getTransferProcessor() {return transferProcessor;}public void setTransferProcessor(TransferViewProcessor transferProcessor) {this.transferProcessor = transferProcessor;}public void process(FuncletInitData initData) {transferProcessor.processBillTransfer(new Object[]{initData.getInitData()});}}

step2:在上游单据增加按钮

在按钮中增加以下方法

 private void add30(AggGaaIncomeContract agg) throws BusinessException{//使用单据转换规则 转换AGGIPfExchangeService exchangeService = NCLocator.getInstance().lookup(IPfExchangeService.class);SaleOrderVO aggVO = (SaleOrderVO) exchangeService.runChangeData("ICRE", "30", agg, null);int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width * 9 / 10;int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height * 9 / 10;FuncletInitData initData = new FuncletInitData();initData.setInitType(8888); //initType和下游初始化监听设置的一致initData.setInitData(aggVO);BilltypeVO[] billtypeVOs = (BilltypeVO[]) HYPubBO_Client.queryByCondition(BilltypeVO.class, "pk_billtypecode='30'");if(billtypeVOs==null || billtypeVOs.length<=0 || billtypeVOs[0]==null){return;}FuncRegisterVO funvo = WorkbenchEnvironment.getInstance().getFuncRegisterVO(billtypeVOs[0].getNodecode());//FuncletWindowLauncher.openFuncNodeForceModalDialog(model.getContext().getEntranceUI(), funvo, initData, null, false, new Dimension(screenWidth, screenHeight));//FuncletWindowLauncher.openFuncNodeDialog(model.getContext().getEntranceUI(), funvo, initData, null, false, false, new Dimension(screenWidth, screenHeight));FuncletWindowLauncher.openFuncNodeInTabbedPane(model.getContext().getEntranceUI(), funvo, initData, null, false);}

step3:清缓存测试

NC推拉单或超链接打开单据的编辑页面相关推荐

  1. U8C推拉单API开发笔记

    U8C资料 开发文档 API中心 发布自定义API 于系统信息设置节点,注册外系统信息 新增API实体类,该类需要实现IAPICustmerDevelop接口 打开postman,设置请求头,调用接口 ...

  2. K3/Cloud点按钮打开单据,列表,动态表单,简单账表和直接Sql报表示例

    BOS IDE中配置了个界面,拖了动态表单界面,加了5个测试按钮. 点击"打开单据"维护界面, 会跳转到一个新的主界面页签,[物料]新增 点击"打开列表",会弹 ...

  3. 如果希望单击超链接打开新的html,【单选题】如果希望单击超链接打开新的html页面,则需将target属性设置为 A. _blank B. _top C. _parent D. _self...

    [单选题]如果希望单击超链接打开新的html页面,则需将target属性设置为 A. _blank B. _top C. _parent D. _self 更多相关问题 一个球状蛋白质,含100个氨基 ...

  4. 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享

    开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享 一.优秀的流媒体博客资源 1.1 EasyNVR:专注于安防视频互联网化的技术 1 ...

  5. Nginx搭建RTMP推拉流服务器

    如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果. 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件 ...

  6. rsync推拉模型及结合inotify实现推模型自动同步

    一.前言 无论使用什么操作系统下,都经常有同步文件的需求,不管发生在本地,还是发生在本地和远程主机之间.那么应该怎么做呢? 使用拷贝类的命令,本地使用cp命令,复制到远程主机使用scp这样的命令,保证 ...

  7. 实现推拉ui样式_这推拉门隔断,我从没见过!直角设计同时划分3大功能区,太牛了...

    这位业主要是说自家装修第二名,我想大概不会有人愿意称第一.就说这个操作我就没见过,推拉门隔断内部,再装大白墙拼接推拉门隔断,形成一个直角设计,同时划分3大功能区,属实是太牛了! 这和邻居想让家里空间更 ...

  8. 赚钱的方法地推拉新一定算一个

    如果有能让你快速赚钱的方法,地推拉新一定算一个. 我从前天开始做快手极速版.淘宝特价版.京东极速版的拉新项目,今天是第三天,现在的数据是60单左右 做这件事给我的收获很多,第一天的时候赶上天气不好,大 ...

  9. 直播平台源码中的推拉流是什么

    关于直播平台源码中的推流和拉流,最常用的就是RTMP和RTSP协议了 推流,指的是把采集阶段封包好的内容传输到服务器的过程,推流是直播端需要完成的步骤.拉流是指服务器已有直播内容,用指定地址进行拉取的 ...

最新文章

  1. ibm linux mq 发送消息_RabbitMq、ActiveMq、Kafka和Redis做Mq对比
  2. android播放页蒙层过渡效果,EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!...
  3. CentOS安装mariadb
  4. TiDB 源码阅读系列文章(十五)Sort Merge Join
  5. html手机广告倒计时弹屏6,广告弹窗关闭倒计时(示例代码)
  6. 力扣:169. 多数元素
  7. java增加缓存,java – 如何增加Integer对象的缓存大小
  8. GDCM:gdcm::DataSet的测试程序
  9. 安装包安装服务,点修复出现的错误”Error 1001:指定的服务已存在“ 解决办法...
  10. leetcode197. 上升的温度(SQL)
  11. python docx库安装_详解python中docx库的安装过程
  12. iPhone 播放音频声音文件
  13. 线段树(单点更新,区间查询) HDU 1754 I Hate It
  14. ARP攻击的心得体会
  15. 【渝粤题库】广东开放大学 管理会计 形成性考核
  16. WPS mac怎么取消自动首字母大写
  17. Qt编写安防视频监控系统46-视频存储
  18. 解决Creo 5.0在打开stl模型后,无法查看左视图,右视图
  19. opencv 基于sift的多张图片全景图拼接
  20. 鸿蒙手机开发者申请,鸿蒙OS 2.0手机开发者Beta公开招募上线:P40/Mate 30可申请

热门文章

  1. python画菊花_python webdriver 常用元素操作
  2. AE(自动编码器)与VAE(变分自动编码器)的区别和联系?
  3. PowerDesigner和PDMReader使用经验总结
  4. 开车打电话用什么蓝牙耳机好?司机蓝牙耳机推荐
  5. 为什么LR模型损失函数使用交叉熵不用均方差?
  6. 美丽说与蘑菇街seo分析
  7. result结果返回
  8. 背水一战 Windows 10 (38) - 控件(布局类): Panel, Canvas, RelativePanel, StackPanel, Grid
  9. 江湖再见--历史一直在重演
  10. 9.程序的并行与并发