nc细节点

nc细节点

1.每个新home都要替换这个xml文件

注意:不替换有可能创建元数据时,特性–>单据主表/单据子表会没有

在这里插入图片描述

2.新建的自定义档案所在的路径

在这里插入图片描述
在这里插入图片描述

3.在已经发布好的单据上新加一个表体时生成Java源代码的注意事项

可以重新生成Java源代码到其他路径位置上,然后再去生成的路径上把新加的表体VO拿到工作空间里面就可以了

4.rest.properties的路径

在这里插入图片描述

5.sql语句

//修改自定义参照的参照名称的sql
//md_class是实体表,displayname是显示名称
select id from md_class where displayname like '%税盘编号%'
//refmodelname是参照名称
update md_class set refmodelname = '税盘编号(自定义档案)-自定义' where id='100lAZ10000000332L5P'

//通过 自定义档案列表编码 查询 自定义档案主键,自定义档案编码,自定义档案名称
//自定义档案列表编码:ZDY_YXLX,ZDY_TBLX...
//自定义档案编码:01,02...
select pk_defdoc,code,name from bd_defdoc where pk_defdoclist =
(select pk_defdoclist from bd_defdoclist where code = '自定义档案列表编码')

//通过单据类型查询单据名称
select * from bd_billtype where pk_billtypecode = 'YH04'

//查询具体参照名
select * from bd_refinfo where name like'%客户%'

//查询下游单据
select forwardbilltype from bd_billtype where pk_billtypecode='YH06'

//删除表
drop table yhlx_yhlypxhtfkd

//pub_billtemplet单据模板表
select * from pub_billtemplet where modulecode like 'H6%'


//删除表中全部数据
delete from yhlx_yhlypxhtfkd

//实体[xxx]没有实现制定的业务接口:nc.itf.uap.pf.metadata.IHeadBodyQueryItf
//classid对应值换成报错的实体id,执行完一定要点提交才能生效,提交后重启服务
insert into md_bizitfmap
  (bizinterfaceid,
   bizitfimpclassname,
   classattrid,
   classattrpath,
   classid,
   dr,
   industry,
   intattrid,
   ts,
   versiontype)
values
  ('5205ef20-5eae-4c75-bad8-16639152e622',
   null,
   null,
   null,
   'f8402ac6-042a-4734-b254-4b76efd3fba6',
   null,
   null,
   '5205ef20-5eae-4c75-bad8-16639152e622',
   '2018-05-16 11:39:09',
   null);

6.前端获取数据要用到的方法

//空字符型数据处理,null返回UFDouble.ZERO_DBL
NullValueUtils.getNullStringValue()

//空运算型数据处理,null返回””
NullValueUtils.getNullUFdoubleValue()

//获取当前编辑字段
getKey()

//获取当前编辑字段的值
getValue()

//获取表体总行数
getBillCardPanel().getBillModel("页签编码").getRowCount()

//获取表体当前编辑行
getBillCardPanel().getBillTable().getSelectedRow()

//获取表头字段的值
getBillCardPanel().getHeadItem("字段名").getValueObject()

//获取表体字段的值
getBillCardPanel().getBillModel().getValueAt(row, "字段名")

//给表头字段赋值
getBillCardPanel().setHeadItem("字段名","值")
this.editor.getBillCardPanel().setHeadItem("字段名","值")
this.editor.getBillCardPanel().getBillModel().loadLoadRelationItemValue();

//给表体字段赋值
getBillCardPanel().setBodyValueAt("值",row, "字段名")

//判断UFDouble型数据是否为0
UFDouble型数据.compareTo(UFDouble.ZERO_DBL)==0

//获取选中aggvo
AggXxxVO aggvo = getSelectedAggVo()

//通过aggvo获取表头
aggvo.getParentVO()

//通过aggvo获取表体
XxxBVO[] bvos = (XxxBVO[]) aggvo.getChildren(XxxBVO.class)

7.前后端执行sql要用到的语句

