EAS-BOS表头-分录多表开发高级教程
准备工作:新建包,子系统简码(必录)
1、实体层
新建实体:“父实体对象”选择框架的一个基类(必须)
单据头Student:
选择基类:
系统方法“全部不选”
重新选择基类
将系统自动生成的id删除,因为基类已经存在id的字段, 增加自有属性
定义逻辑键
分录Course:
选择父实体对象
将系统自动生成的id删除,因为基类已经存在id的字段, 增加只有属性
2、建立一对多关联关系(单据头-分录)
1、建立关联关系,类型选择“聚合”,client选择表头实体,supplier选择分录实体
2、单据头实体Student建立关联属性,关系选择建好的关联关系
关联名称会在分录EditUI中使用到
3、分录实体Course建立“关联属性”,关系选择建好的关联关系
关系名称会在建数据库时使用
3、实体导出表
表头
分录
3、导出数据表创建SQL语句
4、在数据库执行SQL(运行时执行)
5、查询层
选择实体
Course的连接属性选择“父对象所有行”
导入查询字段(需要显示的),逻辑建包括:表头id和分录id
2、定义字段扩展属性,过滤条件
3、查询:参数定义用不上
6、用户界面层
1、新建查询列表用户界面
选择父UI对象(必须)
选择BO对象
选择需要的字段
选择layout属性
2、新建编辑界面
选择父UI对象(必须)
选择BO对象
选择需要显示的字段
7、发布元数据
打开“包资源管理器”视图,刷新
8、修改列表界面
StudentListUI.java增加两方法:
ListUI继承com.kingdee.eas.framework.client.BillListUI,(必须)实现的方法:
@Override
protected String getEditUIName()
{
MsgBox.showWarning("2.返回编辑界面名称全路径,新增、查看数据时使用getEditUIName");
return StudentEditUI.class.getName();
}
@Override
protected ICoreBase getBizInterface() throws Exception
{
MsgBox.showWarning("3.通过Factory返回业务接口,查看数据时使用getBizInterface");
return StudentFactory.getRemoteInstance();
}
9、修改编辑界面
StudentEditUI.java增加四方法:
EditUI继承com.kingdee.eas.framework.client.BillEditUI,(必须)实现的方法:
@Override
protected KDTable getDetailTable()
{
MsgBox.show("11.返回分录列表getDetailTable");
return kdtEntrys;
}
protected IObjectValue createNewData()
{
MsgBox.show("21.创建新的数据对象,赋初始值createNewData");
StudentInfo info = new StudentInfo();
info.setState(ItemStateEnum.x);
info.setCreator((com.kingdee.eas.base.permission.UserInfo)
(com.kingdee.eas.common.client.SysContext.getSysContext().getCurrentUser()));
return info;
}
protected ICoreBase getBizInterface() throw