1、提示信息输出

方法一:写在ToPanel里面的publicvoid valueChanged(ValueChangedEvent event) {方法中添加如下代码

ShowStatusBarMsgUtil.showStatusBarMsg("—→  ★正在使用综合评定登记,祝您使用愉快★",getModel().getContext());

方法二:

//定义提示信息变量

intsuccess = 0, fail = 0;

        success = success + 1;

fail = fail + 1;

StringBuffermessage=new StringBuffer();

message.append("当前选中的数据中\r\n");

if(success != 0) {

message.append("  有"+success+"条数据转入下一阶段成功\r\n");

}

if(fail != 0) {

message.append("  有"+fail+"条数据转入下一阶段失败,原因:当前阶段为最后阶段\r\n");

}

if(success!=0){

MessageDialog.showHintDlg(null, "提示",message.toString());

}else{

MessageDialog.showErrorDlg(null, "提示",message.toString());

}

    }

2、Uap63出现的错误

没有授权破解,放入破解包重启。

3、发生两个不同VO对象转换的错误

@Override

protectedboolean isActionEnable() {

Object obj = this.model.getSelectedData();//获取选择数据

if (!MMValueCheck.isEmpty(obj)) {

if(obj instanceof EmployStageVO){  //判断选择的obj数据是否属于EmployStageVO对象的数据

EmployStageVO vo=(EmployStageVO)obj;

}else{

FlightfiltrateVO vo = (FlightfiltrateVO)obj;

}

returntrue;

}

returnfalse;

}

4、该错误是产品未授权

第一步启动sysconfig

把生成的hardkey.req文件考出来登录http://udn.yyuap.com找到产品授权页

把文件上传等待审核,文件发送回来后替换对应的文件

5、单据模版、查询模版sql脚本的导出

单据模版sql脚本的导出

--查询单据模版出对应模块的pk_billtemplet

select* from pub_billtemplet where pk_billtypecode='60Hflight';

--查询出该pk_billtemplet模块下对应的字段

select* from pub_billtemplet_b where pk_billtemplet ='0001ZZ10000000005DOC' anditemkey in ('psnname','pk_post')

--1方法手动改成更新语句

updatepub_billtemplet_b set  REFTYPE='发布职位,code=N' where pk_billtemplet ='0001ZZ10000000005DOC' anditemkey='pk_post';

updatepub_billtemplet_b set  REFTYPE=''                where pk_billtemplet='0001ZZ10000000005DOC' and itemkey='psnname';

--2方法先删除对应模块的对应字段之后在插入该字段

deletefrom pub_billtemplet_b where  pk_billtemplet='0001ZZ10000000005DOC' and itemkey in ('psnname','pk_post');

insertinto pub_billtemplet_b ()values ();

查询模版sql脚本的导出

6、登陆的时候no token seed  错误

要加入

如果ncsysconfig.bat启动不起来,请直接修改home\ierp\bin\prop.xml配置文件,添加如下内容:
<fdbPath>fdb</fdbbPath>
<tokenSeed>3120edfa482109ea52613b25ca330d66</tokenSeed>
<priviledgedToken>25318f1adafaaabef2ec3e430fe198a3</priviledgedToken>

1,将附件替换uaphome\ant\lib下的同名文件. 
  2,执行ncsysconfig.bat
  3,在系统配置--安全--令牌种子,点重置,保存
    在调试状态下再次重起中间件,登陆成功.

7、发布元数据增加一个页签后报没有定义查询根据pk查找的接口或者接口定义不规范,请检查

有可能是元数据一系列的VO类中有错误,或者该节点的表中缺少对应字段

8、数据会回写后台操作

Voupdate

PersistenceManager

管理连接会话的生命周期,并提供了对单表VO操作的常用实现

可以传递构造参数选择不同的数据源

JdbcSession

对JDBC的API封装和简化

SQLParameter

封装执行SQL的参数

ResultSetProcessor

结果集处理回调接口,封装结果集处理

DbException

封装不同数据库的异常,和统一处理不同数据库的Error Code

BaseDAO / IUAPQueryBS / IVOPersistence

管理连接会话的生命周期,提供了对单表VO操作的常用实现

8、java.lang.ClassNotFoundException: nc.md.model.MetaDataException

atjava.net.URLClassLoader$1.run(URLClassLoader.java:200)

atjava.security.AccessController.doPrivileged(Native Method)

atjava.net.URLClassLoader.findClass(URLClassLoader.java:188)

atjava.lang.ClassLoader.loadClass(ClassLoader.java:307)

atjava.lang.ClassLoader.loadClass(ClassLoader.java:252)

atjava.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

atjava.lang.Class.getDeclaredMethods0(Native Method)

