一、NC开发导包汇总
import java.util.List;(List)
import java.util.ArrayList;(ArrayList)
import java.util.Map;(Map)
import java.util.HashMap;(HashMap)
import nc.vo.pubapp.pattern.exception.ExceptionUtils;(ExceptionUtils)
import nc.vo.pub.BusinessException;(BusinessException)
import nc.ui.yhlypx.pub.baseaction.BaseAction;(BaseAction)
import nc.vo.pubapp.pattern.pub.SqlBuilder;(SqlBuilder)
import nc.impl.pubapp.pattern.rule.IRule;(IRule)
import nc.impl.pubapp.pattern.rule.ICompareRule;(ICompareRule)
二、NC常用SQL语句总结
1.自定义参照常用sql语句
/--bd_currtype:币种对应65数据字典中的英文名
/--org_orgs:组织对应65数据字典中的英文名
/--where nvl(dr,0)=0 其实就是 where dr is null(查询没被删除过的数据,没被删除过的数据dr=0,被删除过的数据dr=1)
/--单据状态:billstatus为1表示审批通过态
select h.vbillno,
ce.name as currname,
h.dbilldate,
orgs.name as orgsname,
h.pk_dkht
from yhly_yhlypxdkht h
left join bd_currtype ce
on h.pk_currtype = ce.pk_currtype
left join org_orgs orgs
on h.pk_org = orgs.pk_org
where nvl(h.dr, 0) = 0
and billstatus = 1
2.编辑某字段自动带出表头表体信息常用sql语句
步骤一:
select pk_dkht from yhly_yhlypxdkht where vbillno='YH042023030600000014'
-->pk_dkht = '1001QA1000000000TN5D'
步骤二:
select * from yhly_yhlypxdkht where nvl(dr,0) = 0 and pk_dkht =
'1001QA1000000000TN5D'
3.新增保存校验表体某字段不超过某字段
select num, def1, pk_dkht_b
from yhly_yhlypxdkht_b
where nvl(dr, 0) = 0
and pk_dkht_b in ('1001QA1000000000UPQJ',
'1001QA1000000000UPQK',
'1001QA1000000000UPQL',
'1001QA1000000000UPQM')
4.查询某单据的下游单据类型
/--单据类型:bd_billtype
/--下游单据类型:forwardbilltype
/--编码:pk_billtypecode
select forwardbilltype from bd_billtype where pk_billtypecode='YH06'
5.查询实体vo中的数据
select * from md_class where id = 'f0c092cb-e990-445d-95b9-b6219c707353'
6.通过单据类型查询该单据类型有没有被使用过
select * from bd_billtype where pk_billtypecode = 'YH04' order by ts desc
7.删除表和删除表中全部数据
/--删除表
drop table yhlx_yhlypxhtfkd
/--删除表中全部数据
delete from yhlx_yhlypxhtfkd
三、问题汇总
1.java中加减乘除和等于全都是用函数,不可以直接使用±*/=
2.单据状态字段的变化
自由态:billstatus = -1
提交态:billstatus = 3
审批态:billstatus = 1
3.编辑前校验
UIRefPane refPane = (UIRefPane) e.getBillCardPanel().getHeadItem(“sqdh”).getComponent();
refPane.getRefModel().setWherePart(" currate >= 2 ");
四、问题汇总
1.Sql能写在sql语句里面就不要写在代码判断里
2.注意区分””和null
3.pub_billtemplet(单据模板表)
select * from pub_billtemplet where modulecode like ‘H6%’ order by ts desc
4.参数对象里面可以加VO或BVO参数
public KfckdBVO[] bvos;
5.列表和卡片的区别
列表是功能列表,卡片是一个个功能项里面具体的东西
6.编辑后的计算,能写到一个方法里面就不用多个方法
7.if判断里面不写很多代码,一般都是如下写法:
if(不满足的条件){
return;
}
满足时要处理的代码
8.编辑前过滤的判断条件if(key.equals(“要过滤字段”)
五、问题汇总
1.Collection是一个接口,不能直接创建他的对象,只能创建它实现类的对象。
2.Collection coll = new ArrayList<>(); //多态的方式创建对象
3.因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除,只能通过元素的对象进行删除。
4.同一个端口只能启动一个服务器,不然会报错。
5.导入数据的时候必须按照规定的格式才可以把数据导入进去。
6.写sql语句时,不关联其他表就能查出数据的就不要关联其他表。
7.编辑前写where过滤条件,一定要录个日志看看里面sql语句是怎么写的,通过里面的sql语句去加where过滤条件