金蝶EASBOS开发学习笔记

合集下载

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接口。

EAS-BOS开发要点

EAS-BOS开发要点
20实体方法事务属性required与数据库相关的增删改supports查询requiresnew更新7联机调试设置1选择bim业务建模工具透视图2选中解决方案选择项目菜单选择属性选择解决方案测试设置选择测试帐套选择其他测试设置将元数据和资源文件支持热替换勾上3选中解决方案选择运行菜单选择启动测试菜单或快捷菜单启动完毕自动打开登录窗口4用户名输入administrator密码输入kdadmin进入主界面5选择系统菜单选择客户化菜单编辑菜单新增comkingdeeeassampleday4purorderclientpurorderlistui6重新登录7典型示例代码1listui列表界面常用代码tblmain作为框架为list列表界面中的kdtable绑定的变量通过它可以访问到列表上的每一行每一列可以做数据检查控制格式化行合并等操作
第(1)页,共(136)页
燕飞出品
9、修改编辑界面...................................................................................................................53 10、增加实体方法,ListUI 增加按钮,实现按钮调用实体方法 ....................................54 11、通过定义“属性”给表头编辑框增加 F7 关联基础资料功能 ...................................60 12、通过定义“事件”给表头 F7 编辑框增加值改变事件 ...............................................61 13、F7 选择值改变与 ListUI 列表界面查询联动(动态改变查询的过滤条件) ..........63 14、表格分录编辑框通过 F7 关联基础资料,日期格式设置、下拉列表绑定枚举(必须 通过编码实现).....................................................................................................................66 15、对新增的字段(控件)与元数据作绑定 ..................................................................... 67 16、对 UI 上的字段添加事件,并实现事件方法体 ...........................................................69 17、去掉 UI 上的“新增、修改、删除”等按钮 ...............................................................72 18、分录表格增加保存提交时的数据校验 ......................................................................... 72 19、分录表格数据项增加值改变事件 ................................................................................. 73 20、自定义查询过滤条件、排序字段、检索字段、获取查询结果集 .............................74 21 给 KDSpinner(上下选框)控件设置上下选择范围 .....................................................76 22、实体方法事务属性.........................................................................................................77 23、F7 选择支持多选,并取得 F7 的值..............................................................................77 24、给 F7 增加过滤条件.......................................................................................................78 5、层次数据结构 ComboTreeDetailListUI................................................................................79 6、查询统计开发步骤...................................................................................................................92

2022年金蝶BOS平台开发笔记入门实战篇

2022年金蝶BOS平台开发笔记入门实战篇

金蝶BOS平台开发笔记一、入门篇。

新建、修改一种主从表1.建主表➢第一步,在业务建模视图下,新建业务单元。

我们新建一种名为 MainChild_Demo旳单元,别名起为“主从表演示”。

➢点击下一步,创立方式选择“直接新建”,完毕。

生成旳主表如下图:系统自动创立了4个编辑字段(另有某些字段未在本界面显示,在此不做详述。

)2.新增单据体。

仍然在业务视图下,在生成旳“主从表演示”界面上右键,选择“单据信息”,点击“新增单据体”。

新增旳单据体即是从表。

3.字段管理在界面上右键选择“字段管理”,弹出字段管理界面。

➢新增主表字段:在左侧选择“主从表演示”,然后点击“新增字段”即可增长主表字段。

我们新增一种“mainfield1”,字段描述“主表字段1”。

如下图:➢新增从表字段:在左侧选择“第一种表体”,然后点击“新增字段”即可增长从表字段。

我们新增一种“childField1”,字段描述为“从表字段1”,如下图:4.点击保存5.查看新建单元所产生旳对象:打开业务设计视图。

在目录下找到本次新建单元产生旳所有对象。

见下图中选中部分:各扩展名结尾文献旳含义如下:Entity:实体对象。

Table:数据表。

Query:查询表。

Relation:实体关系表。

即实体间相应关系。

Ruleset:Ui:界面。

Bizunit:业务对象。

