EASBOS应用框架开发指南.doc

上传人:文库蛋蛋多 文档编号:2398901 上传时间:2023-02-17 格式:DOC 页数:40 大小:803.50KB
返回 下载 相关 举报
EASBOS应用框架开发指南.doc_第1页
第1页 / 共40页
EASBOS应用框架开发指南.doc_第2页
第2页 / 共40页
EASBOS应用框架开发指南.doc_第3页
第3页 / 共40页
EASBOS应用框架开发指南.doc_第4页
第4页 / 共40页
EASBOS应用框架开发指南.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《EASBOS应用框架开发指南.doc》由会员分享,可在线阅读,更多相关《EASBOS应用框架开发指南.doc(40页珍藏版)》请在三一办公上搜索。

1、EAS-BOS应用框架开发指南目录1.应用框架概述42.应用框架设计模型结构52.1.通用设计模式及功能说明52.1.1.取数虚模式52.1.2.操作状态提示模式52.1.3.后台操作模式62.1.4.快速定位模式72.1.5.表头排序模式72.1.6.界面状态管理模式82.1.7.数据绑定模式82.1.8.表格设置模式92.1.9.通用校验框架模式92.1.10.通用异常框架模式102.1.11.树型结构的算法优化模式102.1.12.查看编辑界面的编辑与删除模式112.1.13.打印设置用户相关性支持模式112.2.典型UI交互及生命周期管理122.2.1.UI创建的过程及处理122.3.

2、业务对象层132.3.1.通用设计方法132.3.2.业务数据状态管理132.3.3.类体系152.3.4.所有业务对象超类CoreBase162.3.5.普通业务对象超类ObjectBase172.3.6.基础资料超类DataBase182.3.7.层次数据超类TreeBase192.3.8.单据超类CoreBillBase(单据头)202.3.9.单据超类CoreBillEntryBase(单据体)212.3.10.财务类单据超类BillBase(单据头)222.3.11.财务类单据超类BillEntryBase(单据体)222.4.UI层232.4.1.通用设计方法232.4.2.数据绑

3、定232.4.3.UI元素的使能控制242.4.4.UILoadListener242.4.5.序时簿类UI252.4.6.类体系252.4.7.通用基类CoreUI262.4.8.普通序时簿类ListUI262.4.9.带通用查询的序时簿类CommonQueryListUI292.4.10.单据序时簿类UI302.4.11.层次数据序时簿类UI302.4.12.带拥有者的层次数据序时簿类UI332.4.13.带分类的层次数据序时簿UI332.4.14.带拥有者和分类的层次数据序时簿UI342.4.15.编辑类UI342.4.16.类体系342.4.17.普通编辑类UI352.4.18.单据编

4、辑类UI373.应用框架典型范例393.1.普通基础资料393.2.层次型基础资料393.3.HD单据结构范例393.4.HmD单据结构范例(不推荐使用)391. 应用框架概述应用框架初始目标即是实现基本数据结构及通用界面交互的处理。减轻业务系统通用界面的开发工作量,提高工作效率。目前的应用框架分为两层,一部分是uiModel主要是对于UI层的抽象,独立于EAS开发系统;另一部分是与EAS进行紧密集成的eas_framework部分。本文档主要描述eas_framework的设计实现部分。2. 应用框架设计模型结构2.1. 通用设计模式及功能说明2.1.1. 取数 虚模式对于列表方式数据查询,

5、应用框架统一使用虚模式进行取数。1.意图:在数据量较大的情况下,进行分批取数,减少网络流量,加快响应速度。2.动机:在信息系统中,数据查询是最常用的操作,但如果查询结果数据量很大情况下,一方面会增加网络传输的数据量,另一方面是一个耗时的过程,客户会出现一个可能较长时间的等待。这两方面都会降低软件的可用性。为解决这个问题,我们使用虚模式。如果列表中定义了主键,Query会创建一个临时表来存放主键,以后取数据均通过此临时表进行处理。如果没有定义主键,则使用top 100等方式来获取。后一种方式不推荐使用。3.适用性:在数据量较大情况下非常有效。额外消耗是会创建一个临时表处理。4.应用:ListUI

