金蝶EAS BOS开发学习笔记

合集下载

BOS开发单据重要笔记.txt

BOS开发单据重要笔记.txt

BOS开发单据重要笔记.txt一、EditUI必须实现及很重要的方法:1、通过Factory返回月度付款计划接口(必须)protected ICoreBase getBizInterface() throws Exception { // TODO Auto-generated method stubreturn MonthlyPayPlanFactory.getRemoteInstance();}2、返回月度付款计划对象(非必须)Protected IObjectValue createNewData(){MonthlyPayPlanInfo info = new MonthlyPayPlanInfo();return info;}3、返回单据分录(必须)protected KDTable getDetailTable() {// TODO Auto-generated method stubreturn this.kdtEntries;}4、是否允许连续新增,框架默认为true(非必须)protected boolean isContinueAddNew() {return false;}二、ListUI必须实现及很重要的方法:1、通过Factory返回月度付款计划接口(必须)protected ICoreBase getBizInterface() throws Exception { // TODO Auto-generated method stubreturn MonthlyPayPlanFactory.getRemoteInstance();}2、返回编辑界面名称全路径,新增、查看数据时使用getEditUIName(必须)protected String getEditUIName(){return MonthlyPayPlanEditUI.class.getName();}3、初始化查询条件过滤界面(可修改界面)protected CommonQueryDialog initCommonQueryDialog() { CommonQueryDialog dialog =super.initCommonQueryDialog();try{dialog.setTitle("月度付款计划查询");}catch(Exception e){handUIException(e);}return dialog;}4、初始化时,是否进入查询条件过滤界面(默认false,当需要过滤界面时,重写,返回true)protected boolean initDefaultFilter() {// TODO Auto-generated method stubreturn true;}5、查询时,执行查询SQL前,自定义条件protected void beforeExcutQuery(EntityViewInfo ev) { SorterItemCollection coll=new SorterItemCollection();coll.add(new SorterItemInfo("number"));coll.add(new SorterItemInfo("entries.seq"));coll.addObjectCollection(ev.getSorter());ev.setSorter(coll);super.beforeExcutQuery(ev);}6、通用条件过滤界面增加自定义页签protected CommonQueryDialog initCommonQueryDialog(){dialog = super.initCommonQueryDialog();try{dialog.addUserPanel(getUsierPanel());dialog.setShowFilter(true);dialog.setShowSorter(true);dialog.setHeight(380);dialog.setWidth(500);dialog.setTitle(‘客户自定义过滤框’);}catch (Exception e){handUIException(e);}return dialog;}protected CustomerQueryPanel getUserPanel() throws Exception{if (erPanel == null)erPanel = new PurOrderQueryUI();userPanel.onLoad();return erPanel;}三、典型客户端代码1、动态调用UI界面private void makePurOrderUI(PurOrderInfo srcBillInfo) throws EASBizException, UIException,BOSException, Exception {String destBillEditUIClassName =“com.kingdee….PurOrderEditUI”;Map map = new UIContext(this);map.put("srcBillID", srcBillInfo.getId().toString());map.put(UIContext.OWNER, this);map.put("srcBillBOSTypeString",destBillInfo.getBOSType());IUIWindow uiWindow = null ;// UIFactoryName.MODEL 为弹出模式uiWindow =UIFactory.createUIFactory(UIFactoryName.MODEL).create(destBillEditUIClassName, map,null,OprtState.ADDNEW);//可对创建的ui进行操作//((CoreBillEditUI).uiWindow.getUIObject()).//setMakeRelations(btpResult.getBOTRelationCollection()) ;//开始展现UIuiWindow.show();}四、KDTABLE 隐藏其组件里自带的按钮//隐藏kdtable的按钮private void hidePanelButtons(KDTable table){Component c = table.getParent().getParent();if (c instanceof DetailPanel){DetailPanel panel = (DetailPanel) c;//获取btnComponent[] components = panel.getComponents();for(int i = 0; i < components.length; i++){Component component = components[i];if (component instanceof KDPanel){KDPanel kdPanel = (KDPanel) component;if("controlPanel".equals(kdPanel.getName())){panel.remove(kdPanel);}if("entryPanel".equals(kdPanel.getName())){Rectangle entryRect = new Rectangle(0, 0, table.getWidth(), table.getHeight() + 29);kdPanel.setBounds(entryRect);kdPanel.putClientProperty("OriginalBounds",entryRect);panel.add(kdPanel, newKDLayout.Constraints(KDLayout.Constraints.ANCHOR_TOP| KDLayout.Constraints.ANCHOR_RIGHT | KDLayout.Constraints.ANCHOR_LEFT|KDLayout.Constraints.ANCHOR_BOTTOM , entryRect));}}}}}1、如何获得当前单据的所有组织、用户信息;// 获得当前财务组织SysContext sys = SysContext.getSysContext();CompanyOrgUnitInfo orgUnit = sys.getCurrentFIUnit();boolean isBizUnit = orgUnit.isIsBizUnit();// 获得当前用户SysContext sys = SysContext.getSysContext();user = (UserInfo) sys.getCurrentUser();if(user!=null){this.prmtAuditor.setValue(user);}2、bos中如何将F7的控件的背景颜色设置为黄色import com.kingdee.bos.ctrl.swing.KDTextField;((KDTextField)PromptSupportedObj.getEditor()).setCustomBackground Color(new Color(16579551));3、其他控件设置背景色:1.// 文本框,类:com.kingdee.bos.ctrl.swing.KDFormattedTextField2.txtTest.setCustomBackgroundColor(newColor(220,255,255));3.4.// F7控件,类:com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox5.((KDTextField)prmTest.getEditor()).setCustomBackground Color(new Color(220,255,255));6.7.// 日期控件,类:com.kingdee.bos.ctrl.swing.KDDatePicker8.((BasicFormattedTextField)pkTest.getEditor().getEditor Component())<BR> .setCustomBackgroundColor(new Color(220,255,255));<BR>// 文本框,类:com.kingdee.bos.ctrl.swing.KDFormattedTextFieldtxtTest.setCustomBackgroundColor(newColor(220,255,255));// F7控件,类:com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox((KDTextField)prmTest.getEditor()).setCustomBackgroundCo lor(new Color(220,255,255));// 日期控件,类:com.kingdee.bos.ctrl.swing.KDDatePicker((BasicFormattedTextField)pkTest.getEditor().getEditorCo mponent()) .setCustomBackgroundColor(newColor(220,255,255));下拉列表框与它们不同,需要特殊处理Java代码1.// 要先写一个内部类,其中实现了ListCellRenderer接口。

金蝶EASV8.0_BOSWeb平台培训_组件篇-02

金蝶EASV8.0_BOSWeb平台培训_组件篇-02
BOS新Web平台培训_组件
BOS WEB平台系统部 2014.11
版权所有©1993-2012金蝶软件(中国)有限公司 ①绝密信息 严禁泄露
①绝密信息 严禁泄露
目的
了解Web动态框架组件和使用组件的基本方法 了解Web动态框架样式和如何进行二次开发
①绝密信息 严禁泄露
P2
组件特点
特色
– – – – – – – – – – – – 基于Jquery&JQueryui进行封装 统一风格的UI展现 支持流体布局,随窗口大小变化,无横向滚动条 全面的Form组件,友好的校验及信息提示 用户体验的提升 多浏览器的支持 支持全键盘录入操作 多主题与多皮肤 CSS3的相关应用 动态层取代弹出窗口 强大的表格展示和可编辑表格 国际化
①绝密信息 严禁泄露
P5
组件的使用方法
界面设计
– 在定义工具上拖放,然后设置属性、事件和方法 – 在代码中动态创建组件,具体样例可以参考帮助系统
编码
– 组件属性
• 属性的设置和获取通过option方法来完成 Waf(“#id”).wafPromptBox(“option”, “displayFormat”); • 有些属性不支持运行期的动态更改
①绝密信息 严禁泄露
P11
二次开发CSS设置
在定义工具上,每个控件中有两个属性可以设置样式,分别是样式类和样式,对应CSS中的 class和style属性。
两种自定义样式方式:
– – 通过样式类设置
• • •
通过覆盖标准产品的CSS结构
在CSS文件中加入必要的CSS设置,一般建议使用class,然后导入到页面的资源列表中。 在控件的样式类中直接填入新增加的样式名称 比如.ui-linkbutton .ui-lb-text {background:red;}, 直接覆盖将所有的按钮背景色改成红色。

金蝶EASBOS开发学习笔记

金蝶EASBOS开发学习笔记

金蝶EAS BOS开发学习笔记一.环境准备先把需要用到的透视图和相应的视图打开,在后面的练习中需要用到。

导入eas包后的结构如上图所示。

BOS透视图下常用到的窗口如上图所示,这些必须打开。

项目属性配置如下图所示:下面是Java透视图中的配置。

EAS 项目的配置数据中心配置调试Config二.需要用到的热键CTRL+SHIFT+R 打开资源CTRL+SHIFT+T 打开类型三.制作第一个列表查询界面打开“金蝶BOS设计开发工具”透视图1.打开eas/metadata/com/kingdee/eas/demo 节点说明:app目录下一般存放实体、表、查询等元数据;Client目录下一般存放ui,即界面数据;其他公共对象,如枚举、异常等通常放在与app、client同级目录中。

2.在app文件夹下新建实体XueLi(学历),父实体选择com.kingdee.eas.framework.app.DataBase3.右击XueLi.entity,在弹出菜单中选择“实体导出表”,保留默认值,名称为T_DE_XueLi4.打开T_DE_XueLi.table,修改主键名称,避免因为重名导致建表错误5.右击T_DE_XueLi.table,选择“导出...”,在弹出窗口中选择“导出数据表”6.打开管理控制台,在“数据中心”选择使用的数据中心,再打开“数据库管理”,把生成的CreateTable.sql中的内容COPY进去,点击工具栏的“执行(F5)”,最后“提交”。

7.在app文件夹下新建查询XueLiQuery,实体选择XueLi.entity8.打开查询XueLiQuery,选择字段标签页,选择“导入”,将要查询的字段添加进来,并调整各字段顺序。

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

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

金蝶时期的那些笔记

金蝶时期的那些笔记

晚上睡不着,打开电脑翻到了一些当年在金蝶时写的笔记,还是让它们出来透透气吧,要不连我都忘记自己曾经写过这些东西了。

金蝶是我第一个东家,也是我技术能力提升最快的地方,真心祝福金蝶能高飞。

EAS开发环境部署一.开发环境的搭建由于现场开发环境与研发中心的差异,搭建环境会有差异,为了保证最后环境的搭建成功,我们分步骤进行搭建,以方便其中的一步如果出错,方便好定位问题1.1使用BOS启动客户端启动BOS,新建一个工程加载EAS Jar包(D:\kingdee\eas\server\lib\下的所有目录的jar包,有些麻烦,所以可以考虑把所有jar包拷贝到一个目录下)这里我把所有的jar包都拷贝到了我自己建的目录allJars然后BOS加载添加外部JAR设置JVM参数-DEAS_HOME=D:\kingdee\eas(EAS_HOME相当于JDK_HOME)-DEAS_SERVER=tcp://localhost:11034(服务端的IP)-Dlog4j.configuration=file:D:\kingdee\eas\client\deploy\client\log4j.properties( Log4j日志配置文件路径,可以没有这个参数)Ok,jar包加载了,启动参数设置了后还需要修改几个地方D:\kingdee\eas\client\deploy\client\vmoptions.properties增加客户端启动的元数据加载路径,这部非常关键OK,现在可以启动试试了OK,搞定(这只是万里长征的第一步)1.2部署自己的代码和元数据到环境中这一步也就是让你的代码和元数据要优先于EAS原有代码和元数据的加载代码优先的设置方法:虚拟W盘,命令:subst w:你要虚拟的目录(相应的去掉W盘的命令是subst w: /d)W盘建立好后,在W盘创建dev目录,并建立两个文件server-user.liblist和client-user.liblist这两个文件用于记录优先加载的目录是那些,因为我开发的代码都会编译到D:\MyCode\EAS_01\bin,所以我制定客户端优先加载这个目录,服务端是一样的道理然后我们设置元数据的优先加载方式客户端,修改D:\kingdee\eas\client\deploy\client\vmoptions.properties,修改部分见红线,因为我的元数据会发布到D:\kingdee\apusic\metas;,所以这里可以设置为优先加载服务端修改D:\kingdee\eas\server\bin\\common.pm这个文件,原理和客户端修改类&#20284;这个时候,基本都差不多了,我们尝试下看我们的单据是否能够被优先加载(这里有点文档思路写的有点跳跃,大家将就着看把,时间紧迫,顾不得字斟句酌了,J)1.3启动EAS,看我们的单据能否使用首先用administrator登陆增加到EAS菜单中去重新用用户登陆,可以看到我们的菜单项了EAS是MVC架构的么?2006年3月EAS是MVC架构的么?逐一分析,先看看EAS是否具备M、V、C这三个元素Modle--xxxControllerBean,在ControllerBean中除了定义了对实体的CRUD(addnew,getValue,update,delete)操作外,还包括实体相关的业务操作方法,如submit,audit,freeze等,应该算的上标准的Modle,下边是摘抄的一些对Model的定义模型(Model):就是业务流程/状态的处理以及业务规则的制定。

金蝶EASV8.0_BOSWeb平台培训_总体篇03

金蝶EASV8.0_BOSWeb平台培训_总体篇03
支持的浏览器
IE 8+
推荐的浏览器
IE 11
Chrome 23+
Chrome 28+
Safari 5+
Safari 5+
响应式布局-自适应各种分辨率,推荐:1280*1024/1024*768
P9
Web安全性
1、身份安全
EAS统一身份认证 CA认证支持
2、通讯安全
数据传输加密 https支持
②机密信息 严禁泄露
P26
Web应用组件
Web组件体系
– 显示及/或处理逻辑的一 个片段
组件 描述
列表显示组件
通用查询组件 DAP组件 工作流组件 BOTP组件 打印套打组件 附件管理组件 引入引出组件 通用F7组件 各种基础F7组件
根据Query进行列表显示及操作
浮动 生成凭证/删除凭证,生成/删除管理凭证 审核、反审核、流程图 推/拉生成、联查单据、上查、下查 多附件文件的上传、存储处理 导入或导出Excel文件数据 组织/物料/客户/供应商/科目/职员/…
模块A 后台服务 模块B 后台服务 模块C 后台服务 模块D 后台服务 模块… 后台服务 模块… 后台服务 模块… 后台服务
P18
显示风格 CSS3
业务事件逻辑 JS 基础控件 JQUERY
Remote Local Remote Local
权限 License HTTP缓存处理
Remote Local
基础服务
服务注入
Remote Local
②机密信息 严禁泄露
基础服务及功能组件
统一身份认证 License
App Server
权限服务
功能权限 字段权限 BOS基础服务引擎

EAS系统初始化培训笔记(1)

EAS系统初始化培训笔记(1)

六和集团金蝶EAS系统初始化培训笔记初始化步骤维护组织单位---建部门---建职位---建职员---权限维护(即建用户)---细化科目---辅助项目---金额录入---正常使用管理单元(即组织单元):先用管理员进入系统,维护组织单位、建部、建职位、建职员、赋权限,维护以上内容必须是管理员才有权限;维护组织单元时先维护“行政属性”和“财务属性”。

行政属性中维护“上级行政组织”、“组织单元类型”、“库存委托组织”行政组织中的组织单元类型选公司(此为针对公司组织单元架构的,当定义部门组织单元架构时此选项就选部门了);财务属性中行业为零售行业,财务实体组织打勾,本位币核算;采购属性中“实体库存组织”添加、“采购实体组织”打勾、“上级采购组织”维护、“记账委托组织”维护、“行政组织”中添加公司所有部门(此操作需要在建部门后再回来添加);销售属性同上;库存属性中注意“业务状态”为正常使用;“成本中心”和“利润中心”为虚体组织,注意“实体组织”栏不打勾;HR组织默认不维护;以上所有部门都设“行政组织”;建部门:建部门时只定义“行政组织”和“责任中心-成本中心”、“责任中心-利润中心”三个项目,“行政组织”属性中“组织单元类型”选为“部门”(在此就可以看到与公司组织单元架构的区别了),“责任中心-成本中心”属性中的“类型”根据单元属性选择;部门流水号建议用公司编码+部门编码(流水号,两位即可);建职位、职员、用户:职位编码用:公司编码+部门编码+流水号;注意要在各个部门下建设职位,即鼠标点部门图标后再点新增;各部门首次建的职位为本部门的“负责人职位”,此选项会自动打勾,本部再建人员的上级职位为本部门主管,注:各部门只有一个“负责人职位”选项可打勾;建职员时候选中该职员所属职位在点击新增进行,注:定义职员时“编码”不用填,为自动形成;EAS有两类用户:“管理员”和“普通用户”。

“管理员”负责维护管理单元、建立用户和设置权限,管理员不能做业务操作;“普通用户”可以维护组织单元、基础数据以及执行各项业务操作。

金蝶学习笔记(个人总结)

金蝶学习笔记(个人总结)

/new_detail.asp?newsid=67KIS专业版如何改变单据上面的数量列的小数位,把小数点的小数位变成两位?在物料属性中修改数量和单价的精度。

KIS专业版固定资产清理产生的变动是可以删除的KIS迷你版年节后新增凭证默认日期是1月1日,要先录入一张凭证,录入第二张就是当天的日期了。

K3删除初始化固定资产反初始化后,进入固定资产管理------业务处理----新增卡片,进入后会弹出个新增卡片的界面点取消后,刷新,初始化时候录入的卡片就可以看到了,做相应的修改删除就可以了。

K3数据导入导出开始所有程序金蝶K3 RISE K3工具K3工具包BOS平台BOS 数据交换平台登陆进去点基础资料新建任务下一步导入基础资料数据连接选择帐套KIS专业版V11.0安装完成后,在使用过程中经常自动弹出错误提示,kis back process 运行时错误‘-8880(ffffdd50)’:从字符串转换为datetime时发生语法错误请高人详细指点,如有相关补丁,请告知。

谢谢!控制面板中--短日期改为2011-04-29格式财务数据的备份是财务信息化管理工作中重要的一个环节,让我们立即进入金蝶系列财务数据备份专题:一、备份前的准备工作:数据的存放规划:内容版本建议路径(不是C 盘) 金蝶软件文件目录金蝶KIS D:\金蝶软件数据库文件目录金蝶KIS D:\金蝶账套数据库备份目录金蝶KIS E:\金蝶备份注意:1、金蝶KIS数据库文件的扩展名为.AIS;2、金蝶KIS软件默认安装路径在C盘,在安装时应事先调整。

3、金蝶KIS软件数据存放目录默认为金蝶KIS软件安装路径;在新建账套时建议单独设立专用文件夹。

4、新建账套名应为公司全称二、备份的最佳时机:1、月结备份:每月结账前作好备份,保存每月财务数据,同时避免在结账时出现错误。

2、年底备份:作为财务资料的年底归档保存,同时以防年结时出现错误可及时恢复。

3、特殊备份:当录入大量资料后,可不必等到下班或月底年底,因工作量大可及时备份,避免重复大量工作。

金蝶EAS BOS开发学习笔记

金蝶EAS BOS开发学习笔记

金蝶EAS BOS开发学习笔记一.环境准备先把需要用到的透视图和相应的视图打开,在后面的练习中需要用到。

导入eas包后的结构如上图所示。

BOS透视图下常用到的窗口如上图所示,这些必须打开。

项目属性配置如下图所示:下面是Java透视图中的配置。

EAS 项目的配置数据中心配置调试Config二.需要用到的热键CTRL+SHIFT+R 打开资源CTRL+SHIFT+T 打开类型三.制作第一个列表查询界面打开“金蝶BOS设计开发工具”透视图1.打开eas/metadata/com/kingdee/eas/demo 节点说明:app目录下一般存放实体、表、查询等元数据;Client目录下一般存放ui,即界面数据;其他公共对象,如枚举、异常等通常放在与app、client同级目录中。

2.在app文件夹下新建实体XueLi(学历),父实体选择com.kingdee.eas.framework.app.DataBase3.右击XueLi.entity,在弹出菜单中选择“实体导出表”,保留默认值,名称为T_DE_XueLi4.打开T_DE_XueLi.table,修改主键名称,避免因为重名导致建表错误5.右击T_DE_XueLi.table,选择“导出...”,在弹出窗口中选择“导出数据表”6.打开管理控制台,在“数据中心”选择使用的数据中心,再打开“数据库管理”,把生成的CreateTable.sql中的内容COPY进去,点击工具栏的“执行(F5)”,最后“提交”。

7.在app文件夹下新建查询XueLiQuery,实体选择XueLi.entity8.打开查询XueLiQuery,选择字段标签页,选择“导入”,将要查询的字段添加进来,并调整各字段顺序。

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

金蝶EAS BOS开发学习笔记一.环境准备先把需要用到的透视图和相应的视图打开,在后面的练习中需要用到。

导入eas包后的结构如上图所示。

BOS透视图下常用到的窗口如上图所示,这些必须打开。

项目属性配置如下图所示:下面是Java透视图中的配置。

EAS 项目的配置数据中心配置调试Config二.需要用到的热键CTRL+SHIFT+R 打开资源CTRL+SHIFT+T 打开类型三.制作第一个列表查询界面打开“金蝶BOS设计开发工具”透视图1.打开eas/metadata/com/kingdee/eas/demo 节点说明:app目录下一般存放实体、表、查询等元数据;Client目录下一般存放ui,即界面数据;其他公共对象,如枚举、异常等通常放在与app、client同级目录中。

2.在app文件夹下新建实体XueLi(学历),父实体选择com.kingdee.eas.framework.app.DataBase3.右击XueLi.entity,在弹出菜单中选择“实体导出表”,保留默认值,名称为T_DE_XueLi4.打开T_DE_XueLi.table,修改主键名称,避免因为重名导致建表错误5.右击T_DE_XueLi.table,选择“导出...”,在弹出窗口中选择“导出数据表”6.打开管理控制台,在“数据中心”选择使用的数据中心,再打开“数据库管理”,把生成的CreateTable.sql中的内容COPY进去,点击工具栏的“执行(F5)”,最后“提交”。

7.在app文件夹下新建查询XueLiQuery,实体选择XueLi.entity8.打开查询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\src2.选择包的根节点eas,右键选择属性,在弹出窗口中选择Solution发布方案信息,新增一个发布方案,命名为demo3.Java发布目录输入前面建立的目录,J2EE发布目录及元数据发布目录输入与其他发布方案相同的目录W:\apusic\metas4.选择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\com\kingdee\eas\demo 看到编译好了的class文件12.重新启动gmis_server服务器,然后用administrator用户登录13.打开“系统->客户化菜单编辑”,新增菜单,UI对象为com.kingdee.eas.demo.client.XueLiListUI14.保存后重新登录,进入系统后可以看到此菜单,但此时双击报错,查看控制台日志,可知是有抽象类方法没有实现15.在Java透视图中打开XueLiListUI.java文件,此时可以看到有错误提示,点击鼠标,自动实现接口类的框架代码。

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

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

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

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

protected ICoreBase getBizInterface() throws Exception { return XueLiFactory.getRemoteInstance();}protected String getEditUIName() {return"com.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,发布方案选择demo3.切换到Java透视图,刷新/bs_dio/demo/dev/src 目录,让新加的UI出现在树中,此时会自动构建,提示有错误4.打开XueLiEditUI.java,查看错误信息,发现是有未实现的抽象方法,生成它5.打开DiplomaEditUI的JAVA类,将createNewData和getBizInterface方法的代码COPY到XueLiEditUI.java中,并做相应修改。

6.打开XueLiListUI.java,修改getEditUIName方法,返回值改成com.kingdee.eas.demo.client.XueLiEditUI7.重新运行代码,可以看到现在已可以调出新做的编辑窗口,增加二条数据,可以成功保存。

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\com\kingdee\eas\demo\app目录下,这是服务器的目录,因此发布之后必须要重启服务器才能生效。

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

2.关于查询时的过滤条件问题如下图所示,在查询时,过滤条件中没有可供选择的内容。

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

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

3.EditUI中数据保存前,对数据进行合法性校验的问题通常有二种方法。

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

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

public void actionSubmit_actionPerformed(ActionEvent e) throws Exception{//名称是否可为空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) {MsgBox.showError(this, "请输入编码!");this.txtNumber.requestFocusInWindow();return;}s uper.actionSubmit_actionPerformed(e); }此种方法较繁琐。

另一种方法较简单。

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

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

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

protected void verifyInput(ActionEvent e) throws Exception { super.verifyInput(e);//名称是否可为空if(txtName.getText() == null|| txtName.getText().trim().length() == 0) {MsgBox.showError(this, "请输入名称!");this.txtName.requestFocusInWindow();SysUtil.abort();}//编码是否为空if (txtNumber.getText() == null ||txtNumber.getText().trim().length() == 0) {MsgBox.showError(this, "请输入编码!");this.txtNumber.requestFocusInWindow();SysUtil.abort();}}七.第二个DEMO:制作一个主从表示例1.在app文件夹下新建实体OrderSheet (订单)2.。

相关文档
最新文档