金蝶EASBOS开发学习笔记Word格式文档下载.docx

上传人:b****4 文档编号:14048172 上传时间:2022-10-17 格式:DOCX 页数:35 大小:2.19MB
下载 相关 举报
金蝶EASBOS开发学习笔记Word格式文档下载.docx_第1页
第1页 / 共35页
金蝶EASBOS开发学习笔记Word格式文档下载.docx_第2页
第2页 / 共35页
金蝶EASBOS开发学习笔记Word格式文档下载.docx_第3页
第3页 / 共35页
金蝶EASBOS开发学习笔记Word格式文档下载.docx_第4页
第4页 / 共35页
金蝶EASBOS开发学习笔记Word格式文档下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

金蝶EASBOS开发学习笔记Word格式文档下载.docx

《金蝶EASBOS开发学习笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《金蝶EASBOS开发学习笔记Word格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。

金蝶EASBOS开发学习笔记Word格式文档下载.docx

二.需要用到的热键

CTRL+SHIFT+R打开资源

CTRL+SHIFT+T打开类型

三.制作第一个列表查询界面

打开“金蝶BOS设计开发工具”透视图

1.打开eas/metadata//kingdee/eas/demo节点

说明:

app目录下一般存放实体、表、查询等元数据;

Client目录下一般存放ui,即界面数据;

其他公共对象,如枚举、异常等通常放在与app、client同级目录中。

2.在app文件夹下新建实体XueLi(学历),父实体选择.kingdee.eas.framework.app.DataBase

3.右击XueLi.entity,在弹出菜单中选择“实体导出表”,保留默认值,名称为T_DE_XueLi

4.打开T_DE_XueLi.table,修改主键名称,避免因为重名导致建表错误

5.右击T_DE_XueLi.table,选择“导出...”,在弹出窗口中选择“导出数据表”

6.打开管理控制台,在“数据中心”选择使用的数据中心,再打开“数据库管理”,把生成的CreateTable.sql中的容COPY进去,点击工具栏的“执行(F5)”,最后“提交”。

7.在app文件夹下新建查询XueLiQuery,实体选择XueLi.entity

8.打开查询XueLiQuery,选择字段标签页,选择“导入”,将要查询的字段添加进来,并调整各字段顺序。

还应该在“其它”页中定义排序和主键字段。

9.在client文件夹下新建UI,父对象选择com.kingdee.eas.framework.client.ListUI(列表界面),BO对象选择XueLiQuery.query,其他用默认值即可。

(W:

\apusic\metas)

10.单击鼠标右键,在弹出菜单中选择“编辑表信息”,选择ID列,把hide属性值修改为true,以隐藏不希望在列表中显示的列。

注意:

ID列不管是否需要显示,必须要存在于列表中,否则会出现后文所述的错误。

四.发布列表界面,查看效果

1.建立Java发布目录:

D:

\gmis310_src\demo\dev\src

2.选择包的根节点eas,右键选择属性,在弹出窗口中选择Solution发布方案信息,新增一个发布方案,命名为demo

3.Java发布目录输入前面建立的目录,J2EE发布目录及元数据发布目录输入与其他发布方案相同的目录W:

\apusic\metas

4.选择app目录下XueLi.entity,单击右键,选择发布;

发布方案选择demo,完成后察看“校验信息”视图,发现有错误提示,直接双击,打开错误

5.在逻辑键信息中增加CoreBase.id,保存

6.清除校验信息视图中的容,再点击工具栏上的“清除元数据缓存”,否则有可能会导致再次发布失败

7.再次发布XueLi.entity,成功。

8.选择demo文件夹,右键,选择“发布”,将前面建立的所有元数据(.table,.entity,.query,.ui)全部选中,再次进行发布。

9.切换到Java透视图。

10.选择bs_dio节点,单击鼠标右键,刷新,让新建立的demo文件夹显示出来。

11.选择bs_dio节点,单击鼠标右键,“构建路径”->

“配置构建路径”,将"

demo/dev/src"

添加进来,在自动构建完成之后,可以在D:

\gmis310_src\bin\\kingdee\eas\demo看到编译好了的class文件

12.重新启动gmis_server服务器,然后用administrator用户登录

13.打开“系统->

客户化菜单编辑”,新增菜单,UI对象为com.kingdee.eas.demo.client.XueLiListUI

14.保存后重新登录,进入系统后可以看到此菜单,但此时双击报错,查看控制台日志,可知是有抽象类方法没有实现