6、中使用。5.缺点及注意事项:因为大于100条数据时,会会创建一个临时表处理。2.1.2. 操作状态提示模式对于操作提示,应用框架统一了提示方式。如果界面中有状态条,则在状态条中提示;如果没有状态条,则为对应框方式处理。1.意图:在状态条中进行统一信息提示。2.动机:在企业信息管理系统中,用户与系统的交互非常多。在用户操作过程中,一些非法的提示、成功完成操作,不成功的操作,我们传统的做法是给用户一个对话框提示,显示这些信息。但这样一来,我们会增加用户的无意义的操作,中断用户的连续操作,对用户非常不友好。为了解决这类问题,对于一些系统的提示,采用状态条进行统一的提示,减少用户的一些无意义的操作。用

7、户仅在状态栏就可以获取系统信息。3.适用性:对用户的一些常用而且连续的操作界面,我们这种模式大大方便用户的交互。对于无状态栏或信息较多的情况无能为力。4.应用:CoreUI,EditUI5.缺点及注意事项:对于模式对话框,目前由于没有显示状态栏,所以此模式不生效。2.1.3. 后台操作模式对于长时间的耗时操作,应用框架统一了处理机制,当前界面锁定,状态栏进度条提示。但用户可切换到其他业务界面继续操作。1.意图:长时间操作进行多线程处理,不影响其他任务。2.动机:在企业应用管理系统中,有一些长时间的操作功能,如过账、结账等功能。这时传统的做法会让用户等待,直到操作完成。这样用户这段时间内基本上对

8、系统不可操作,大大降低了用户的可用性。为了解决这个问题,框架采用了对某些功能使用多线程机制,对于耗时操作新起一个线程来运行。这样其他任务还可以继续使用,增加了用户体验。3.适用性:对于一些操作提供了方便。长时间操作的当前操作页签会锁定,直到系统完成后释放。4.应用:CoreUI5.缺点及注意事项:如果业务系统的状态在锁定之后控件完成一些状态改变,当后台操作完成后的状态恢复不生效。需要特别注意处理。2.1.4. 快速定位模式对于列表方式数据查询,业务系统可定制定位字段,应用框架根据定制字段在列表中自动定位。1.意图:对于大数据量情况下,快速定位到用户期望操作的数据下。2.动机:对于大数据量的列表

9、,框架已经使用了虚模式,但用户要在列表中找一条符合条件的数据,就可能需要拉动滑动条来查看,这对于用户来说是一件不愉快的事。为了解决这个问题,我们对常用的列使用了快速定模式,方便用户来进行查找操作。3.适用性:用户可快速地在列表中找到符合条件的记录。4.应用:ListUI5.缺点及注意事项:由于此定位方式是基于表格查找方法,最差的情况上,把所有虚模式的数据取回来后发现没有匹配项,这时提示用户没有找到。这种情况下效率最差。2.1.5. 表头排序模式对于列表浏览界面,可通过单击表头来实现使用表头字段进行重新的全排序。1.意图:对于列表数据,用户可自由地重新排序他希望的列。2.动机:对于大数据量的列表

10、结果,通常我们做过滤时会让用户指定排序的列。但在结果查询后,用户也希望可以在结果集中进行重新排序,而不是进行重新过滤后指定排序字段。为了解决这个问题,我们允许用户对指定的表列头进行排序,而不需要重新在过滤中指定排序字段。3.适用性:用户可对结果集进行快速的重新排序。4.应用:ListUI表头排序。5.缺点及注意事项:如果表格中有列为Query中没有的,会出错。需要业务会知应用框架不可排序列。2.1.6. 界面状态管理模式对于新增、查看、编辑状态进行了统一处理。1.意图:对于编辑界面的状态处理进行管理。2.动机:对于通用的用户操作状态,我们给出一下统一的处理机制。如:查看状态下,所有的界面元素被

11、锁定,切换到编辑状态时解锁,还原初始状态。3.适用性:用于对EAS中统一的操作管理机制。4.应用:EditUI及其子类。5.缺点及注意事项:对于业务状态决定的界面元素需要业务来完成。2.1.7. 数据绑定模式1.意图:统一规划界面数据与实体的关系。2.动机:由于控件与界面操作的实体没有任何关联,那么每个界面我们都需要开发人员手工对控件与实体的值进行同步处理,大家需要写很多重复代码,为了减少大家的工作量,并且可视化处理,同BOS Studio配合,来共同完成对象属性与控件属性的映射关系。3.适用性:可在数据编辑界面完成数据加载到控件,也可把控件的值写入对象中。4.应用:在定义了数据绑定的界面中。

