自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 home解压时windows系统特别卡

我们搭建NC各个版本的开发环境,需要解压home,一般home都不会小,这是系统的防御系统会扫描你的解压文件,暂用大量的cpu和内存,所以系统卡。解决方法如下:把你平常项目文件夹设置到排除项里。

2023-04-26 23:30:01 100

原创 NC6 列表设置合计多选

NC6

2022-08-18 23:42:07 196

原创 缩短NC6服务启动的时间

换JDK,最好使用home里的ufjdk,使用开发工具自带的会慢近两倍的时间,追了3天代码,得出这个结论。

2021-04-27 01:58:46 315 1

原创 dom4j 复制节点及其子节点

主子表数据,生成一个比较复杂的xml,子表可能有多条数据,由于标签很多,有几百个,所以手写代码,太复杂而且写完可读性不强,也不方便维护。所以想到读取一个模板,然后通过末尾标签的name来setText的方式生成,然而有个问题就是子表多条时,怎么复制一份子表的tree来,然后set值(模板里肯定只能维护一个子表的tree)。首先试了直接add(element)的方法,因为有父节点所以报错了,然后试了clone和craetcopy,但是只能复制自己不能复制字节点,上网搜了下,也是不行只能复制自己,而且clone

2021-01-26 03:26:57 1119

原创 NC 同一个表,执行insert生效,执行update无效

检查你的建表的时候主键的长度是不是大于20位!!!!!!!!!!

2021-01-24 07:50:26 432 1

原创 NC6 单据模板设置是否显示

update PUB_BILLTEMPLET_B set LISTSHOWFLAG=‘Y’,SHOWFLAG=1,这句脚本虽然可行,但是如果元数据属性hided = 'N’的话,还是不能显示,所以元数据的hided = 'N’优先级大于PUB_BILLTEMPLET_B 的设置优先级。代码是BillItemDesignVOAdpter.gerValue所以设置元数据的md_property.hided属性值才能真正生效,涉及到元数据修改,一定要记得清客户端缓存!...

2020-09-23 03:43:55 356

原创 NC ws接口事务的处理方案

我们知道NC中事务同一的逻辑是,如果一次远程调用过程中没有异常,则调用结束前提交事务,否则不提交。而我们一般ws接口,为了友好性,异常不往外抛(如果抛异常无需处理),这种情况下,如果有事务则事务无法统一。我的处理方案是,再写一个远程组件用来处理,需要做事务统一的逻辑。...

2020-09-18 21:19:16 599

原创 NC6 语义模型复制不能修改

看代码AssetUtils.canModify((SmartDefVO)obj)所以,一般从综合控股集团(pk_industry=0)复制的语义模型用在其他行业(集团里定义)要修改语义模型的ASSETINDUSTRY字段的值(对应pk_industry)

2020-09-02 23:46:46 200

原创 nc65 关于uapws模块启用

如果有代码洁癖比如我,在65环境写ws接口时,喜欢将接口发布在uapws模块下,这样接口比较多的时候,就不用分模块建项目了,但是65没有这个模块了,所以要新建,这里讲一个容易忽视的坑,在抽补丁的时候容易,把module.xml文件漏了,导致接口无法部署ejb,所以在测试或者生产环境无法访问。...

2020-08-06 18:01:08 1523

原创 NC6 关于去除Int类型千分位符号

//将Integer类型千分位去除,重新设置渲染器(继承BillTableCellRenderer重写setValue)BillItem[] bodyItems = listPanel.getBodyBillModel().getBodyItems();TableColumnModel columnModel = listPanel.getChildListPanel().getTable().getColumnModel();for (int i = 0; i < bodyItems.leng

2020-07-29 10:09:48 231

原创 NC6 关于打印

//打印模板信息 //Select * From Pub_Systemplate Where Tempstyle=3 String pkCorp=getModel().getContext().getPk_org(); String funCode="20080EBM"; String pkUser=getModel().getContext().getPk_loginUser(); String nodeKey="cheque"; //参数为父窗口 PrintEntry print .

2020-07-24 21:46:24 620

原创 NC6 关于多语

1.在开发环境的resources下建多语配置文件,补丁也同样打入resources下2.properties必须是UTF-16的编码,否则无法加载,中文必须是UCS-2 BE BOM编码,否则无法正常显示,可以使用Notepad++编辑3.变量多语 NCLangRes.getInstance().getString("cheque", null, "2cheque-000017", null, new String[] { String.valueOf(i + 1),name });4.重

2020-07-24 21:27:01 940

原创 Java 实时读取文件

package nc.fei.util;import java.awt.BorderLayout;import java.awt.Cursor;import java.awt.Dimension;import java.awt.Insets;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import jav

2020-06-21 15:40:33 758

原创 NC6 uap项目引入行业代码和jar包

假设现在hytest模块下有lib包和二开的class代码,一般我们新建uap项目是不会将hyext下的class文件引入工程的,但我们可以尝试手动引入添加外部类文件夹,将class文件夹和lib下的jar包添加进来这就和我们模块里client,public,private一样了如果要进行二开,就添加对应的源文件夹就行了抽补丁时,把路径手动改下就行了...

2020-06-11 13:34:55 940

原创 NC6 使用NIO实现消息推送

1.需求背景在nc人力资源模块有些业务计算非常耗时,比如薪资,排班,假期等等,在服务器使用Nginx等反向代理的情况下,不会进行长时间的等待,而且长时间等待也是非常不好的体验。所以将计算做成异步任务就应运而生,即服务器收到请求后,另起线程执行任务,请求线程直接响应回去。如此不会影响客户端进行其他操作,但是任务在后台运行,前端需要可以查询相关任务的进度。那么进度信息可以通过两种方式进行反馈,一是客户端进行轮询,二是服务端实时推送,第一种方式比较简单不做赘述,这里讲第二种方式的实现。2.实现依赖NIO,N

2020-06-10 22:17:34 420

原创 NC6 关于凭证接口的坑

昨天开始,帮一个老客户处理一个通过接口保存的凭证,凭证号重复的问题。追了很深的代码,从ws实体转换,到凭证号生成和断号处理。有两个问题一定要处理完善,不然接口有问题。1.生成凭证号。如果凭证号字段为空,调用系统凭证保存组件时,系统会使用独立事务,自动生成凭证号,逻辑就是根据账簿,类型,期间在库里存有当前最大号,然后+1。为了防止并发时查询值的时候重复,系统做法是,在同一个事务中,先执行一句update进行锁表,然后查询,补号,设值,跟新最大值,事务提交后,解锁。期间如果有线程访问,由于表被锁,在执行upd

2020-05-24 05:55:24 1243

原创 NC6 锁

最近由于用户使用反向代理,而代理服务器的读取超时只有1分钟,所以在NC上执行较长时间的业务需要改成异步任务,并且提供异步任务监控,由此避免客户端发送IO异常和提升用户体验,这其中涉及到并发情况下的锁的问题,事务的问题,调用信息的问题和token信息的问题,这里我讲讲我阅读NC6锁的相关代码的几点笔记原理:所有锁信息存在单例对象成员位置的一个同步容器里,加锁即put,如果锁存在加锁时返回false,解锁即remove,具体实现可以看LockService4DataSource这个类普通锁: 需要

2020-05-22 12:27:48 371

原创 NC 测试代码执行效率小工具

