学习心得2

文章详细汇总了ArrayList的创建与操作方法,如add、remove、set等,以及Map的关键方法如put、remove等。还介绍了NC开发中涉及的数据库查询、前后事件处理、数据处理函数等,并提供了断点调试的技巧。特别提到了一些常见问题及解决办法,如查询错误、审批错误、元数据问题等。
摘要由CSDN通过智能技术生成

一、list方法汇总

1.创建集合对象
此时我们创建的是ArrayList对象,而ArrayList是java已经写好的一个类
这个类在底层做了一些处理
打印对象不是地址值,而是集合中存储数据内容
在展示的时候会拿[]把所有的数据进行包裹
ArrayList list = new ArrayList<>();

2.方法
1.list.add(“增加元素”)
2.list.remove(“删除元素”)
3.list.remove(索引)
4.list.set(索引,”修改元素”)
5.list.get(索引)
6.for(int i = 0; i < list.size(); i++){
list.get(i);
}遍历

3.创建学生对象不能写在循环的外面

二、map方法汇总

1.map.put(“键”,”值”);
2.map.remove(“键”);
3.map.clear();
4.map.containsKey(“键”);
5.map.containValue(“值”);
6.map.isEmpty();
7.map.size();

三、NC开发常用方法汇总

1.前端使用数据库查询语句要用到的方法
private IUAPQueryBS service;
private IUAPQueryBS getService() {
	if (service == null) {
		service = NCLocator.getInstance().lookup(IUAPQueryBS.class);
	}
	return service;

2.后端使用数据库查询语句要用到的方法
private BaseDAO dao;
private BaseDAO getDao() {
	if(dao == null) {
		dao = new BaseDAO();
	}
	return dao;
}

3.编辑前后事件经常用到的方法
NullValueUtils.getNullStringValue()空字符型数据处理,null返回UFDouble.ZERO_DBL
NullValueUtils.getNullUFdoubleValue()空运算型数据处理,null返回””
getKey()获取当前编辑字段
getValue()获取当前编辑字段的值
getBillCardPanel().getBillModel("页签编码").getRowCount()获取表体总行数
getBillCardPanel().getBillTable().getSelectedRow()获取表体当前编辑行
getBillCardPanel().getHeadItem("字段名").getValueObject()获取表头字段的值
getBillCardPanel().getBillModel().getValueAt(row, "字段名")获取表体字段的值
getBillCardPanel().setHeadItem("字段名","值")给表头字段赋值
getBillCardPanel().setBodyValueAt("值",row, "字段名")给表体字段赋值
UFDouble型数据.compareTo(UFDouble.ZERO_DBL)==0判断UFDouble型数据是否为0
AggXxxVO aggvo = getSelectedAggVo()获取选中aggvo
aggvo.getParentVO()通过aggvo获取表头
XxxBVO[] bvos = (XxxBVO[]) aggvo.getChildren(XxxBVO.class)通过aggvo获取表体

4.接收sql查询后的对象
一列多行ColumnListProcessor		返回值:  List
一列一行 ColumnProcessor				     Object 
一行多列 ArrayProcessor					 Object[]
多行多列 ArrayListProcessor				 List<Object[]>
表头Vo接收beanProcessor                    对象
表体Vo接收beanListprocessor			      List<对象> 

5.删除数据时接收传过来json字符串的方法
JSONObject jsonObject = JSONObject.parseObject(jsonInfo);
String dataType = jsonObject.getString("datatype");

6.根据主键数组查询aggvo(只能在private下使用)
BillQuery<AggLoanfkVo> billQuery = new BillQuery< AggLoanfkVo>( AggLoanfkVo.class);
AggLoanfkVO[] loanfkvos = billQuery.query(list.toArray(new String[0]));

四、问题汇总

1.查询出现未知的错误:查询模板有问题

2.审批出现未知的错误:单据类型管理和单据转换规则有问题

3.自定义参照中,如果数据库查询有关联表的语句,关联表的字段要用as重命名(参照数据库字段名数组,参照数据库表或者视图名中重命名的地方要一致),不然前台会显示不出来

4.做完一张单子先试试增删该查好不好使,再做其他的功能

5.元数据生成的java源代码不一定可靠,一定要自己检查一边看有没有错,不然后面会有一堆问题

6.用友nc65开发中在删除时报错:

实体[xxx]没有实现制定的业务接口:nc.itf.uap.pf.metadata.IHeadBodyQueryItf

解决方案:

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);

上面语句中,classid对应值换成报错的实体id,执行完一定要点提交才能生效,提交后重启服务。

7.下面两句话,如果调试出错,检查一边,如果没有错,就重启一下试试。

YhlypxytlxVO headvo=(YhlypxytlxVO) getService().executeQuery(sql, new BeanProcessor(YhlypxytlxVO.class));
List<YhlypxhtfkBVO> executeQuery = (List<YhlypxhtfkBVO>) getService().executeQuery(strsql, new BeanListProcessor(YhlypxhtfkBVO.class));

8.实体(vo)表名为md_class,classID名称为id
select * from md_class where id = ‘91aad9c9-be18-4e2a-89de-988390371d1e’

9.单据类型表名为bd_billtype,主键名称为pk_billtypecode
select * from bd_billtype where pk_billtypecode = ‘YH04’ order by ts desc

五、断点调试汇总

1.导包时,对应的包名一定要导对

2.操作后不进入断点,断点可以进入一个方法,断点不可以进入另一个方法,很有可能是能进入的那个方法里面处了问题,以至于后面的断点进不去,所以可以调试一下可以进入的那个方法,看看里面到底哪里处了问题。
例如sumnum = sumnum.add(bvos[i].getNnum())这句话,这句话断点调试时有错误,对bvos[i].getNnum()采用快捷键ctrl+shift+i,发现它里面的值是空,在这个值前面加上NullValueUtils.getNullUFdoubleValue空处理方法,把这句话变为
sumnum = sumnum.add(NullValueUtils.getNullUFdoubleValue(bvos[i].getNnum()));
这个问题就解决了。(因为这句话是写在for循环里,当进入循环体时,就可以调试看到bvos[i].getNnum()的值)

3.断点调试时,箭头指向的那一行就可以看到里面变量的值,而不是等到走到下一行后才能看上一行变量的值(例如问题2中的情况)

4.调试时的看到的空和0不一样,0不可以和空进行相加,否者会报错,解决方法就是在空前面加上NullValueUtils空处理方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

和安韩Pro

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

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

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

打赏作者

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

抵扣说明:

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

余额充值