12、支持HD,HmD,HDD等常见结构。5.缺点及注意事项:数据绑定必须识别数据类型,控件类型。这样生成代码才能识别出来。2.1.8. 表格设置模式1.意图:统一表格的格式处理,如:列宽,列顺序,行高等情况。2.动机:由于表格的一些通用格式用户可以自己进行定义,那么统一进行格式数据管理也顺理成章。目前可以进行统一处理的格式有:统一的行高,列宽,列锁定(此列前所有列都被锁定),列次序,列隐藏。3.适用性:仅对于固定列的表格有意义。4.应用:所有ListUI的子类。5.缺点及注意事项:动态列的表格,由过滤条件来决定列的显示情况的不能处理。或者说需要业务的处理在应用框架表格设置后进行后续处理。2.1.9

13、. 通用校验框架模式1.意图:统一数据校验处理机制。2.动机:通用校验框架主要实现了客户端的自动化校验以及支持扩展的自定义校验,并与通用异常框架结合,将校验产生的错误信息一次性抛出,改善了原有方式的用户交互性。通用校验框架主要负责客户端校验过程,服务器端的校验仍然按原有方式处理。3.适用性:对于实体属性自动化校验相对比较简单,几乎不需要用户的干预,只需为实体属性定义约束规则即可。针对一些复杂业务逻辑的校验,校验框架提供了自定义实体属性的校验方式,自定义校验使用命名约束实现,所有符合命名约束的方法将会被框架调用。4.应用:服务端,客户端均可使用。5.缺点及注意事项:对于已经存在的EAS代码升级不

14、能平滑进行,需要开发人员修改程序代码。2.1.10. 通用异常框架模式1.意图:通用异常框架是为了解决业务系统中抛出的多异常的需求,使用通用异常处理框架,可以将多个异常封装成一个业务异常抛出,并能对抛出异常的信息进行自定义的格式化实现。2.动机:在服务器端的ControllerBean里面,经常要对值对象属性进行校验,并将校验错误的异常抛出。但是这样的异常分布太多,如果多个异常同是发生是并不能对于这些进行一次性校验,这样对于用户很难使用,也不友好。通用异常框架包装所有的可校验异常,可一次性抛出,方便用户一次性修改错误信息,很大程度上提高了软件的可用性。3.适用性:对于值对象属性的非法性等简单处

15、理的异常进行统一包装。4.应用:服务端,客户端均可使用。5.缺点及注意事项:对于已经存在的EAS代码升级不能平滑进行,需要开发人员修改程序代码。2.1.11. 树型结构的算法优化模式1.意图:对于层次结构的数据避免了递归算法,提高数据查询效率。2.动机:使用特定的数据结构来避免树结构的递归处理算法,对于整棵树,可以一次性获取所有的节点数据,减少了数据的处理。约定,使用长编码来生成树结构的层次关系,这样使用长编码就可以一次得到一个节点的所有下级节点。3.适用性:适用于树结构的数据维护中,并且对于树的排序没有特殊的要求情况下。4.应用:所有EAS的树结构中。5.缺点及注意事项:对于编码的次序只能靠

16、字符的次序来排列,不能由用户决定树结构的一个树排列次序。2.1.12. 查看编辑界面的编辑与删除模式1.意图:能够在编辑界面中对于数据进行修改与删除处理。2.动机:对于数据编辑界面,需要能够由查看状态切换到编辑状态,并且可以进行数据的删除操作。这种模式改进行了用户的体验,方便数据维护操作。3.适用性:对于所有的数据编辑,此模式都可使用。4.应用:可应用于EditUI的所有子类中。5.缺点及注意事项:暂无。2.1.13. 打印设置用户相关性支持模式1.意图:由于目前的打印设置的格式用户可自行定义,包括:页眉,页脚,内部字体等。因此有必要对于这类用户可自定义的格式进行保存处理,以方便用户下一次依然

17、使用此设置。2.动机:用户对于目前表格中的页眉,页脚,字体等信息可以进行编辑与修改,但EAS原来没有考虑用户重用此类设置,倒致用户每次打印表格数据都要进行重复的工作,大大降低的EAS的可用性。因此,应用框架统一把此类需求进行整理,进行了一致的处理。3.适用性:适用于序时薄的界面中。4.应用:仅适用于EAS的ListUI的子类中。5.缺点及注意事项:仅适用于EAS的ListUI的子类中。2.2. 典型UI交互及生命周期管理2.2.1. UI创建的过程及处理说明及注意事项:1. 所有的UI创建都由UIFactory来完成;2. UIFactoryHelper完成UI中的对象初始化工作;3. 业务对

18、象层应用框架在业务对象层建立了一些典型业务对象,可用做设计人员建立自己的业务对象的超类。这些用做超类的业务对象,既定义了对象属性,也提供了业务方法。例如,层次数据的超类TreeBase在数据保存时会自动维护level、isLeaf和longNumber的正确性。3.1.1. 通用设计方法3.1.2. 业务数据状态管理业务数据状态属于数据的附加描述属性,表达业务数据经过的处理过程,例如:是否已生效、是否已审核,并据此进行相应的逻辑控制。业务数据状态根据业务数据的不同类型会有不同组合,例如:基础资料中可能只有是否生效状态,而单据中会有是否已审核及是否已关闭等状态。在应用架构中会抽象业务数据中存在的

19、状态种类,并在超类体系里固化对某些通用状态的处理逻辑。状态配置表下表列出了所有已知的数据状态属性,这些属性将作为基础的状态属性供定义具体的业务对象时选择使用。状态名状态描述状态枚举类型属性名字段名说明生效状态0:暂存EffectedStatusEnumEffectedStatusFEffectedStatus暂存的业务数据不需要进行数据合法性检查,不参与统计报表和结账结算处理1:生效作废状态0:普通DeletedStatusEnumDeletedStatusFDeletedStatus作废的业务数据不参与统计报表和结账结算处理1:作废审核状态0:未审核1:已审核CheckedStatusEnu

20、mCheckedStatusFCheckedStatus冻结状态0:未冻结BlockedStatusEnumBlockedStatusFBlockedStatus冻结的业务对象禁止参与新的业务活动,但已经存在的业务活动不受影响。有的业务对象的冻结状态可能会进一步细分,如“客户”的冻结可能会包含:Posting block、Order block、Delivery block、Invoicing block1:已冻结下达状态0:未下达ReleasedStatusEnumReleasedStatusFReleasedStatus订单类的单据一般会有下达状态1:已下达预算审批状态0:未审批Budge

21、tAuditedStatusEnumBudgetAuditedStatusFBudgetAuditedStatus1:审批未通过2:审批已通过交付状态0:未交付DeliveredStatusEnumDeliveredStatusFDeliveredStatus1:部分交付2:全部交付FI记账状态0:未记账FIPostedStatusEnumFIPostedStatusFFIPostedStatus1:已记账MA记账状态0:未记账MAPostdStatusEnumMAPostdStatusFMAPostdStatus1:已记账关闭(结清)状态0:未关闭ClosedStatusEnumClosed

22、StatusFClosedStatus1:已关闭说明:1、 属性对应的数据类型都是相应的枚举类型,类型为Int。字段的数据类型也使用Int。2、 在com.kingdee.eas.framework包中定义了枚举类型供使用。使用方法所有基础的状态属性被定义于配置表中,已集成于BOS Studio中。如果业务对象要使用某个状态属性,可方便地选取即可。单据状态单据状态往往是由多个基础状态属性组合后对外的统一表现形式。以订单处理为例,可能表现为六种状态:在内部处理中,实际上选择了三个基础的状态属性来实现控制逻辑:作废状态、完成状态和关闭状态。控制逻辑的规则是:单据状态状态判断操作控制取消只要作废状态

