STUDIO生成主子孙单据开发说明书.docx

上传人:b****7 文档编号:23309071 上传时间:2023-05-16 格式:DOCX 页数:55 大小:3.60MB
下载 相关 举报
STUDIO生成主子孙单据开发说明书.docx_第1页
第1页 / 共55页
STUDIO生成主子孙单据开发说明书.docx_第2页
第2页 / 共55页
STUDIO生成主子孙单据开发说明书.docx_第3页
第3页 / 共55页
STUDIO生成主子孙单据开发说明书.docx_第4页
第4页 / 共55页
STUDIO生成主子孙单据开发说明书.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

STUDIO生成主子孙单据开发说明书.docx

《STUDIO生成主子孙单据开发说明书.docx》由会员分享,可在线阅读,更多相关《STUDIO生成主子孙单据开发说明书.docx(55页珍藏版)》请在冰豆网上搜索。

STUDIO生成主子孙单据开发说明书.docx

STUDIO生成主子孙单据开发说明书

主子单据开发说明

一.元数据设计

主子单据需要设计如上图的元数据模型,现在以上图元数据模型为例,叙述开发主子单据过程

设计主子元数据,实体之间的对应关系都为组合关系,这和设计主子表单据类似。

只是有几点需要注意:

1.点击主表实体(任务)设计如下

访问策略设置为bodyOfAggVOAccess

2.点击子表实体(分摊任务接收方)设计如下,

访问策略需要设计为PojoAccessor

2.点击表实体(接收方子表)设计如下

 

3.只有主表实体的类型为AggVO,子表实体和表实体都为NCVO

 

二.生成VO

点击生成Java代码,会生成如图

几个VO类,需要注意的几点,

必须在子表VO类中加上:

如图的表的属性,属性名字必须和单据模板对应的页签名字一样(这个是SendVO中加的,RecieveVO也是同样的加上),加上这个属性时为了在保存的时候,能够把表的信息一块存入表中.

同时还需要再表的VO类中加上

如图的属性(这个是SendChildVO中加的,RecieveChildVO也同样)。

 

三.设计模板

设计完元数据和生成VO后,开始进行手工配置,这个节点没法使用向导生成,需要自行进行功能节点注册,菜单注册,单据模板初始化等等操作。

这里需要说明是在设计单据模板。

根据元数据,首先设计一个如下图样的主子表的模板

接着再设计一个表模板:

因为这里表实体是两个,所以还需要再设计一个表模板

最后进行功能节点默认模板设置:

如下图:

这里需要注意,节点标示一定要写,这里会在之后的xml配置中用到这个节点标识。

 

四.Xml配置

1.设计model,主子界面需要设计如下图的model

2.元数据转换工厂:

一个是主表和子表用,一个是表用

3.数据模型和模板容器,如下图,其中nodekeies和之前配置的节点标识对应上

4.界面元素xml:

--界面元素-->

--是否自动增行-->

--表体行操作按钮注册,与表体右键菜单保持一致-->

--提供了一组默认实现-->

--列表视图-->

init-method="initUI">

class="ponents.grand.action.GrandBodyAddLineAction">

--是否自动增行-->

class="ponents.grand.valueStrategy.GrandPanelValueAdapter"/>

class="ponents.grand.action.GrandBodyAddLineAction">

--是否自动增行-->

--表体页签编码按钮-->

--key为页签的tabcode-->

--最大化最小化Action-->

class="ponents.grand.action.MaxMinCardGrandAction">

init-method="initUI">

--主子列表界面-->

init-method="initUI">

--主子的面板-->

--主子的MODEL-->

--主子的对应关系-->

--主子的协调关系-->

--表的提示信息,默认为"表信息",可以不配-->

--主子卡片界面-->

init-method="initUI">

--主子的面板-->

--主子的MODEL-->

--主子的对应关系-->

--主子的空行过滤>-->

--主子的协调关系-->

--表的提示信息,默认为"表信息",可以不配-->

--维持主子中间关系调停者的处理-->

class="ponents.grand.mediator.MainGrandMediator">

--主子的BillForm-->

--主子的MODEL-->

--主子的关系-->

以下这个是表空行过滤,对应的页签code,一定要和你单据模板初始化中的页签code一样

--子之间对应模板关系配置-->

class="ponents.grand.MainGrandRelationShip">

--列表的对应关系-->

--key为子表的tabcode-->

--表的ListForm-->

--key为子表的tabcode-->

--表的ListForm-->

--卡片的对应关系-->

--key为子表的tabcode-->

--表的BillForm-->

--key为子表的tabcode-->

--表的BillForm-->

--页签与VO的对应关系-->

--key为页签的tabcode(下同)-->

--value为页签对应的VO(下同)-->

5.单据操作代理

这里的页签code和上面的一样,必须和单据模板里面设置的页签code一样

--单据操作代理-->

--key为页签的tabcode、value为页签对应的VO-->

以上XML是比较重要的部分,全部的XML有附件,这里就不全部给出了。

 

五.开发中需要注意的问题:

XML配置完之后,就能够出现如图的主子界面了。

不过主子单据开发和平常的单据会有些区别,这里一一说明:

1.界面初始化数据:

界面初始化会用到ModelDataManager类,这个类又会调用代理类,来执行查询的数据,返回的数据才通过ModelDataManager来初始化到界面上:

首先代理类必须继承AbstractGrandQueryService类

然后开始远程调用查询。

后台查询方法如下:

需要注意的是:

这里会专门用到查询表的方法,不然查询出来的数据没有表数据。

如果不用这个封装好的类,那可以自己定义一个查询出封装好vo的方法,使其是主子VO:

Override

publicAggMgsSchoolVO[]queryAllData(StringwhereSql)throwsBusinessException{

AggMgsSchoolVO[]aggVOs=null;

//EfficientBillQuery是根据sql条件(以and开始)进行单据VO高效查询的工具类

EfficientBillQueryefq=newEfficientBillQuery(AggMgsSchoolVO.class);

try{

aggVOs=efq.query(whereSql);

}catch(Exceptione){

thrownewBusinessException(e.getMessage());

}

if(aggVOs.length<1){

//如果查询出的aggVOs数据没有数据,那么直接返回null

returnnull;

}

StringBufferpk_c_a_list=ne

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1