//一行一列
String obj = (String) getService().executeQuery(sql, new ColumnProcessor());

//一行多列
Object[] objs = (Object[]) getService().executeQuery(sb.toString(), new ArrayProcessor());

//一列多行
List<String> objs = (List<String>) getService().executeQuery(sql, new ColumnListProcessor());

//sql中in的拼接
codesql.append(" htcode ", htbhlist.toArray(new String[0]));

//多行多列
List<Object[]> list = (List<Object[]>) getDao().executeQuery(sb.toString(), new ArrayListProcessor());

//表头VO接收
VO hvo = (VO) getService().executeQuery(sql, new BeanProcessor(VO.class));

//表体VO接收
List<BVO> bvos= (List<BVO>) getService().executeQuery(sql, new BeanListProcessor(BVO.class));

//client端根据主键查aggvo
BillAggVO aggvo = MDPersistenceService.lookupPersistenceQueryService().queryBillOfVOByPK(BillAggVO.class, pk_paybill,false);

//private端根据主键查aggvo
BillQuery<AggLoanfkVo> billQuery = new BillQuery< AggLoanfkVo>( AggLoanfkVo.class);
AggLoanfkVO[] loanfkvos = billQuery.query(list.toArray(new String[0]));

//通过单据类型和主键查aggvo
AggregatedValueObject aggvo = MobileAppUtil.queryBillEntity(parantbillType, billid);

//前端查sql要用到的方法
private IUAPQueryBS service;
private IUAPQueryBS getService() {
	if (service == null) {
		service = NCLocator.getInstance().lookup(IUAPQueryBS.class);
	}
	return service;
}

//后端查sql要用到的方法
private BaseDAO dao;
private BaseDAO getDao() {
	if(dao == null) {
		dao = new BaseDAO();
	}
	return dao;
}

//要修改哪个单子调哪个单子的接口
private ICjtbxmdjMaintain service;
private ICjtbxmdjMaintain getService(){
	if (service == null) {
		service = NCLocator.getInstance().lookup(ICjtbxmdjMaintain.class);
	}
	return service;
}

8.类型转换

//Int转String
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;

//String转Int
int i = Integer.valueOf(str).intValue();

//String转Integer
Integer.parseInt(s);

//集合转数组
LoanctexcBVO[] newBVO = list.toArray(new LoanctexcBVO[0]);

//数组转集合
ArrayList<LoanctexcBVO> list = new ArrayList<>(Arrays.asList(bvos));

//JSON转VO
new Gson().fromJson(jsonInfo,JkAddVO.class);

//VO转JSON
new Gson().toJson(VO数组);

//String转为UFDate
public static UFDate StringToUFDate( String time ) throws ParseException{
    if( time == null ){
        return null ; 
    }else{
        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy/MM/dd");    
        UFDate date = new UFDate( timeFormat.parse( time ) ) ;
        return date  ; 
    }
}
    
//String转 UFDateTime
public static UFDateTime StringToUFDateTime( String  time ) throws ParseException{
    if( time == null ){
        return null ; 
    }else{
        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");    
        UFDateTime date = new UFDateTime( timeFormat.parse( time ) ) ;
        return date ; 
    }
}

9.快捷键

//从方法内部退回方法
alt + <-

//大写转小写快捷键
ctrl + shift + Y

//小写转大写快捷键
ctrl + shift + X

//打开资源
ctrl + shift + R

//为本地变量赋值
ctrl+2L

//重命名
alt+shift+r

//将当前行的内容往上或下移动(try/catch)
Alt+方向键

//文本编辑器 查找上一个 
Ctrl+Shift+K 

//文本编辑器 查找下一个 
Ctrl+K 

//下一个错误
ctrl+.

//快速修改
ctrl+1

//当前行之下创建一个空白行
shift+enter

//当前行之上创建一个空白行
ctrl+shift+enter

//提取本地变量及方法
alt+shift+l以及alt+shift+m