atjava.lang.Class.privateGetDeclaredMethods(Class.java:2427)

atjava.lang.Class.getMethod0(Class.java:2670)

atjava.lang.Class.getMethod(Class.java:1603)

atncmdp.project.MDPComponentsFactory.initProps(MDPComponentsFactory.java:159)

atncmdp.project.MDPComponentsFactory.createCompProjects(MDPComponentsFactory.java:144)

atncmdp.project.MDPComponentsFactory.getProjectData(MDPComponentsFactory.java:62)

atncmdp.util.ProjectUtil.initTreeViewer(ProjectUtil.java:426)

atncmdp.project.MDPExplorerTreeView.createPartControl(MDPExplorerTreeView.java:297)

atorg.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)

atorg.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)

atorg.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)

atorg.eclipse.ui.internal.WorkbenchPage$ActivationList.setActive(WorkbenchPage.java:4317)

atorg.eclipse.ui.internal.WorkbenchPage$18.runWithException(WorkbenchPage.java:3359)

atorg.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

atorg.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

atorg.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)

atorg.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)

atorg.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)

atorg.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)

atorg.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1600)

atorg.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

atorg.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

atorg.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)

atorg.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)

atorg.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)

atorg.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609)

atorg.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)

atorg.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)

atorg.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

atorg.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)

atorg.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

atorg.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)

atorg.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)

atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

9、从网页端登入NC系统选项为空

地址改成:

10java.lang.UnsupportedClassVersionError:nc/vo/pmpub/project/ProjectHeadVO

在对应的代码地方加上版本号

NC二开经验总结

公式相关

1.显示公式没执行

列表界面显示,卡片界面不显示:

Handler的onBoCard执行:getBillCardPanel().execHeadLoadFormulas();

Controller的isLoadCardFormula返回true

另外,字段录入长度不够时,列表显示,卡片不显示

2.带出数据执行公式

表头显示公式,执行getBillCardPanel().execHeadLoadFormulas();

表体显示公式,执行getBillCardPanel().getBillModel().execLoadFormula();

补充:上面是最简单的方法,其它自己测试。比如,指定表体行执行公式:

// 下面的方法必须设置编辑公式–- 用for循环效果等于上面的方法

getBillCardPanel().execBodyFormula(i,"pk_supdoc");

UI

1.列表界面设置可多选

public ClientUI(){

super();

getBillListPanel().setMultiSelect(true);

}

2.查询条件

UIDialog dlg = getQueryUI();

if(dlg.showModal() != 1)return;

INormalQuery query =(INormalQuery)dlg;

String sql =query.getWhereSql();

3.隐藏表体字段

BillData bs =getBillCardPanel().getBillData();

BillItem[] items =bs.getBillModel().getBodyItems();

for (int i = 0; i <items.length; i++) {

items[i].setShow(false);

}

getBillCardPanel().setBillData(bs);// 必须有这一行

4.隐藏表头字段

方法一:

billCardPanel.getHeadItem("hzdy42").getComponent().setVisible(false);

billCardPanel.getHeadItem("hzdy42").getCaptionLabel().setText("");

方法二:

billCardPanel.hideHeadItem(newString[]{"hzdy38","hzdy39","hzdy40","hzdy41","hzdy42"});

5.将AggVO显示到单据界面上

billCardPanel.setBillValueVO(aggvo);

系统变量相关

1.单据号

前置任务:配置单据号规则

创建单据号:new HYPubBO().getBillNo(单据类型, 组织, null, null);

或者:getVbillCode(单据类型,组织);

new BillcodeGenerater().getBillCode (单据类型, 组织,null,null);

2.主键

KeyGenerator.getInstance().getKey(20);

3.获取nchome路径

RuntimeEnv.getInstance().getNCHome();

4.系统变量

InvocationInfoProxy

WorkbenchEnvironment

ClientEnvironment

5.设置客户端背景色

F:\NC63\AceHome\ierp\sf\themeconf.xml

模块相关

1.添加模块

META-INF里面必须有module.xml,Sysconfig下才能找到该模块

2.单据类型没有定义所属模块

产生这个异常的原因是:单据类型没在添加在项目模块里,而是在自己的模块里,在单据类型表里:bd_billtype,把单据的systemcode改为项目模块即可

单据动作相关

1.动作注册

从pub_billaction表里复制其它单据的动作,修改单据类型、ID即可

2.动作代码路径

modules -> 单据类型所在模块 -> META-INF -> var -> source

3.按钮显示

只显示isEnabled()==true的按钮:

int[] btnAry = ((LController)getUIManageController()).getCardButtonAry();