package fei.time.test;import java.io.PrintStream;import nc.bs.logging.NCSysOutWrapper;public class TimeFei { private static Long lastTime; public static void fei(Long currTime,boolean isnull){ if (isnull) { lastTime = null; } if(lastTime !

2020-05-08 21:27:17 313

原创 NC 关于二开提升用户体验的几点经验

迄今为止,我认为NC系列的产品是一款非常优秀的产品,不论从业务逻辑和技术框架上来说都是非常专业的。NC本身对二开的限制放的很开,是为了方便因地制宜,提升用户体验,但往往由于二开的时候不够规范,用户体验极差,反而用户抱怨极大,最后甚至放弃使用,直接换产品了。一. 前端友好性1.加载界面。弹出加载动画的时候,一定要指定好父容器,否则会将整个界面覆盖,无法进行其他节点的操作,只能等着一个节点,计算加...

2020-04-19 16:40:09 389

原创 关于Java并发问题的两点理解

1.对同一个对象(单例,静态方法访问的都是同一个对象)的成员变量,多线程操作,会有并发问题2.对同一个对象的局部变量,方法参数,多线程操作,不会有并发问题所以在方法内部不用担心并发,而在调用静态方法和单例对象的时候要小心并发。欢迎讨论,指正!...

2020-04-19 06:00:21 234

原创 NC 获取语义模型里的sql

package junit;import java.util.List;import nc.bs.framework.common.InvocationInfoProxy;import nc.bs.framework.common.NCLocator;import nc.bs.framework.core.service.IFwLogin;import nc.bs.framework...

2020-04-17 01:18:52 979

原创 NC upm文件的问题

有时候写个内部远程调用的接口,总是部署不成功,原因就是upm文件有问题,很多人喜欢复制upm文件,导致上面定义了很多没有必要的属性,其实写upm文件的时候,在定义属性的时候,只要设置remote为ture,可以远程调用就行了...

2020-04-14 21:14:52 2820 4

原创 NC servlet(http接口)开发

访问地址:ip+port/service/组件名1.实现IHttpServletAdaptor接口2.发布为组件(upm),设置组件名,将accessProtected=“false”,如果为ture,将会进行token验证

2020-04-14 20:58:39 2837 2

原创 NC6 JUnit测试

1.节省客户端启动时间2.节省做数据的时间直捣黄龙,简单粗暴直接继承AbstractTestCase写测试类,不需要注解,右键选择JUnit启动即可package fei.test.test;import nc.bs.framework.common.InvocationInfoProxy;import nc.bs.framework.common.NCLocator;import...

2020-04-10 15:52:49 617 3

原创 NC6 对组件进行AOP编程

1.用声明一个切面类,注解用法没有什么特殊的,注意,advice一定要指定匹配类型(patternType=PatternType.method)package nc.bs.uap.aop;import java.lang.reflect.Method;import nc.bs.framework.aop.After;import nc.bs.framework.aop.Around;...

2020-04-09 18:42:57 657

原创 NC6 弹窗显示网页

今天无聊,打开uap论坛,看到一个帖子在问,怎么在Dialog里显示网页。看了里面的答案说是用JWebBrowser(需要引入第三方jar包),然后试了试,应该由于jar包没有找对,怎么都没成功。后来就自己想,怎么实现,想到Eclipse里不正好有内置浏览器吗?于是去插件文件夹里搜下“browser”关键字,还真搜出来一个jar包,打开里面的类,有看到关联到了org.eclipse.swt.win...

2020-04-06 19:47:41 351

原创 NC sql信息打印控制台

首先追下代码,知道NC的日志是由Log4jLoggerPlugin执行,写一个子类继承重写log方法,然后将自己写的子类,配置在System.property里,在启动时所有日志就会使用你自己的类了,然偶挑出专门打印sql的日志进行控制台输出就行了。(当然,直接去查日志也是可以的,只是为了开发方便)...

2020-04-03 22:12:08 926 1

原创 NC ws接口防XXE注入

有风险的地方有两个1.接口返回xml的格式化操作,SoapFormatAction,但是一般都打了补丁做了处理实际上还可以在org.apache.xalan.transformer.TransformerIdentityImpl里解析之前加上下面代码也可以防止注入2.调用接口时,一般来说如果服务是由home里startup.bat/startup.sh来启动的话是不会有风险的,但如果服务是由...

2020-04-03 20:13:19 661

原创 NC 在后台使用System.out打印

1.NC不能使用的原因,在启服务的时候,是将System.out替换成了自己写的PrintStream(NCSysOutWrapper),会将打印信息打印到sysout这个日志里2.通过NCSysOutWrapper这个包装类得知,一下几种方式可以恢复打印功能1>将System.out强转为NCSysOutWrapper,直接打印NCSysOutWrapper nc = (NCSysO...

2020-04-03 20:08:02 918

原创 Beyond Compare 4 密钥被吊销

C:\Users\用户名\AppData\Roaming\Scooter Software\Beyond Compare 4下的BCState.xml删除即可

2020-03-27 13:34:50 1398

原创 NC 一次更新1000条以上数据

InSQLCreator isc = new InSQLCreator();String inSQL = isc.getInSQL(pks);这个类可以生成in语句,数据操作可以达到1000条以上,但是使用时注意只能在后台使用,由于在开发环境不会报错,所以要注意...

2020-02-27 11:44:55 774

原创 NC6 业务参数操作

一、新增业务参数应用管理平台—开发配置工具—参数模板设置二、获取业务参数nc.pubitf.para.SysInitQuery

2020-02-09 16:14:42 1275

原创 JAVA 文件类型识别

1.文件类型通常在前几个字节,所以只读50个字节就够了,但千万不要把流关了byte[] b = new byte[50];is.read(b);is.close();否则在后续继续 读该输入流时会报流关闭异常2.用来识别文件类型的这50个字节要第一时间写入到输出流中os.write(b);否则输出流中会少了这50个字节的内容导致文件破坏3.记住io流只能读取一次...

2020-01-15 15:27:23 677

原创 NC 点击图片放大

package hrhi;import java.awt.Container;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Toolkit;import javax.swing.ImageIcon;import javax.swing.JPanel;import nc.ui.pub.bean...

2019-12-27 16:29:07 196

原创 NC生成主键类

OidGenerator

2019-12-26 21:43:26 2114

原创 NC按钮增加风车加载页面

1、如果此节点已有按钮由此功能,找到他含有IProgressMonitor属性的父类,继承就行,但注意,model属性不要再提供getset方法,否则父类model属性会为空。2、自己写,通过TPAProgressUtil 获取带风车的幕布组件,而且要另起线程(比如SwingWorker),但一定要记得finally里关掉,if (monitor != null) {monitor.done...

2019-12-26 21:26:42 507

原创 NC自定义日志输出

1.自己写日志处理类package nc.ws.log;import nc.bs.logging.Log;public class DimissionLog {private String logid = “dimission”;private Log log =Log.getInstance(logid);//根据logid配置,在指定位置创建日志文档,用于日志输出public v...

2019-12-26 21:18:13 2858 3

原创 NC附件管理

5系列就是要注意对附件,使用jdk自带工具,进行压缩后保存(否则nc端打开附件会出现乱码) AttachmentVO attachmentVO = new AttachmentVO(); attachmentVO.setPk_corp(info.getString("pk_corp")); attachmentVO.setPk_user(info.getString("pk_user"))...

2019-12-26 21:15:14 2025

原创 NC 开发环境没事,运行环境异常

1、由于nc使用EJB的方式调用private包下的代码,private下的jar包和二开代码都有访问限制,所以运行环境client、public包下一定不能直接调用private包下类(但是private可以调用public),只能通过NCLocator反射调用public下的接口(直接反射调用也是不行的),一定要配置upm文件,并且要重新部署EJB,否则报类找不到异常。之所以开发环境没事,因为...

2019-12-26 21:13:11 719

原创 three.js 地质应用的简单介绍

three.js 地质应用的简单介绍因为项目需要,偶然之下接触了three.js这个插件,网上大多只是对基本的使用进行介绍,也没有有经验的同事朋友,所以为了完成项目要求,只得自己进行研究学习。由于本身有别的项目,所以只能利用晚上和周末的时间,如有不足和错误之处,还请大神批评指正。一、基本介绍三大基本要素:你首先要了解的是场景、相机和渲染器,网络上资料很多,这里我说下我的理解。场景相当于画布...

2019-12-14 20:36:44 1730 9

NC开发常用代码.txt

NC开发常用代码,调用接口,弹出询问窗口,判断模板状态,打开另一个节点,可以自行选择弹窗的样式,当前选中树的数据,前界面显示的子表名称.......

2020-04-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除