//快速outline
ctrl+o

//快速转换编辑器
ctrl+e

//编辑窗口最大化
ctrl+m

//重命名
alt+shift+r

10.其他

//计算字符串的字节数
int byteCount = str.getBytes().length;

//根据主数量计算无税单价、含税单价、价税合计内部封装的方法
BusiCalculator cal = BusiCalculator.getBusiCalculatorAtBS();
cal.calcMnyNCC(purchaseInBodyVOs, "nnum");

//将此list2中的所有元素加入到当前list1中
list1.addAll(list2);

//数据库更新语句的使用
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

//数据库中的连接符的使用
把列与列,列与字符连接在一起。用 ‘||’表示。可以用来‘合成’列。

//返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str)
  
//用新字符newChar 替换所有的 旧字符oldChar
String replace(char oldChar, char newChar) 

//从0开始数,其中不包括endIndex位置的字符
String substring(int beginIndex, int endIndex) 

//UFDateTime转Date
hvo.getCreationtime()==null ? ”” : new Date(hvo.getCreationtime().toDate().getTime())

//数据库插入语句的使用
insert into 表名(列名1,列名2,列名3.....) values(1,2,3.....)

//返回map集合中所有的键的Set集合
map.keySet()

//set集合转数组
set.toArray(new String[0])

//list集合转数组
list.toArray(new String[0])

//代码中去除警告的方法
@SuppressWarnings("unchecked")

//按特殊符号截取字符串并把截取的字符串分别存放到数组中(split函数)
String vchangerate = NullValueUtils.getNullStringValue(bodyvo.getVchangerate());
if(!"".equals(vchangerate)) {
	String[] bzs = vchangerate.split("/");
	item.setBz(bzs[0]);// 包装(换算率)
}

//档案新增方法
BatchOperateVO batchVO = new BatchOperateVO();
batchVO.setAddObjs(new Cjyxdk[]{dkvo});
getSv().batchSave(batchVO);

//将客户端传来的'是','否'转换成'Y','N'
private String getBoolean(String str) {
	if(str == null||"".equals(str)) {//防止空指针异常
		return "N";
	}else {
		if(str.equals("是")) {//如果是写成"是".equals(str)就不会有空异常
			return "Y";
		}else {
			return "N";
		}
	}
}

//往aggvo的子表中赋值
aggvo.setChildren(BuaFsealappBVO.class, bvoList.toArray(new BuaFsealappBVO[0]));
setChildrenVO():
aggvo.setChildrenVO(bvoList.toArray(new BuaFsealappBVO[0]));

//UFDouble类型比较方法
UFDouble nxqzbwcqkbfb = UFDouble.ZERO_DBL;
if(nxqndzbrw.compareTo(UFDouble.ZERO_DBL) != 0){
	nxqzbwcqkbfb = nxqzbwcqk.sub(nxqndzbrw).multiply(100);
}

11.导包

//NC开发导包汇总
//List
import java.util.List;

//ArrayList
import java.util.ArrayList;

//Map
import java.util.Map;

//HashMap
import java.util.HashMap;

//ExceptionUtils
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
//前端抛错写法
ExceptionUtils.wrappBusinessException(e.getMessage());
//后端抛错写法
throw new BusinessException(e.getMessage());

//BusinessException
import nc.vo.pub.BusinessException;

//BaseAction
import nc.ui.yhlypx.pub.baseaction.BaseAction;

//SqlBuilder
import nc.vo.pubapp.pattern.pub.SqlBuilder;

//IRule
import nc.impl.pubapp.pattern.rule.IRule;

//ICompareRule
import nc.impl.pubapp.pattern.rule.ICompareRule;

//UpdateBPTemplate
import nc.impl.pubapp.pattern.data.bill.template.UpdateBPTemplate;

//JSONObject
import com.alibaba.fastjson.JSONObject;

//BatchOperateVO
import nc.vo.bd.meta.BatchOperateVO;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和安韩Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值