5. 单据操作代理
这里的页签code和上面的一样,必须和单据模板里面设置的页签code一样
以上XML是比较重要的部分,全部的XML有附件,这里就不全部给出了。
五.开发中需要注意的问题:
XML配置完之后,就能够出现如图的主子孙界面了。
不过主子孙单据开发和平常的单据会有些区别,这里一一说明:
1. 界面初始化数据:
界面初始化会用到ModelDataManager类,这个类又会调用代理类,来执行查询的数据,返回的数据才通过ModelDataManager来初始化到界面上:
首先代理类必须继承AbstractGrandQueryService类
然后开始远程调用查询。
后台查询方法如下:
需要注意的是:这里会专门用到查询孙表的方法,不然查询出来的数据没有孙表数据。
如果不用这个封装好的类,那可以自己定义一个查询出封装好vo的方法,使其是主子孙VO:
@Override
public AggMgsSchoolVO[] queryAllData(String whereSql)throws
AggMgsSchoolVO[] aggVOs = null;
//EfficientBillQuery是根据sql条件(以and开始)进行单据VO高效查询的工具EfficientBillQuery efq = new try { }
if(aggVOs.length < 1){ }
StringBuffer pk_c_a_list = new StringBuffer(); pk_c_a_list.append(\
for (int i = 0; i < aggVOs.length; i++) { }
pk_c_a_list.append(\
AggMgsSchoolVO aggMgsSchoolVO = aggVOs[i]; MgsClassaVO[] acvo = (MgsClassaVO[]) if(acvo.length > 0){ }
for (int j = 0; j < acvo.length; j++) { }
MgsClassaVO mgsClassaVO = acvo[j];
pk_c_a_list.append(mgsClassaVO.getPk_c_a()+\
//如果查询出的aggVOs数据没有数据,那么直接返回null
return null;
aggVOs = efq.query(whereSql);
throw new BusinessException(e.getMessage()); } catch (Exception e) {
BusinessException {
类
EfficientBillQuery(AggMgsSchoolVO.class);
aggMgsSchoolVO.getChildren(MgsClassaVO.class);
//构造出孙表外键的数组
String pk_c_a_lists = pk_c_a_list.delete(pk_c_a_list.length()-4,
StringBuffer pk_c_b_list = new StringBuffer(); pk_c_b_list.append(\
for (int i = 0; i < aggVOs.length; i++) {
AggMgsSchoolVO aggMgsSchoolVO = aggVOs[i]; MgsClassbVO[] bcvo = (MgsClassbVO[])
pk_c_a_list.length()-2).toString();
aggMgsSchoolVO.getChildren(MgsClassbVO.class);
}
if(bcvo.length > 0){ }
for (int j = 0; j < bcvo.length; j++) {
MgsClassbVO mgsClassaVO = bcvo[j];
pk_c_b_list.append(mgsClassaVO.getPk_c_b()+\
}
pk_c_b_list.append(\
//构造出孙表外键的数组
String pk_c_b_lists = pk_c_b_list.delete(pk_c_b_list.length()-4,
BaseDAO bd = new BaseDAO();
//查询出MgsTeacheraVO数据
List
pk_c_b_list.length()-2).toString();
bd.retrieveByClause(MgsTeacheraVO.class, \in\
//查询出MgsTeacherbVO数据
List
bd.retrieveByClause(MgsTeacherbVO.class, \in\
//封装为主子孙的VO
for(int k = 0; k < aggVOs.length; k++){
MgsClassaVO[] mgsca = (MgsClassaVO[]) for (int i = 0; i < mgsca.length; i++) {
Set
((MgsClassaVO[])
MgsTeacheraVO tavo = tas.get(j); if(tavo.getPk_c_a().equals(pk_c_a)){ }
lavos.add(tavo); tas.remove(tavo);
aggVOs[k].getChildren(MgsClassaVO.class);
aggVOs[k].getChildren(MgsClassaVO.class))[i].setPk_t_a(lavos.toArray(new MgsTeacheraVO[0]));
}
for(int k = 0; k < aggVOs.length; k++){
MgsClassbVO[] mgscb = (MgsClassbVO[]) for (int i = 0; i < mgscb.length; i++) {
Set
aggVOs[k].getChildren(MgsClassbVO.class);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库STUDIO生成主子孙单据开发说明(3)在线全文阅读。
相关推荐: