本示例在用友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;}@Overridepublic String getTitle() {// TODO Auto-generated method stubreturn null;}@Overridepublic 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单据UI基本代码示例相关推荐

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

    原地址: http://blog.csdn.net/softwave/article/details/8781220 本示例在用友NC57环境下调试通过 最近在做基于NC的二次开发,这种封闭的系统文档 ...

  2. NC高级UI工厂笔记

    NC高级UI工厂笔记 本篇文章主要介绍了"NC高级UI工厂笔记",主要涉及到NC高级UI工厂笔记方面的内容,对于NC高级UI工厂笔记感兴趣的同学可以参考一下. 1.控制按钮是否可见 ...

  3. 用友NC V6.3打造集团企业高效信息平台

    近年来,随着互联网快速发展,信息化管理的应用也越来越普及,信息化建设已经深入到很多企业的核心业务,而且为了确保业务稳定.可靠并快速.有效地 开展,企业经常会运用多个信息系统进行辅助支撑,但是,许多企业 ...

  4. 用友NC产品接口开发,通过轻易云数据集成平台快速调用

    通过用友NC产品的 UAP V63平台.插件相关处理.相关业务逻辑处理课程目标与要求课程内容课程目标与要求业务逻辑处理外部系统信息设置节点新建外部系统默认匹配规则:仅按对照表:外部系统数据与UAP. ...

  5. 泛微OA-E9和用友NCC单据接口对接

    来源系统:用友NCC 用友NCCloud,大型企业数字化平台,聚焦数字化管理.数字化经营.数字化商业,帮助大型企业实现人.财.物.客的全面数字化,从而驱动业务创新与管理变革,与企业管理者一起重新定义未 ...

  6. 用友nc操作手册_铁军人物汤轩宇, 入职两年,她用努力和汗水编制出单户试算操作手册...

    她在财务部一个默默无闻的工作岗位辛勤工作,大家不了解她的工作内容,当然也未知个中的艰辛,但她的岗位对于公司来说非常重要,所以她不敢有丝毫的怠慢,无论工作有多么艰难都要加班加点完成,她就是汤轩宇,201 ...

  7. 查看用友NC的版本方法(不启动NC,只看NCHOME)

    查看用友NC的版本方法(不启动NC,只看NCHOME) 在 nchome\ncscript 目录下随便一个模块 文件夹下面 有个 setup.ini文件 里面就有版本信息version 一般 uap模 ...

  8. 用友NC 漏洞汇总(转载)

    komomon 编码安全研究 2022-11-21 09:09 发表于北京 免责声明 本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不 ...

  9. 用友NC远程命令执行漏洞通告

    用友NC远程命令执行漏洞通告 360-CERT [三六零CERT](javascript:void(0)

最新文章

  1. 通过COLA看应用架构
  2. C函数 mktemp
  3. SSH工具Secure Shell Client的sitting窗口显示不全和窗口页面大小问题解决办法
  4. zsh和bash的切换,默认shell,alias拼接组合多条命令
  5. excel换行按什么键_电脑结束任务按什么键
  6. 地面指示标志_消防应急照明和疏散指示标志设置要求,图文详解
  7. 读《scikiit-learn机器学习》黄永昌第三章
  8. 吴恩达深度学习笔记 第二章作业1
  9. Day-04 基础数据类型list, tuple
  10. Mac升级macOS Big Sur之前如何优化并增加内存空间?
  11. 现实世界的Windows Azure:采访Definition 6首席技术官Paul Hernacki
  12. 平衡二叉树的插入与删除
  13. office2010所做更改会影响共用模板normal
  14. oracle12C以逗号隔开怎么写,10g之后支持中文逗号作为查询分隔符
  15. uniapp+egg.js获取微信步数(wx.getWeRunData)
  16. Python itertools accumulate函数详解
  17. 硅芯思见:SystemVerilog中unpacked数组的assignment pattern
  18. [转]linux shell 正则表达式(BREs,EREs,PREs)差异比较
  19. 第六届蓝桥杯大赛个人赛决赛(C/C++大学B组)
  20. sanic教程-Sanic 应用

热门文章

  1. 用Python写一个最简单的计时秒表
  2. 【I2C】I2C QA
  3. 安信可ESP32-CAM摄像头开发demo--广域网远程实时查看视频流
  4. 简易的监控mysql_使用开源工具mysqlreport监控Mysql数据库-简易使用方法
  5. wechat 报警的实现方法
  6. 定积分的概念及可积条件
  7. js监听浏览器关闭事件(区分刷新和关闭,兼容IE9,10,11,Edge,Chrome和Firefox)
  8. 试用分析一国宏观经济内外均衡的过程及其政策搭配
  9. 杂记-2018.04.09
  10. Linux下获取cpu温度