15.在Java透视图中打开XueLiListUI.java文件,此时可以看到有错误提示,点击鼠标,自动实现接口类的框架代码。

此时可以看到项目已经不再报错了。

进入系统后,发现点击“新增”按钮时报错。

16.按CTRL+SHIFT+T,查找DiplomaListUI,打开DiplomaListUI.class文件(这是系统中已有的学历窗体)。

17.在XueLiListUI.java中,参考DiplomaListUI实现getEditUIName和getBizInterface方法。

protectedICoreBasegetBizInterface()throwsException{

returnXueLiFactory.getRemoteInstance();

}

protectedStringgetEditUIName(){

return"

.kingdee.eas.basedata.hraux.client.DiplomaEditUI"

;

至此,列表UI已可正常执行,但新增界面调用的是系统原有的DiplomaEditUI。

接下来再实现我们自己的EditUI。

五.制作对应的编辑界面

1.切换到BOS设计视图,在Client下新建UI,命名为XueLiEditUI,父对象为com.kingdee.eas.framework.client.EditUI(编辑界面),BO对象选择XueLi.entity,绑定控件时只保留需要用户输入的控件。

2.发布此UI,发布方案选择demo

3.切换到Java透视图,刷新/bs_dio/demo/dev/src目录,让新加的UI出现在树中,此时会自动构建,提示有错误

4.打开XueLiEditUI.java,查看错误信息,发现是有未实现的抽象方法,生成它

5.打开DiplomaEditUI的JAVA类,将createNewData和getBizInterface方法的代码COPY到XueLiEditUI.java中,并做相应修改。

6.打开XueLiListUI.java,修改getEditUIName方法,返回值改成.kingdee.eas.demo.client.XueLiEditUI

7.重新运行代码,可以看到现在已可以调出新做的编辑窗口,增加二条数据,可以成功保存。

8.返回到ListUI,点击各条记录时,发现提示"

没有定义正确的keyField,请重载getKeyFileedNmae()方法"

(如果前面步骤严格按照截图中操作,则不会出现此错误,因此不需要后面的这几步)

9.经比较,发现在查询对象中没有定义主键ID。

因此,打开XueLiQuery.query,在字段页中增加id字段,在其它页中增加id字段的主键定义。

10.问题还不在这里。

打开XueLiListUI,重新绑定XueLiQuery.query,把ID列加入到表格中,然后设置此列为隐藏。

11.保存后重新发布,再在java视图中刷新,重新构造应用。

12.重启Server,然后起动应用,测试成功。

六.需要注意的问题

1.关于发布的问题

只要是更改了app下的对象,一定要重新发布。

由于app的发布目录是在W:

\apusic\metas\\kingdee\eas\demo\app目录下,这是服务器的目录,因此发布之后必须要重启服务器才能生效。

如果更改了client下的对象,由于只是在客户端的,因此发布后只需重启应用即可。

2.关于查询时的过滤条件问题

如下图所示,在查询时,过滤条件中没有可供选择的容。

解决方法是打开列表界面的查询对象,如上图所示,在扩展属性中加入通用查询条件即可。

注意此扩展属性是针对每个字段进行设置的。

3.EditUI中数据保存前,对数据进行合法性校验的问题

通常有二种方法。

一种是重载actionSubmit动作,在代码中进行处理。

此种方法需要先在EditUI中生成Action事件,以便在发布后超类中有相应的虚方法,如此在继承类中才可以重载方法。

publicvoidactionSubmit_actionPerformed(ActionEvente)throwsException

{

//名称是否可为空

if(txtName.getText()==null||txtName.getText().trim().length()==0){

MsgBox.showError(this,"

请输入名称!

"

);

this.txtName.requestFocusInWindow();

return;

}

//编码是否为空

if(txtNumber.getText()==null||txtNumber.getText().trim().length()==0){

请输入编码!

this.txtNumber.requestFocusInWindow();

super.actionSubmit_actionPerformed(e);

此种方法较繁琐。

另一种方法较简单。

打开基类的EditUI.class,可以看到有verifyInput方法是空的,在保存之前基类会调用此方法。

因此,只需要在继承类中重载实现此方法即可。

在大多数情况下,推荐使用此种方法进行数据合法性校验。

protectedvoidverifyInput(ActionEvente)throwsException{

super.verifyInput(e);

SysUtil.abort();

}

七.第二个DEMO:

制作一个主从表示例

1.在app文件夹下新建实体OrderSheet(订单)

2.

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

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

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

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