6.修改实体对象1)主表实体对象旳基本信息:双击打开MainChild_Demo.entity。

一方面展示旳是实体对象旳基本信息,见下图:➢父实体对象:是MainChild_Demo实体对象旳父类。

可以看到,它继承自com.kingdee.eas.framework.app.Database对象。

从这个对象继承过来旳对象,拥有数据库编辑方面旳功能。

➢相应表对象:这个是实体相应旳物理数据表,可以看到,它相应旳是com.kingdee.eas.xuehongtao.demo.app.CT_DEM_MainChild_Demo(蓝色部分是数据表途径,根据每个人新建单元时选择旳文献夹不同而不同)。

金蝶时期的那些笔记

金蝶时期的那些笔记

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

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

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):就是业务流程/状态的处理以及业务规则的制定。

金蝶EAS BOS工作流开发

金蝶EAS BOS工作流开发

金蝶EAS BOS工作流开发1. 流程配置基本知识及示例1.1. 重要概念1.1.1.流程变量流程变量是工作流引擎和业务系统的数据交互的桥梁。

工作流承载业务,驱动业务流程,但是不会执行业务。

工作流中的业务执行,全部都会委托给具体的业务模块执行。

那么,这些被工作流分割的业务功能,在工作流中被调用执行的时候,如何保证做操作的数据的一致性?通过流程变量,在每一步的业务功能执行的过程中,将业务数据保存在流程变量中,那么整个流程的后续活动中,都可以引用该流程变量,来完成业务功能,保证业务数据的一致性。

例如:在凭证的审批流程中,新增凭证审批,审批的时候为什么可以正确定为到刚刚提交的那张凭证,而不是别的凭证?流程变量起到了重要的作用。

在凭证新增之后,将可唯一标示凭证的ID保存到流程变量中,在审批的时候将流程变量中的值传递给凭证,就可以根据这个ID获取到一张凭证了。

流程变量在流程实例的生命周期内都是有效的。

1.1.2.任务输入输出任务输入:在业务发生之前,有工作流传递给业务的数据。

以凭证的过账为例,某个用户收到一条凭证过账的消息,双击消息处理。

在双击之后、凭证的界面弹出之前,工作流会把定义的入口参数变量中的值传递给凭证,凭证根据这个值来展现特定的单据,展现特定的功能。

任务输出:在业务发生之后,由业务系统传递给工作流,需要保存在流程变量中的数据。

仍以凭证过账为例,在用户操作完凭证过账之后,工作流继续流转之前,如果流程定义中定义了任务的输出,那么,就会将凭证对应的属性的数据,保存在流程变量中。

已备在后续的流程活动中使用。

1.2. 注意事项l 绘画工作流图之前一定要先将业务流整理清楚,分析业务流的特性,提取可以抽象出来公用的东西,分析是否可以进行优化等,好的业务流程可以直接映射为工作流流程。

l 利用“流程变量”的威力,建立单据和流程之间数据交换的桥梁。

输入输出参数用来在流程和单据之间进行数据的传递。

输入输出参数和流程变量搭建了流程和单据之间的数据联系通道。

金蝶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_BOS开发平台培训体系

金蝶EAS_BOS开发平台培训体系

