1. 参照开发
系统参照的用法
UIRefPane ref = new UIRefPane();
Ref.setRefNodeName(nc.vo.bd.ref.RefNodeNameConst.DEPTDOC);
nc.ui.bd.ref.IBusiType这个类里定义了参照对应的具体类
自定义参照
自己定义的参照类一般都继承自nc.ui.bd.ref.AbstractRefModel这个抽象类
下面列举一些常用的方法:
public String[] getFieldCode() // 返回参照字段对应的表字段编码
public String[] getFieldName() //返回参照字段对应的显示名称
public String getPkFieldCode() //返回主键字段编码
public String getRefTitle() //返回参照名称
public String getTableName() //返回查询的表名称,可以是表连接语句
public String[] getHiddenFieldCode() //返回参照的隐藏字段
public int getDefaultFieldCount() //返回参照的默认字段数量
public String getWherePart() //返回查询条件
如果需要实现一些特殊的参照,比如树结构的参照,则应该继承AbstractRefTreeModel类
2. ClientUI类常用方法
protected ManageEventHandler createEventHandler() //返回UI的事件处理类
protected AbstractManageController createController() //返回UI画面的控制类
protected BusinessDelegator createBusinessDelegator() //返回UI的业务处理类
protected void initSelfData() //初始化UI界面,比如设置精度
protected void initEventListener() //初始化单据监听,比如:BillCardBeforeEditListener
public abstract void setDefaultData() throws Exception //设置界面默认数据
3. 多表的树结构(比如说,显示部门下的人员)
NC的树结构一般都是单表,那么parentid在数据表里也是对应的主键值。那么多表的时候只需在返回数据vo的时候, 手动把父节点的数据添加进去就可以了。
比如说:部门和人员的树结构
在自己定义的TreeData中的getTreeVO方法中:
public SuperVO[] getTreeVO() {
PsndocVO[] result = null;
DeptdocVO[] deptdocvos = null;
try {
BusinessDelegator business = new BusinessDelegator();
String sql = " isnull(dr,0)=0";
result = (PsndocVO[]) business
.queryByCondition(PsndocVO.class, sql);
deptdocvos = (DeptdocVO[]) business
.queryByCondition(DeptdocVO.class, null);
} catch (Exception e) {
e.printStackTrace();
}
PsndocVO[] results = new PsndocVO[result.length + deptdocvos.length ];
for (int i = 0; i < deptdocvos.length; i++) {
PsndocVO vo = new PsndocVO();
vo.setPk_psndoc(deptdocvos[i].getPk_deptdoc());
vo.setPsncode("");
vo.setPsnname(deptdocvos[i].getDeptname());
results[i] = vo;
}
for (int i = 0; i < result.length; i++) {
results[deptdocvos.length + i] = result[i];
}
return results;
}
完整的TreeData代码:
public class TreeData implements IVOTreeDataByID {
public String getIDFieldName() {
return "pk_psndoc";
}
public String getParentIDFieldName() {
return "pk_deptdoc";
}
public String getShowFieldName() {
return "psncode,psnname";
}
public SuperVO[] getTreeVO() {
PsndocVO[] result = null;
DeptdocVO[] deptdocvos = null;
try {
BusinessDelegator business = new BusinessDelegator();
String sql = " isnull(dr,0)=0";
result = (PsndocVO[]) business
.queryByCondition(PsndocVO.class, sql);
deptdocvos = (DeptdocVO[]) business
.queryByCondition(DeptdocVO.class, null);
} catch (Exception e) {
e.printStackTrace();
}
PsndocVO[] results = new PsndocVO[result.length + deptdocvos.length ];
for (int i = 0; i < deptdocvos.length; i++) {
PsndocVO vo = new PsndocVO();
vo.setPk_psndoc(deptdocvos[i].getPk_deptdoc());
vo.setPsncode("");
vo.setPsnname(deptdocvos[i].getDeptname());
results[i] = vo;
}
for (int i = 0; i < result.length; i++) {
results[deptdocvos.length + i] = result[i];
}
return results;
}
}
如果涉及到表增加,则只需按照添加部门那样增加一个for循环即可。同时把第一个循环中的parentid改为新增的表id。 在这里parentid指的是pk_deptdoc
4. 从后台去掉自定义项引用
NC提供自定义项的引用,也就是备用字段的使用,但是引用完了以后不能修改,如果不想使用了又不能删除。只能从后 台解除引用。
bd_defdef 自定义项定义表,先从这个表中找到定义的自定义项记录pk_defdef
select pk_defdef from bd_defdef where defname='';
这里的名字即单据上显示的名称
然后从bd_defquote引用表中去掉pk_defdef内容而pk_defused表示表中字段
select bd_defquote.rowid,bd_defquote.* from bd_defquote where pk_defdef='';
注意在解除引用后,需要将被引用字段值置空,因为重新引用自定义项时,如果字段值不为空将引用失败,原因是自定义 项引用时默认会检查字段值是否为空。
5. 显示自定义项
private void dealDefShow(){
String [] strDefObjs=new String[] {"ARAP单据头"};
String [] strPrefix=new String[] {"zyx"};
try {
new ManageDefShowUtil(this.getBillCardPanel(), this.getBillListPanel()).showDefWhenRef(strDefObjs,strPrefix, true);
} catch (Exception e) {
Logger.error(e.getMessage(), e);
}
}
6. 后台获得登录日期
String date = InvocationInfoProxy.getInstance().getDate();
UFDate loginDate = new UFDate(Long.parseLong(date));
7. NC主画面的头部信息位置。
1. 注销、快速切换、日志、帮助按钮的代码在 nc.ui.sm.desktop.SysFuncBtnPanel
2. 未读消息、代办事务、预警消息的代码在 nc.ui.sm.desktop.MsgCenterInfoPnl
3. 公司+用户+日期的代码在 nc.ui.sm.desktop.DesktopTopBar
4. 快捷码的代码在 nc.ui.sm.desktop.QuickCodePanel
5. 配置文件在nchome\modules\uap\META-INF\clientplugins\uap.plugin
8. 参照相关的类
参照事件类:nc.ui.bd.ref.RefModelHandlerForClient
主要方法:getRefTableVO(String pk_corp)
参照显示的列标题:nc.vo.bd.ref.RefcolumnVO
获得名称方法:getFieldshowname()
系统参照查询:nc.bs.bd.ref.ReftableImpl
方法:findByNode(String refNodeName, String pk_corp)
9. 查询模板设置默认值的系统变量。
#Sys_Account#,
#Sys_Year#,
#Sys_Month#,
#Sys_Date#,
#Sys_Operator#,
#Sys_department#,
#Sys_CurrCorp#
分享到:
相关推荐
### 用友NC二次开发指导手册知识点概览 #### 一、建立NC环境 - **内容概述**:这部分内容介绍了如何构建一个适用于用友NC软件的开发环境,包括数据库搭建、NC安装配置以及Eclipse集成开发环境的设置等。 - **详细...
本章节详细介绍如何搭建适合用友NC二次开发的开发环境,包括必备的开发工具、配置方法等。 ##### 2.2 实例讲解 - **2.2.1 加入NC开发所需的MDE插件** - **知识点**:MDE插件是用友NC开发的重要工具之一,主要用于...
《用友二次开发工具在分销与零售系统的应用详解》 用友二次开发工具,作为一款专为用友软件量身定制的开发辅助平台,极大地简化了企业信息化建设过程中的复杂编程工作,使得非专业程序员也能高效地进行系统扩展与...
内包含百度云下载网址,用友NC63 NC6.3 NC65 NC6.5 UAP二次开发通用
《用友NC开发API字典》是一份专为开发者准备的重要参考资料,主要涵盖了在使用用友NC(U8+)系统进行二次开发时所涉及的各种应用程序接口(API)。API是软件之间的桥梁,允许不同的系统之间交换数据和执行操作,极大...
用友NC6.3参照开发关键技术是基于用友UAP平台的二次开发技术,旨在帮助开发者快速掌握NC6.3的开发技术。以下是该技术的关键点解释: 1. 前言 NC6.3参照开发关键技术是基于用友UAP平台的二次开发技术,旨在帮助...
NC二次开发速查手册 只是做了简单的描述 对新手可能有帮助 老手就忽略吧
表单默认执行方法以及常用的操作 3 四.在报表中显示合计行 4 五.在UI类中设置小数位数 5 六.将表体数据清空 5 七.设置字段是否可编辑的状态 5 八.在UI类中编写方法打印查询条件 6 九.弹出提示框 6 十.在报表...
用友NC5X 二次开发 eclipse 插件 这个东西网上很少有下载的!!特地方便各位朋友~~
【NC二次开发】是指在用友NC(Nova Cloud)系统的基础上进行定制化开发,以满足企业特定业务需求的过程。NC系统是由用友软件股份有限公司研发的一款大型企业管理软件,广泛应用于财务管理、供应链管理、生产制造等多个...
用友NC65-uapstudio webservice开发配置说明文档 用友NC65-erp开发工具uapstudio进行开发webservice时,需要对开发工具进行必要的设置。以下是uapstudio中的webservice开发配置说明: 一、UAPStudio中的webservice...
为了方便不用打开ERP直接看 库存台账,这个是用C#来写的!我们已经能做到只要查询数据的客户端,都不能用ERP,而用自己开发的工具。目的是减少客户端使用ERP。 我们一般不用什么用友的API,直接跟数据库就OK了!
### NC二次开发个人总结 #### 一、NC5.7的安装及配置 **1.1 安装过程** - **解压安装包**: 首先需要解压缩NC5.7的安装包,解压成功后可以看到安装所需的文件夹。 - **执行安装**: 按照解压后的文件夹内的指示顺序...
### NC二次开发指南知识点梳理 #### 一、NC二次开发概览 - **目标与背景**:本指南旨在为读者提供全面深入的NC系统二次开发指导,帮助读者从零开始逐步掌握NC系统的定制与扩展能力。 - **适用人群**:面向初学者至...
用友U8与Nc二次开发的常见问题,可用于做用友二次开发的速查资料
《用友NC6.5数据字典》是针对企业信息化管理软件用友NC V6.5版本的一个核心参考资料,主要用于支持NC系统的二次开发工作。数据字典在软件开发中扮演着至关重要的角色,它详细记录了系统中的数据实体、属性以及它们...
【用友NCC NC bip二开idea开发插件】是一个专为IntelliJ IDEA设计的扩展工具,旨在提升开发者在进行用友NCC(New Cloud Computing)和NC(New Company)项目二次开发时的效率。这个插件集成了许多实用功能,能够帮助...
### 用友NC移动审批H5移动APP知识点详解 #### 一、产品概述 用友NC移动审批是一款专为用友NC系统设计的移动应用程序,它支持NC6.5和NC5.7等多个版本,旨在帮助企业实现高效便捷的移动办公体验。通过这款应用,用户...