23、为1 若单据进入取消状态,则只有恢复后才能进行其它所有单据操作关闭单据不是取消状态且关闭状态为1禁止除与取消相关外的其它操作计划单据不是取消状态也不是关闭状态,且完成状态为0(未下达)允许下达操作下达单据不是取消状态也不是关闭状态,且完成状态为1(下达)允许撤消操作进行中单据不是取消状态也不是关闭状态,且完成状态为2(进行中)完成单据不是取消状态也不是关闭状态,且完成状态为3(完成)允许关闭操作从编程的方便性考虑,推荐为单据状态定义自己的枚举,并为值对象增加一个getBillStatus方法。该方法通过计算基本属性的取值而得到对应的单据状态。需要注意的是,设置单据状态的操作仍将操作基本状态属性

24、,并且在设置某个状态属性时可能需要根据控制逻辑同时设置其它属性。3.1.3. 类体系类体系内容CoreBase所有业务对象的超类|- ObjectBase普通业务对象的超类|- DataBase基础资料类业务对象的超类|- TreeBase层次数据类业务对象的超类|-CoreBillBase单据业务对象的超类,对应单据头部分|- BillBase财务类单据业务对象的超类,对应财务单据头部分|- CoreBillEntryBase单据业务对象的超类,对应单据体部分 |-BillEntryBase财务类单据业务对象的超类,对应财务单据体部分3.1.4. 所有业务对象超类CoreBase职责所有EA

25、S业务对象的超类,具有ID属性,完成数据的基本维护功能。如,新增、修改、删除、暂存等操作。属性名称描述数据类型对应字段Id对象IDBOSUUIDFID方法名称描述addNew继承基类,添加时设置creator,createTime, lastUpdateUser, lastUpdateTime,等固定属性值。Update继承基类,更新时设置lastUpdateUser, lastUpdateTime, company等固定属性值。Submit设置业务数据生效,并保存save设为暂存状态,并保存cancel作废(逻辑删除),并保存cancelCancel取消作废状态,并保存checkStatus

26、Valid检查业务数据是否是有效canUpdate检查业务数据能否更新,逻辑条件是否满足更新要求(补充)isReferenced检查业务数据是否被引用,删除操作会调用此函数(补充)3.1.5. 普通业务对象超类ObjectBase属性名称描述数据类型对应字段CU控制单元连接属性连接到控制单元中FcontrolUnitIDCreator创建者连接属性连接到用户FcreatorIDCreateTime创建时间TimestampFcreateTimeLastUpdateUser最后修改者连接属性连接到用户FLastUpdateUserIDLastUpdateTime最后修改时间TimestampFL

27、astUpdateTime注:创建人与创建时间,可以由业务指定。胡锦敏2006-7-3决定开放给业务来使用。方法名称描述3.1.6. 基础资料超类DataBase属性名称描述数据类型Name名称(多语言)StringNumber编码Stringdescription描述(多语言)StringsimpleName简称String方法名称描述checkNameBlank名称是否为空checkNameDup名称是否重复checkNumberBlank编码是否为空checkNumberDup编码是否重复注:名称与编码检查方法都是需要根据业务要求进行调用的,应用框架本身不调用。3.1.7. 层次数据超类

28、TreeBase属性名称描述数据类型对应字段IsLeaf是否叶节点BooleanFIsLeafLevel所在级次IntegerFLevelLongNumber节点完整编号StringFLongNumberdisplayName显示名称(多语言)StringFDisplayName因为超类中定义的关系无法实例化,所以TreeBase并未定义parent关联属性。要求在子类中自行建立这个表示指向父节点的关联属性,并且约定属性名一定是parent绝对注意!。DisplayName由树结构的所有级次的名称连接而成,连接符“_”,由框架统一维护。如果长度超长,由前往后截取字符串处理。数据保存时会自动维护

29、level、isLeaf和longNumber不需要干预!的正确性。方法名称描述updateLeafByLongNumber父节点编号更新时重设所有子节点编号checkParentDataExist检查该编号下的父节点是否存在checkParentValid校验父节点的状态应为有效,父节点是否被删除。checkParentBeUsed校验父节点是否被其他数据使用。如果被使用则不能新建子节点。子类需要通过重载_isReference来定义引用逻辑getRoot获取根节点getChildren返回儿子节点集合getAllChildren返回所有后代节点集合deleteWithChildren删除自