1. 倒入解决方案。 2. 新建业务单元。 3. 菜单管理。 4. 发布业务单据。 5. 编写 java 代码。
开发流程(设计工具方式):
1. 倒入解决方案,或者自己新建项目。 2. 新建元数据。 3. 发布元数据。 4. 编写 java 代码。
客户端-----服务端
客户端: 1.获取界面数据。(EditUI 可以通过框架自动将界面控件中的值绑定到 editData 中);
例如: 在该类中我们可以重写_save()方法。这个方法主要是实现保存,我们就可以在该方法中 添加自己代码逻辑。 4.*EditeUI 类是客户端编辑界面对应的类。
5.*ListUI 类是客户端叙事簿界面对应的类。
4.1.2 参考资料
资料\BOS V6.2 开发指南_元数据介绍.pdf 资料\通用 Query 查询开发指南.doc 资料\BOS Studio 开发指南(元数据).ppt
//获取币别的远程调用
界面控制
一般在界面的 onLoad 方法 或者 onShow 方法中控制界面一些属性。 例如:隐藏一个控件。 public void onShow(){
txtName. setVisible(false); //设置 txtName 控件不可见 }
3.1.2 参考资料
资料\开发流程\BOS V6.2 开发指南_Studio.pdf 资料\开发流程\EAS 开发流程.doc 资料\开发流程\视频\6.BIM 币别\Currency.swf
EAS BOS 开发平台培训体系
1 EAS BOS 框架结构简介
1.1 学习内容
1.1.1 概述
什么是金蝶 EAS BOS
BOS,Business Operation System,业务操作系统,是金蝶融合多年的企业应用软件的经验以及 MDA 理念研发新一代技术平台,是金蝶公司全新的管理软件开发工具和管理集成平台。金蝶 BOS 提供了基于模 型驱动架构(MDA)的开发模式和相关的工具,成功的解决了企业应用软件在开发、实施和维护过程中的 质量、周期、成本、风险等方面的问题,并使企业应用软件能够满足企业管理行业特性、企业个性化和持 续完善的要求,对于企业应用软件在行业应用开发和维护、实施带来了全新的应用模式和革命。

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

金蝶EASBOS工作笔记

金蝶EASBOS工作笔记
金蝶EAS-BOS工作笔记
———————————————————————————————— 作者:
———————————————————————————————— 日期:
1.发布元数据没看到代码,可能有以下原因:1。发布方案路径(src,deploy,metadate)不对
2.eas 5.4更新数据中心报文件找不到错误:到项目目录下的runtime下config下的datasources.xml删除 版本检查代码---第二段代码
可能是:1.客户端代码有错误;
ﻩ 2.类不存在
10. 在单据里,得到各分录的记录:
1.通过界面得到:
ProposalDefinedInfopdInfo ; //单据Info
pdInfo.ProposalDefinedEntry1Collection();
//返回ProposalDefinedEntry1Collection集合
ﻩﻩ 2.数据库服务没有启动
ﻩﻩﻩ3.数据中心没有设置正确
8. BOS 中实体Entity 的ID 是通过oracle的Functions 功能实现ID自动变化,通过entity_pkmapping.properties这个找到每个实体的对应BOSTYPE的值。
9. 使用BOS界面,弹出‘客户端配置错误,找不到第三方类’,
15. 当功能运行结果跟你想象中有不一致的地方,但是你的操作认为没有什么问题,
这种情况可以是服务器读取文件没有更新:
解决方法有:1. 你需要涮新下源文件src
ﻩﻩﻩ 2. 重新启动服务器
16. 得到记录集合的方式:1. 通过实体工厂(xxxEntryFactory)
ﻩﻩﻩﻩ 2. 通过查询(xxxQuery)

03EAS-BOS开发新手入门-固定报表

03EAS-BOS开发新手入门-固定报表

EAS BOS开发新手入门——如何使用固定报表框架进行报表开发导读固定报表框架支持普通报表开发、虚模式取数方式报表开发、多页报表开发、左树右表形式报表开发。

同时,对于特殊报表,可以通过二次开发插件来进行扩展。

固定报表框架还将作为扩展报表数据源,在扩展报表中得到扩展。

作者结合实际开发工作中的一些技巧进行总结,在本文中详细介绍了如何使用固定报表框架进行报表开发。

对开发人员初学固定报表开发很有帮助。

请注意:本文件只作为产品介绍之用,不属于您与金蝶签署的任何协议。

本文件仅包括金蝶既定策略、产品及功能方面的信息,不能以本文件作为要求金蝶履行商务条款、产品策略以及开发义务的依据。

本文件内容可能随时变更,恕不另行通知。

目录1.简介 (1)1.1.目的 (1)1.2.范围 (1)2.固定报表开发基础 (1)2.1.概述 (1)2.2.基本开发步骤 (1)2.2.1. 过滤条件面板 (2)2.2.2. 编写继承类 (3)2.2.3. 生成元数据表 (3)2.2.4. EAS主界面增加报表调用入口 (6)3.报表分类 (7)3.1.普通报表 (7)3.1.1. 概述 (7)3.1.2. 过滤界面 (8)3.1.3. 服务端类 (9)3.2.虚模式取数报表 (10)3.2.1. 概述 (10)3.2.2. 过滤界面 (10)3.2.3. 服务端类 (10)3.3.多页面报表 (11)3.3.1. 概述 (11)3.3.2. 过滤界面 (11)3.3.3. 服务端类 (11)4.过滤界面 (12)5.套打 (16)5.1.生成数据源 (16)5.2.新建套打模板 (17)6.权限 (18)6.1.添加权限项 (18)6.2.同步权限 (18)6.3.修改T_BAS_Report权限字段 (18)7.二次开发 (18)7.1.新建插件类 (18)7.2.修改元数据表 (20)7.3.功能扩展 (20)7.3.1. 实现动态列报表 (20)7.3.2. 动态增加菜单 (20)7.3.3. 汇总表联查明细表 (21)7.3.4. 双击调用对应单据 (21)1. 简介1.1. 目的本文档参考陈连力的《固定报表开发指南》,重新排版整理而成。

金蝶EASBOS开发学习笔记

金蝶EASBOS开发学习笔记

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

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

须打开些所口窗如上图示,这必的用下视BOS透图常到示:所下置性目项属配如图置。

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

同client级目录在与app、择体选父XueLi(学历),实建件2.在app文夹下新实体com.kingdee.eas.framework.app.DataBase默留”表,保出体“选单出在XueLi.entity右3.击,弹菜中择实导T_DE_XueLi为称名,值认.表建名导致称名,避免因为重改打4.开T_DE_XueLi.table,修主键误错导择口中选“窗弹,...导择,击5.右T_DE_XueLi.table选“出”在出表数出据”开再打据中心,心”选择使用的数,6.打开管理控制台在“数据中,去容COPY 进的生成CreateTable.sql中的内库“数据管理”,把。

交”,最后“提“点击工具栏的执行(F5)”XueLi.entity 体选择新夹下建查询XueLiQuery,实文7.在app件询要查将导,标签页选择“入”,段择XueLiQuery,查打8.开询选字。

序顺段字各整调并,来进加添段字的.。

段键和排定页它“该还应在其”中义序主字9.在client文件夹下新建UI,父对象选择com.kingdee.eas.framework.client.ListUI(列表界面),BO对象选择XueLiQuery.query,其他用默认值即可。

金蝶EAS BOS最佳入门

金蝶EAS BOS最佳入门

金蝶EAS BOS业务价值
作为新一代成长型企业的贴身技术平台,金蝶EAS BOS具有非常突出的三大特性:集成性、开放性、扩展性。
集成性
业务功能集成
所有业务功能通过面向对象的分析设计方法,分解为数据模型、设计模型与部署模型,并通过定义工具添加到元数据模型中。任何一个新开发的业务功能都可以用统一的方式与其他业务功能进行交互。统一的通信机制保证了系统功能间的高度集成性,同时保证了整个系统内功能的一致性及可靠性。
金蝶EAS BOS在灵活架构体系的基础上,同时提供完整企业管理的基础服务。
统一的安全控制
金蝶EAS BOS在支持标准的LDAP协议的同时,还内置了一套集成的统一认证服务器,便于用户安全体系的部署。满足企业信息系统用户一次性登录,按照不同系统的授权能力,畅顺访问多个业务系统的统一安全控制要求。
SQL语义翻译引擎
虽然所有大型数据库都支持大部分的标准SQL语法,但是每个厂商提供的数据库产品都有各自特性的SQL语法子集,这些特性子集的存在造成了业务系统不能够直接在多个数据库产品之间迁移的障碍。
金蝶EAS BOS提供的SQL语义翻译引擎,可以使不同的数据库产品都能够正确理解和处理来自业务系统发出的操作请求。
持续的知识积累
金蝶EAS BOS在模型架构的基础上提供面向应用方案的配置管理工具。用户可以将散布在系统各个方面的业务知识进行统一管理,并可以随着业务能力的提升不断补充新的知识内容,金蝶数十万家客户的应用及管理知识也可以通过这个工具进行相互的交流及补充。全面提升企业的应用能力。
BOS提供了国际化版本引擎,通过这一技术,业务系统可以支持不同国家和区域的特殊性,如多语言支持、区域化的数字日期格式等。以多语言为例,用户可以自行配置所使用的语种,不同国度的使用者可以使用不同语种的操作界面。在安装多语言版本的操作系统上,用户可以在各种语言版本间自由的切换。

EAS-BOS单表开发简明教程(新)

EAS-BOS单表开发简明教程(新)

EAS-BOS单表开发简明教程(新)单表开发简明教程 (1)1、实体层 (2)2、实体导出表 (6)3、导出数据表创建SQL语句 (7)4、在数据库执行建表SQL(可以放在运行时执行) (8)5、查询层 (8)6、用户界面层 (10)1、选择client包按“右键”,新建查询列表用户界面 (10)2、新建编辑界面 (14)7、发布元数据,生成JAVA源代码 (17)8、修改列表界面代码 (17)9、修改编辑界面代码 (18)10、自定义查询(必须实现的方法) (19)单表开发简明教程打开“设计开发工具透视图”准备工作:新建包,输入子系统【简码】(必录)创建子包app存放服务端元数据(主要是实体、表、查询)创建子包client存放客户端元数据(主要是用户界面:列表界面、编辑界面)1、实体层选择app包按“右键”,新建实体:“父实体对象”选择框架的一个【基类】(必须)选择基类:系统方法“全部不选”如果没有或错误选择基类,重新选择基类将系统自动生成的id删除,因为基类已经存在id的字段选择“属性”标签,点击“增加自有属性”name字符串类型、rq日期类型、sl带小数点的数字类型,详细定义如下:选择“逻辑键”标签,定义【逻辑键】2、实体导出表3、导出数据表创建SQL语句4、在数据库执行建表SQL(可以放在运行时执行)5、查询层选择实体导入查询字段在查询定义界面,选择“其它”标签,在主键定义栏点击增加,选择id作为【主键】6、用户界面层1、选择client包按“右键”,新建查询列表用户界面选择【父UI对象】(必须)选择BO对象选择需要的字段在列表界面点击空白按右键选择“属性”,将layout改为KDLayout在列表界面点击表格按右键选择“属性”打开anchor属性定义2、新建编辑界面选择【父UI对象】(必须)选择BO对象选择需要显示的字段7、发布元数据,生成JAVA源代码所有元数据都需要发布,选中元数据按右键,点击校验可以检查元数据是否正确打开“包资源管理器”透视图8、修改列表界面代码【PurOrderListUI.java】增加两方法:ListUI继承com.kingdee.eas.framework.client.BillListUI,(必须)实现的方法:@Overrideprotected ICoreBase getBizInterface() throws Exception{//通过Factory返回IPurOrder接口,查看数据时使用returncom.kingdee.eas.sample.day4.PurOrder.PurOrderFactory.get RemoteInstanc e();}@Overrideprotected String getEditUIName(){//返回编辑界面名称全路径,新增、查看数据时使用return"com.kingdee.eas.sample.day4.PurOrder.client.PurOrd erEditUI";//com.kingdee.eas.sample.day4.PurOrder.client.PurOrderEdi tUI.class.getName()}9、修改编辑界面代码【PurOrderEditUI.java】增加三方法:EditUI继承com.kingdee.eas.framework.client.BillEditUI,(必须)实现的方法:protected ICoreBase getBizInterface() throws Exception{//通过Factory返回IPurOrder接口returncom.kingdee.eas.sample.day4.PurOrder.PurOrderFactory.get RemoteInstanc e();}protected IObjectValue createNewData(){PurOrderInfo info = new PurOrderInfo();return info;}@Overrideprotected KDTable getDetailTable(){return null;}10、自定义查询(必须实现的方法)1、创建自定义查询条件PurOrderFilterUI。

金蝶BOS学习笔记-java版

金蝶BOS学习笔记-java版
}else{ this.btnEdit.setEnabled(true); this.btnRemove.setEnabled(true); this.btnStart.setEnabled(true); this.btnStop.setEnabled(false); this.menuItemCancel.setEnabled(false); this.menuItemCancelCancel.setEnabled(true); this.menuItemRemove.setEnabled(true); this.menuItemEdit.setEnabled(true);
} FilterInfo filter=new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("number",this.txtNumber.getText(),CompareType.EQUALS));// 做比较 if(this.editData.getId()!=null){
String id=tblMain.getRow(rows[i]).getCell("id").getValue().toString();//获得id。
TestApportionParaInfo paraInfo=TestApportionParaFactory.getRemoteInstance().getTestApportionPar aInfo(new ObjectUuidPK(id));//通过id获得对象
filter.getFilterItems().add(new FilterItemInfo("id",this.editData.getId(),CompareType.NOTEQUALS));

