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 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("字段名","值")
//给表体字段赋值
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要用到的语句
//一行多列
List<String> objs = (List<String>) getService().executeQuery(sql, new ColumnListProcessor());
//一行一列
String obj = (String) getService().executeQuery(sql, new ColumnProcessor());
//一行多列
Object[] objs = (Object[]) getService().executeQuery(sb.toString(), newArrayProcessor());
//多行多列
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数组);
9.快捷键
//大写转小写快捷键
ctrl + shift + Y
//小写转大写快捷键
ctrl + shift + X
//打开资源
ctrl + shift + R
//为本地变量赋值
ctrl+2,L
//重命名
alt+shift+r
//将当前行的内容往上或下移动(try/catch)
Alt+方向键
//下一个错误
ctrl+.
//快速修改
ctrl+1
//当前行之下创建一个空白行
shift+enter
//当前行之上创建一个空白行
ctrl+shift+enter
//提取本地变量及方法
alt+shift+l以及alt+shift+m
//快速outline
ctrl+o
//快速转换编辑器
ctrl+e
//编辑窗口最大化
ctrl+m
10.其他
//根据主数量计算无税单价、含税单价、价税合计内部封装的方法
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]));
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;
//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;