30、身及其所有后代节点moveTreeNode移动节点位置3.1.8. 单据超类CoreBillBase(单据头)属性名称描述数据类型对应字段Number单据编号StringFNumberhandleTime经办时间TimeStampFHandleTimeHandler经手人连接属性连接到用户FhandlerIDDescription备注(多语言)StringFdescriptionhasEffected是否曾经生效BooleanFhasEffectedAuditor审核人连接属性连接到用户FcheckIDsourceBillId原始单据IDStringFsourceBillIDsourceFun

31、ction来源功能StringFsourceFunction方法名称描述checkOut结清(关闭)业务数据passAudit审核通过UnpassAudit设置为未审核状态Freeze冻结业务数据Unfreeze解冻业务数据CheckStatusFreeze检查业务数据是否被冻结CheckNumberDup检查单据编号是否重复CheckNumberBlank检查单据编号是否为空checkHandleTimeBlank检查经办时间是否为空checkHandlerBlank检查经办人是否为空CheckLineExist检查是否至少有一条分录getOwnedSys获取所属系统。generateVou

32、cher生成凭证deleteVoucher删除凭证:若没有生成过凭证,则返回false。saveRelations暂存关联关系SubmitRelations保存并递交关联关系getBizOUCoreBillBaseInfo的访问接口。可选的方法:1. protected SystemEnum getOwnedSys():定义单据所属的系统。通常情况下一种单据所属的系统是确定的,可以在单据对象的扩展属性予以定义。超类负责处理这种情况。对于一种类型的单据被实例化到不同系统的情况,可以增加实体属性,并重载这个方法。3.1.9. 单据超类CoreBillEntryBase(单据体)属性名称描述数据类型

33、对应字段Sequence单据分录序列号(定义为序列属性即使用seq)IntegerFSequence3.1.10. 财务类单据超类BillBase(单据头)属性名称描述数据类型对应字段Company公司连接属性连接到公司FcompanyID3.1.11. 财务类单据超类BillEntryBase(单据体)属性名称描述数据类型对应字段4. UI层UI层提供数据的展现方式与客户端控制逻辑。4.1. 通用设计方法4.1.1. 数据绑定数据绑定主要分为两种类型:查询类界面的数据绑定和编辑类界面的数据绑定。u 对于查询ListUI类界面,数据绑定是一个从Query对象到KDTable的单向过程。通常在设

34、计期定义完绑定关系后,不会在代码中再关注绑定问题。相关方法是:1. 由KDTable的setFormatXML方法完成列的定义2. 由KDTable的putBindContents传递绑定关系3. 在KDTalbe的doRequestRowSet事件中完成数据的获取与显示 u 对于编辑EditUI类界面,由loadFields和storeFields方法定义了Entity对象与界面控件双向的绑定关系。如果对象是聚合类型的数据(例如单据)并选择KDTable显示单据体,则进一步由loadLineFields和storeLineFields定义了单据行与KDTable的绑定关系。如果在BOS St