金蝶EAS_BOS工作笔记

金蝶EAS_BOS工作笔记

金蝶EAS_BOS工作笔记1. 发布元数据没看到代码,可能有以下原因:1。

发布方案路径(src,deploy,metadate)不对2. eas 5.4 更新数据中心报文件找不到错误:到项目目录下的runtime 下config 下的datasources.xml 删除版本检查代码---第二段代码3. 在eclipse中加入反编译插件,1。

jad.exe 加入到C:\WINDOWS\system322. jadclipse_3.1.0.jar 加入到E:\kingdeeEAS\eas\bos\BOSModular\platform\eclipse\plugins4. 继承ListUI的界面,必须有个id字段5. 加载onLoad方法出错,有可能是onLoad()方法,调用其他方法里面有错误代码6. Invalid column name : 1. rowSet.getString(“xxx”); xxx不是有效的列名2. 还有就是table的列名无效7. 应用服务配置不正确:可能是:1.启动的服务器与运行的项目方案不一致2.数据库服务没有启动3.数据中心没有设置正确8. BOS 中实体Entity 的ID 是通过oracle的Functions 功能实现ID自动变化,通过entity_pkmapping.properties 这个找到每个实体的对应BOSTYPE的值。

9. 使用BOS界面,弹出‘客户端配置错误,找不到第三方类’,可能是:1.客户端代码有错误;2.类不存在10. 在单据里,得到各分录的记录:1.通过界面得到:ProposalDefinedInfo pdInfo ; //单据InfopdInfo.ProposalDefinedEntry1Collection();//返回ProposalDefinedEntry1Collection集合pdInfo.ProposalDefinedEntry2Collection();//返回ProposalDefinedEntry2Collection集合2.通过实体关系得到:this.kdtEntry1 //得到kdtEntry1 这个表格的对象this.kdtEntry2 //得到kdtEntry2 这个表格的对象this.kdtEntry3 //得到kdtEntry3 这个表格的对象11. 你想引用某个界面上所有功能:1. 可以通过继承这个界面2. 可以通过复制这个界面,再反编译实现类12. 如果你得到一个实体的Info对象,再取到实体各字段的值1. Info.getString(“这里写字段的名称”);2. Info.get()方法——得到各属性的值13.发布BIM 或者是BOS下的文件之前,最好是先校验下,如果校验不通过,那么发布肯定过不了。