for (int i = 0; i <btnAry.length; i++) {        getBillUI().getButtonManager().getButton(btnAry[i]).setVisible(getBillUI().getButtonManager().getButton(btnAry[i]).isEnabled());

}

单据模版相关

1.下拉字段

数据库里保存的是 0、1、2、3.。。。所以vo里对应Integer

getBillCardWrapper().initHeadComboBox("vname",new String[]{"A","B","C"}, true);

2.日期型字段

单据模板是日期型时,vo要为UFDate

3.日期型默认取值

4.查询所有的默认查询条件

5.调用模板

数据库操作相关

1. HYPubBO_Client

findColValue方法只能查询字符型字段(因为这个方法内嵌了String强转)

2.JdbcSession

JdbcSession session = null;

session = PersistenceManager.getInstance().getJdbcSession();

session =JdbcSessionUtil.createJdbcSession();

密码相关

1.root密码修改

补丁相关

1.如何打补丁

在modules里找到相应的模块,将public、private、client下的代码导出的jar包放到模块的lib文件夹下,开发工具重新加载下即可(怎么重新加载?--重启,再重启,直到开发工具能加载到刚导入的jar包里的类)

运行相关

1.启动中间件报错

2.startup.bat启动服务卡着不动

元数据相关

1.单据日期

配置文件相关

1.配置文件变量名写错

节点相关

1.打开其它节点

直接点开指定的节点,没有数据:SFClientUtil.openFrame("ZZ0102");// 下面的还没测试

参照相关

1.表头参照多选取值

((UIRefPane)billCardPanel.getHeadItem("hzdy41").getComponent()).getRefModel().getPkValues();

2.动态指定参照类

((UIRefPane)(getBillCardPanelWrapper().getBillCardPanel().getHeadItem("字段").getComponent())).setRefModel(参照类.class);

3.设置参照是否支持多选

((UIRefPane)editor.getBillCardPanel().getHeadItem("vpsn").getComponent()).setMultiSelectedEnabled(true);

4. 设置参照只显示一级

5.参照字段实现手输

6.如何知道一个字段的参照类型:

Object obj =((UIRefPane)getBillCardPanel().getHeadItem("").getComponent()).getRefModel();

Syttem.out.println(obj);

下拉相关

1. 下拉去掉空白选项

预警

1.配置

其它

1.命名规则

2.表空间的概念

3.获取用户有权限的组织

实用方法

1.获取表体所有页签名

getBillCardPanel().getBillData().getBodyTableCodes();

2.获取表体指定行的vo

getBillModel("页签名").getBodyValueRowVO(rownum, className);

3.单据状态栏打印消息

ShowStatusBarMsgUtil.showStatusBarMsg

4.获取ts

CurTime.getCurrentTimeStampString();

5.创建主键

newSequenceGenerator().generate(pk_corp,num);

6. 保留小数点后2位,并“四舍五入”

new UFDouble().setScale(2,UFDouble.ROUND_HALF_UP);

自定义查询方法

public voidqueryBodyData(String strWhere) throws Exception {

doBodyQuery(strWhere != null ? strWhere :"");

}

自定义查询方法的填充

protected voiddoBodyQuery(String strWhere) throws Exception,

ClassNotFoundException,InstantiationException,

IllegalAccessException {

SuperVO queryVos[] =getBusiDelegator().queryByCondition(

Class.forName(getUIController().getBillVoName()[2]),

strWhere != null ? strWhere :"");

getBufferData().clear();

AggregatedValueObject vo =(AggregatedValueObject) Class.forName(

getUIController().getBillVoName()[0]).newInstance();

vo.setChildrenVO(queryVos);

getBufferData().addVOToBuffer(vo);

updateBuffer();

}

自定义刷新方法¨

@Override

protected void onBoRefresh() throws Exception{

queryBodyData(null);

}

自定义删除方法

@Override

protected void onBoDelete() throws Exception {

//获得的选中的行数

introw=getBillCardPanelWrapper().getBillCardPanel().getBillTable().getSelectedRow();

System.out.println("选中的行数:"+row);

if(row==-1){//判断是否选中行数

MessageDialog.showErrorDlg(null, "错误", "必须选中一行信息,才能进行删除操作");

return;

}

if(MessageDialog.showYesNoDlg(getBillUI(),"是否删除","确定要删除!")!=UIDialog.ID_YES){//是否确认删除

return;

}else{

System.out.println("主键ID:"+getBillCardPanelWrapper().getBillCardPanel().getBillModel().getValueAt(row,"pk_cpkcquzd"));

//获得自定义的接口

McKcQd_ManageItfmcKcQd_ManageItf=NCLocator.getInstance().lookup(McKcQd_ManageItf.class);

StringBuffer sql=newStringBuffer("");

sql.append("update cp_kcquzd set dr=1wherepk_cpkcquzd='"+getBillCardPanelWrapper().getBillCardPanel().getBillModel().getValueAt(row,"pk_cpkcquzd")+"'");

mcKcQd_ManageItf.executeUpdateBySql(sql.toString());

//执行删除后刷新

queryBodyData(null);

}

}

7、插入数据

new HYPubBO().insertAry

8、生成编码的方法

getbillcode(billtype,pk_group,pk_org,null)

NC开发笔记——NC63开发方法总结相关推荐

  1. springboot thymeleaf配置_【程序源代码】Spring Boot 开发笔记web开发实战1

    关键字:<Spring Boot 开发笔记>系列文章 各位亲爱的小伙伴:大家好! <Spring Boot 开发笔记>系列文章 这套笔记和源码是我自己在学习springboot ...

  2. ESP32 开发笔记(一) 开发板简介

    开发板购买链接https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=626366 ...

  3. Windows辅助开发笔记-辅助开发逻辑思路

    最近自己有一个小项目. 涉及好几个框架和好几门语言.当涉及windows程序时.完成某个功能要优先从以下几点入手 1.  首先考虑使用句柄以及后端发送消息能不能实现功能(最好是用这种解决分辨率的问题) ...

  4. STM32MP157开发笔记 | 02 - 开发环境搭建(A7核、M4核)

    一.STM32MP157 1. 系列介绍 STM32MP157微处理器基于灵活的双Arm® Cortex®-A7内核(工作频率800 MHz)和Cortex®-M4内核(工作频率209 MHz)架构, ...

  5. Unity3D之VR开发笔记@Oculus开发UNITY环境搭建

    Oculus DK2是一款经典的虚拟头盔设备,这类游戏也在与日俱增,使得这种头盔的使用越来越吸引眼球,笔者喜欢玩VR游戏,也更爱好设计自己的VR游戏,从事UNITY3D开发虚拟现实游戏时间并不长,入门 ...

  6. 云炬WEB开发笔记 2-1开发环境搭建

  7. 【Python】开发笔记

    [Python]开发笔记 1. 开发工具篇 1)前言 2)VScode VScode搭建Python环境 简明教程 3)Pycharm 4)Visual Studio 5)Jupyter Lab/Ju ...

  8. 开发笔记之数字证书(一):数字证书介绍

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  9. STM32开发笔记77: 内部看门狗长延时的产生

    单片机型号:STM32L053R8T6 开发笔记STM32开发笔记45:看门狗驱动程序的移植介绍了看门狗驱动程序的基本设计方法.今天项目中看门狗的延时时间达到10秒,则实际运行效果只有3秒. 以下是看 ...

最新文章

  1. mongodb中简单的聚合查询
  2. 第四次产业革命将由四个领域引领:大数据、新材料、新能源和生物科技。
  3. win10 看不到其它计算机,w10网上邻居搜索不到其它电脑怎么办
  4. 数据库分页和使用jstl标签替换分页的jsp代码
  5. 使用C#像google/zx一样编写脚本
  6. Mysql学习总结(12)——21分钟Mysql入门教程
  7. werkzeug routing.MapAdapter
  8. iOS 内购详解及遇到的坑
  9. Visio—如何画矩形虚线边框?
  10. 车牌识别opencv_基于OpenCV 的车牌识别
  11. Flex弹性布局详细介绍
  12. csirs参考信号_发送和接收点(TRP)及信道状态信息参考信号(CSI-RS)传输的方法与流程...
  13. 小程序实现公农历选择器
  14. c语言程序画正八边形,用少儿编程绘制一个正九边形
  15. 蓝牙【GATT】协议介绍
  16. Latex引用参考文献的5种方式
  17. 系统中flvplayer.swf播放器的使用及配置
  18. P1135 奇怪的电梯(BFS)
  19. 颜色 16进制表示 一一对应
  20. Ubuntu下pip安装CPU版PaddlePaddle

热门文章

  1. Android 泽宇Glide和Picasso框架之间的区别与应用
  2. VLDB 2023 | 北大河图发布分布式训练神器Galvatron,一键实现大模型高效自动并行...
  3. 手把手教你如何远程连接云服务器(图文教程)?
  4. TensorFlow实战14:实现估值网络(强化学习二)
  5. 【Windows任务管理器硬盘监控功能异常】任务管理器磁盘读写功能异常,无任何数据
  6. 手把手教你做一个自己的chrome扩展程序
  7. Audio声音模式定制--声音大小定制
  8. Java 工具类 - 银行卡校验 BankCardUtil
  9. js实现桌面录屏功能
  10. C练题笔记之:Leetcode-13. 罗马数字转整数