35、udio中定义绑定关系,那么这些方法会由BOS自动生成。注意:不管是完全不使用BOS Studio来定义绑定关系,还是只有部分控件使用BOS Studio定义了绑定关系,你都需要重载这些方法,并通过手工编码来把所有绑定关系补充完整。这是因为超类依赖于这些方法来管理绑定关系。示例:假设币别编辑界面没有为isoCode在设计期定义绑定关系,那么需要补充定义:public void loadFields()super.loadFields();/ editData允许强类型访问txtIsoCode.setText(editData.getIsoCode();public void storeFiel

36、ds()super.storeFields();editData.setIsoCode(txtIsoCode.getText();4.1.2. UI元素的使能控制对UI元素进行使能控制有两种方法:一是利用setOprtState方法,二是利用checkActionStatus方法。在BOS的UI设计器中,可以利用状态编辑视图定义各种状态下控件的使能情况。BOS会自动生成反映满足这种定义的setOprtState方法。当然,也可以不用BOS的定义能力而重载后完全自行编码,尤其是在需要定义更多逻辑时:例如控件的使能可能需要检查当OprtState处于某种状态时,某些数据是否同时符合要求。而chec

37、kActionStatus方法会在按钮的事件响应完毕后被调用,作为一种推荐的检查控件使能的统一位置。checkActionStatus的调用频率比较高,故检查逻辑最好比较简单。注意:这种方式与UI的OprtState没有关系,视为对OprtState机制的一种补充。4.1.3. UILoadListener应用框架提供一种扩展机制,允许在加载UI对象和注销UI对象时加入自定义的处理逻辑。public interface IUILoadListener extends EventListener public void load(UILoadEvent e); public void unloa

38、d(UILoadEvent e);例如,想实现用户监控功能,可以按如下步骤进行:1. 在BOS Studio中定义UI对象的扩展属性。此处定义功能编号和功能描述。2. 编写IUILoadListener的实现类,在load事件中访问UI元数据,获取扩展属性中定义的信息,注册用户监控信息;在unload事件中访问UI元数据,获取扩展属性中定义的信息,注销用户监控信息。4.2. 序时簿类UI序时簿是EAS规范地展现数据的方式,提供查询过滤的能力,可以进行表格数据的定位处理,并可打开维护数据的编辑类界面。序时簿使用查询对象来执行查询,使用KDTable来展现数据。4.2.1. 类体系类体系内容Cor

39、eUIEAS的UI最高超类,继承BOS定义的CoreUIObject(从KDPanel派生,这样UI可以方便地嵌入到其它UI中)。ListUI序时簿类UI的最高超类,有通用过滤功能,提供数据查询与显示,关联编辑界面的管理等。CoreBillListUI单据序时簿类UI的超类。支持针对单据类的通用操作处理,例如结清、冻结、审核等。处理状态过滤与显示。BillListUI财务单据序时簿类UI的超类。暂时没有业务处理,以后添加。 TreeListUI层次数据序时簿的UI超类。支持层次数据的展现,提供KDTree与KDTable的关联处理,支持层次分类数据本身的编辑。ComboTreeListUI带拥

40、有者的层次数据序时簿的UI超类。适用于层次数据本身还有分类的情形,例如物料按仓位分类。TreeDetailListUI层次数据序时簿的UI超类。支持层次数据的展现,提供KDTree与KDTable的关联处理,支持层次分类数据本身的编辑。ComboTreeDetailListUI带拥有者的层次数据序时簿的UI超类。适用于层次数据本身还有分类的情形,例如科目按科目表分类。4.2.2. 通用基类CoreUI完成了通用职责处理,在此,进行了权限、License、网络控制的通用处理。4.2.3. 普通序时簿类ListUI从CoreUI继承下来。具有快速定位、通用过滤等基本功能。类方法介绍普通序时簿类UI

41、从com.kingdee.eas.framework.client.ListUI继承。通过BOS Studio完成UI对象的创建、更改继承Query对象的类型以及KDTable控件绑定等。必须重载的方法:1. protected abstract String getEditUIName():指示关联的编辑UI对象名示例:protected String getEditUIName() return “com.kingdee.eas.basedata.assistant.client.CurrencyEditUI”;2. protected abstract IObjectBase getBi

42、zInterface():获取列表对应实体的业务接口,以便调用业务方法。要求实体必须从ObjectBase及其子类派生。示例:protected IObjectBase getBizInterface() return CurrencyFactory.getRemoteInstance();3. protected String getLocateNames()返回可定位的列名数组。默认实现。/业务系统可重载实现下面方法,返回合适的字符串数组(表格列名),来达到定位的目的。protected String getLocateNames()String locateNames = new Str

43、ing2; locateNames0 = IFWEntityStruct.dataBase_Number; locateNames1 = IFWEntityStruct.dataBase_Name; return locateNames;4.protected FilterInfo getDefaultFilterForQuery()/默认进行当前CU的过滤。子类可重载。protected FilterInfo getDefaultFilterForQuery()FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(

44、new FilterItemInfo(CU,SysContext.getSysContext().getCurrentCU(),CompareType.EQUALS); return filter;可选的方法:1. protected void prepareUIContext(UIContext uiContext, java.awt.event.ActionEvent e):允许构造传递给EditUI的UIContext。利用这个方法,你可以加入需要的任何对象并传递给EditUI。示例:protected void prepareUIContext(UIContext uiContext, java.awt.event.ActionEvent e) / 检查是否按下新建按钮 if (e.getSource() = bt

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号