金蝶eas开发入门总结

金蝶eas开发入门总结

<metaDataBrief>
<packageName />
<name>com.kingdee.eas.mydemo.mydemo</name>
<metaDataType>pack</metaDataType> <alias>metaDataBriefView[.com_king
dee_eas_packages].metaDataBriefs.metaDataBrief[com.kingdee.eas.mydemo
基础知识:
Ksql:
一种我们自己定义的 SQL 方言,需要翻译到具体数据库厂商的 SQL 方言。
应用程序
JDBC 接口
Ksql driver
实际的 JDBC Driver
Select Top 10 * from T 查询前 100 条
Select * from A LEFT JOIN ON A.FID = B.FID
<description>metaDataBriefView[.eas_base_subsystem].metaDataBrie fs.metaDataBrief[com.kingdee.eas.mydemo.client.PurReqListUI].descript ion</description> <parent>com.kingdee.eas.mydemo.mydemo</parent> <boType /> </metaDataBrief> 另需在 resource 下面配置相应的中文资源说明。
库存组织是指管理业务的部门,一个库存组织只能属于一个公司。一个公司可以 设有多个库存组织。对于生产制造企业,是一个独立主生产计划的工厂,在系统 中工厂概念同库存组织。

金蝶EAS BOS工作笔记

金蝶EAS BOS工作笔记
commonQueryDialog.addUserPanel(new ContractFullFilterUI(this, actionOnLoad));
6 / 59
ห้องสมุดไป่ตู้
内容来自网络,请谨慎验证使用。
return commonQueryDialog; } } 24、得到外键属性的值: 通过主实体得到得到该外键属性的 id,如:entryInfo.get 外键()对象(这个对象只有 id);先得到外键对象 id,通过 id 得到外键对象 得到外键对象,那么就可以得到外键实体的任何属性值 25、初始化界面: publicvoidinitUIToolBarLayout() { super.initUIToolBarLayout(); kDBtnVoucher.setIcon(EASResource.getIcon("imgTbtn_auditing")); } 26、点击‘table’时,提示‘你没有选中行’或者‘行的颜色没有变化’可能: table 里没有 id 字段 tblMain.checkParsed(true);这段代码没写 27、出了有关系统‘代码底层的错误’,请检查自己的代码; 28、设置单元格 Cell 数字格式,对齐格式: table.getColumn(columnName).getStyleAttributes().setNumberFormat("#,##0.00;#,##0.00"); table.getColumn(columnName).getStyleAttributes().setHorizontalAlign(com.kingd ee.bos.ctrl.kdf.util.style.Styles.HorizontalAlignment.RIGHT);

