EASBOS表头分录多表开发高级教程.docx
- 文档编号:7313231
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:28
- 大小:955.17KB
EASBOS表头分录多表开发高级教程.docx
《EASBOS表头分录多表开发高级教程.docx》由会员分享,可在线阅读,更多相关《EASBOS表头分录多表开发高级教程.docx(28页珍藏版)》请在冰豆网上搜索。
EASBOS表头分录多表开发高级教程
表头-分录多表开发高级教程1
1、实体层1
2、建立一对多关联关系(单据头-分录)6
3、实体导出表7
3、导出数据表创建SQL语句9
4、在数据库执行SQL10
5、查询层10
6、用户界面层13
1、新建查询列表用户界面13
2、新建编辑界面15
7、发布元数据18
8、修改列表界面18
9、修改编辑界面19
10、增加实体方法,ListUI增加按钮,实现按钮调用实体方法20
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的连接属性选择“父对象所有行”
导入查询字段(需要显示的)
2、定义扩展属性,过滤条件
3、查询:
参数定义用不上
6、用户界面层
1、新建查询列表用户界面
选择父UI对象(必须)
选择BO对象
选择需要的字段
选择layout属性
2、新建编辑界面
选择父UI对象(必须)
选择BO对象
选择需要显示的字段
7、发布元数据
打开“包资源管理器”视图
8、修改列表界面
StudentListUI.java增加两方法:
ListUI继承com.kingdee.eas.framework.client.BillListUI,(必须)实现的方法:
@Override
protectedStringgetEditUIName()
{
MsgBox.showWarning("2.返回编辑界面名称全路径,新增、查看数据时使用getEditUIName");
returnStudentEditUI.class.getName();
}
@Override
protectedICoreBasegetBizInterface()throwsException
{
MsgBox.showWarning("3.通过Factory返回业务接口,查看数据时使用getBizInterface");
returnStudentFactory.getRemoteInstance();
}
9、修改编辑界面
StudentEditUI.java增加四方法:
EditUI继承com.kingdee.eas.framework.client.BillEditUI,(必须)实现的方法:
@Override
protectedKDTablegetDetailTable()
{
MsgBox.show("11.返回分录列表getDetailTable");
returnkdtEntrys;
}
protectedIObjectValuecreateNewData()
{
MsgBox.show("21.创建新的数据对象,赋初始值createNewData");
StudentInfoinfo=newStudentInfo();
info.setState(ItemStateEnum.x);
info.setCreator((com.kingdee.eas.base.permission.UserInfo)(mon.client.SysContext.getSysContext().getCurrentUser()));
returninfo;
}
protectedICoreBasegetBizInterface()throwsException
{
MsgBox.show("22.通过Factory返回业务接口getBizInterface");
returnStudentFactory.getRemoteInstance();
}
@Override
protectedIObjectValuecreateNewDetailData(KDTablearg0)
{
MsgBox.show("31.创建新的分录行createNewDetailData");
returnnewCourseInfo();
}
10、增加实体方法,ListUI增加按钮,实现按钮调用实体方法
1、在Student实体创建方法myDoSomething
定义方法参数
发布实体
2、在StudentListUI新增Action,新增工具条,并指派工具条对应的Action
打开StudentListUI.ui,打开“大纲”视图
展开“Actions”、按“右键”新建Action(Action类名首字符大写ActionMyDoSomething,Action实例名首字符小写actionMyDoSomething)
展开“ToolBarPanel”,新建“KDWorkButton”
修改按钮name、text属性,绑定action为新建的action实例
发布ListUI
打开StudentControllerBean的java源码,实现“_myDoSomething”方法供StudentListUI调用
可以通过工具选择需要实现重载的方法
protectedvoid_myDoSomething(Contextctx,IObjectPKid)throwsBOSException
{
try
{
//取得值对象
StudentInfoinfo=(StudentInfo)this.getValue(ctx,id);
//业务判断
if(info.getState().equals(ItemStateEnum.y))
{
//修改属性值
info.setState(ItemStateEnum.z);
//提交更新到数据库
this.update(ctx,id,info);
}
}catch(EASBizExceptione)
{
e.printStackTrace();
}
}
打开StudentListUI的java源码,实现按钮事件调用实体函数
@Override
publicvoidactionMyDoSomething_actionPerformed(ActionEvente)throwsException
{
//取得选中行主键
ObjectUuidPKpk=newObjectUuidPK(this.getSelectedKeyValue());
//取得远程业务接口,调用方法
StudentFactory.getRemoteInstance().myDoSomething(pk);
//刷新列表
refresh(null);
//弹出提示框
MsgBox.showWarning("关闭actionMyDoSomething_actionPerformed");
SysUtil.abort();
}
其他常用方法:
在onLoad函数中将按钮设置为可用
@Override
publicvoidonLoad()throwsException
super.onLoad();
MsgBox.showWarning("打开界面时设置初始化状态onLoad");
btnMyDoSomething.setEnabled(true);
}
@Override
publicString[]getMergeColumnKeys()
{
MsgBox.showWarning("1.设置合并重复的列getMergeColumnKeys");
returnnewString[]
{"id","xh","mc"};
}
重新“启动测试”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EASBOS 表头 分录 开发 高级 教程