金蝶EASBOS开发学习笔记

金蝶EASBOS开发学习笔记

金蝶EAS BOS 开发学习笔记环境准备先把需要用到的透视图和相应的视图打开,在后面的练习中需要用 文件Q 編辑① 浏览理 搜索迅)项目(E)运行迟)窗口働 服务◎ 帮羽®戸”回色繆EJE) /也<V倉包幷类 虻\塁大纲 O口]〔日协调试 直鎌BOS 设… 聖斯如 牡资族baseJ w 曲 j i 虫 metadata SVTI •拶曲血H s a a由曲.w kiri 田田$卜a :p :卜S 曲t - 田 A信用View:, R FS nuj rce Nbs墙辑器JlVi编译蛊血畦輕Ja^dac ffcKSDldtioi^^iS e I H.S© Mio谐布左荚后息So I jfi o n^^ *S H斛冼方耒测区说苴项目弓峥运暫f调试RS更构厅罗导入eas包后的结构如上图所示◎控制皆[,V已终止、宗布TE^S : (2C1L-0戎、” ◎校验信息孑数折郭定n Jits=曰|-玖&J. BOS透视图下常用到的窗口如上图所示,这些必须打开项目属性配置如下图所示:Java构證聲轻3 il«U<s)| “项目专]魁岸柑]%悴库聃卑出◎ 槪2踊径中的妙件爭辿;j 凸tas/iTt妙色括:<±S)•带暢除:r馭w鑒奉机库用肓:彳叶〔无)□州干搐嗡±X收月杵涌克件凫D 吐背输岀文忡夹①:;aj r ck?5t;JA Q £>.5vn '&匚恂営寄 'L_'- clientH ® deploy"耳deployed.tTietas ::匚上«xportt*mp> 「&刖'7 metadata](zj? runtime》LJ &src('■ w?b也庭新立件夹理•”Java构建路径0 -3源代码⑸:迂T项BfP)] F库(L)丨切計呼和导出g—vti・rrrtin r—,・urrvti・ i—i ・nr^-s»构建踌径上所必需的项昌®:爵加C4选择齊立1半夹③:⑦| 确定][ 班消Java^SS®&i®代码(S) I 0攻目(P)| m 库街 玄排序和导出(Q) 齿逢踣径上的」AR 和类左件夹:凱国而US 廨涎S 葉]] > limiirr miir■»■■■ mm miamm■■■«»■■ irmiimamir 鼎访1可规则:投有走义现飓 謬本机库ES :[咔(无) :-mi db2jcc.jar - W;\«AServei \5crvciVib\dientAtrd 兰 ikeycom.jar - W;\e a ASe rve r\s erve r\ 1 i b\c 1 i e nrt\trd 凰 ^eruletjar - 41/:\e a s \Se ive r\se rver\l i b\cl i &nt\trd Dia exizeption.jar — WiXe^s^SeiverXserver^lib\client\trd 麵 ctrl-spreadapplicatidrtjar- W:\e3s\Server\se rver\l i b\c 1 i & -Ctrl *d ata-wizard .jar - W:\e a s\Se rv e r\s erve rM i b\c 11 e nt\b o : __!■>Ctrl -kingdee l^mj ar 一 W:\es A Ser/e r\?e ryer^lib\匚lient'bos 爲 Ctrl-Icdformjar - Wi\eas\Server\seiverMib\clienftbos frni -□叫 ctrl-report.jar - W:\ta?\$erver\?eiver\lib\c 1 ieritSboi (mis ■■^5 ctrl-extendcontrols ja r — W:\eas\ServeAsen/erMib\cl ierit\ >5 formuh-client.jar- W:\taj\Servtr\5tiver\lib\dicntYboj • h ctrl -etLjar — W:\e a s\Se rve r\se r/e r\l i b\cl i ent\b o 5 ctrl^Ibibench.jar « W:\eas\Server\s etveAl ib\cl ientXbos :.■品 Ctrl *-ana lysis.jar- W:\e a ;\Se rver\st rve r\l i b\d i tnt\b o i eio license-cliientjnir — a s\Se rve r\5eive r\hb\匚h 已门 "I 卜恭加学R” 渤[]夕卜制以RQS- 歸加發是 睡加摩固“, 蠡切买文件夹◎“ Add ExternaJ 口小 FQlder llh ggg^ Java 匚▼ O 册码⑸| e 项目(P)■库(0 %排序和塑0 构锂&轻上的」缨和菱文件夹:^B I M KO'KSSS']'! ■ 1Arei nirr mi IBL ■•■■mwiiri -Biiimiia■■ jiaamiursmu J ・URE 乗皤胆灯卫詆访问规则:没有走文规贝U 毬本机库位畳;口:(无) n [S 件血r 一 p ,遢 Jjse.jar - t>-A t>“; W;\B 0SM9dul«^dkL5\jre\l ib W:\BOSModulflr\jcik L5\jre\l ib jce.j^r — W:\D0SModwlar\jdkl.5\jrE\Jib chars ets jar — W:\9DSModu lar\jdkl.5\jre\|ib dnsns.pr - W:\B0SMadukr\jdkl.5\jre\lib\ext locale data Jar - W :\BOSModul^r\jdkl,5\jreSliL\ext 3unjce_provider.jar - W:\BO SMo du la r\j d k 1.5\jr e\l i b\ert ;unpkc;Ll.jar — W:\BO SMo du I a r\jd kl. 5 \j r eM i b Vext断s代丽莎["ST亦库和显丽i______________________________________ "■__________________________________________ ________________________________ I、pIHVH F^HV'!E UBI■■■UBI■ ■■ &■■.■ ■■■ Mi■■■um ■ ■■ ■;■■ ■ f构建类酩径的顺序"及导出的条目©; (导岀的孫貝湎加到風属顼目)a(^eas/src二BiiJRE 系筑璋[Jdkl.5]Z鼻汁IM亲蜒库[解决方聚]O+出〒。

  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.。

相关文档
最新文档