<F7控件使用指南>修订历史日期版本说明作者审阅2015-07-241.0整理文档田骏1.简介1.1.目的本文档对需要使用F7控件的业务开发人员进行概要描述;1.2.参考资料参考资料1:VSS:192.168.16.20/研发中心_workshop/08.BOS产品部/BOS基础业务服务系统部/06文档管理/04设计文档/06控件&套打/F7基础控件(KDPromptBox)使用指南.doc参考资料2:VSS:192.168.16.20/研发中心_workshop/08.BOS产品部/BOS基础业务服务系统部/06文档管理/04设计文档/06控件&套打/F7业务控件(KDBizPromptBox)使用指南.doc2.F7控件使用说明2.1.F7控件说明F7控件对应的几个类分别是:KDBizPromptBox、KDPromptEditorAssistor、KDCommonPromptDialog,NewOrgF7PromptDialog(组织专用F7)、GeneralF7TreeListUI(基础数据专用F7)。这些类界面对应位置如下图。其余弹出框均为专用F7,基本都是左树右表结构。2.2.F7控件新增配置元数据UI(不作介绍)2.3.F7控件使用KDBizPromptBox的常用属性:1)displayFormat:显示期格式,String类型,以"$fieldname$"表示填入字段,"$$"表示"$"符.取值示例:"$id$+$name$"。在不可编辑时,焦点和非焦点状态的数据展现都使用displayFormat,忽略eidtFormat。2)editFormat:编辑期格式,其它同displayFormat。3)commitFormat:数据提交格式属性。它是展现格式(上面的displayFormat或editFormat都属于展现格式之一)的序列,用“;”隔开。格式为:<展现格式1>[;<展现格式2>[...]]。如:”$id$;$name$“,又如:”$id$+$name$;$id$+$age$”。以后者为例,在提交数据时生成过滤条件为:(id=001andname="username")or(id=001andage=35)。commitFormat暂不支持非String类型字段。如果设置了非String类型的字段作为匹配字段,将查询不到结果。4)queryInfo:查询对象的PK值,String类型。注意:F7用到的queryInfo中的主对象必须有主键字段。5)entityViewInfo:查询条件,EntityViewInfo类型。6)defaultF7UIName属性:设置F7弹出框的类名,如果Selector为null,那么将使用该类名进行反射创建一个弹出框。如果该类名为null,那么将弹出KDCommonPromptDialog。以上几个属性是比较常用的,其他属性可以在参考资料中查看。另外有几点需要注意:1)defaultF7UIName该属性是设置专用F7,与queryInfo相斥。queryInfo是KDBizPromptBox调用通用F7控件,设置通用F7控件的query。2)entityViewInfo该属性一般由调用代码去控制,该属性与queryInfo一样,只在通用F7中有效。3)实际开发中,调用专用F7除了在元数据UI界面配置defaultF7UIName之外,更多的是用KDBizPromptBox.setSelector(KDPromptSelectors)方法。4)实际开发中,调用专用F7用以下方法比较多。常见的错误,开发人员认为专用F7与通用F7一样,配置queryInfo与entityViewInfo即可,其实是不对的。专用F7如何设置query和entityViewInfo,这都是由专用F7提供,一般专用F7都设置好query。专用F7如何设置过滤条件,下面示例,adminF7.setOuterFilterInfo(outerFilterInfo)KDBizPromptBox的其它属性和方法:1.assistInfoLimit:最大历史记录数,最大常用记录数,默认设置100条,私有变量。2.isHistoryRecordEnabled、isMyCommonUseEnabled:是否开启“我的常用”和“历史记录”。这两个属性是同步的,都由“系统-个性化设置-个人信息-个人参数-开启历史记录功能”控制。3.setRecordName:设置记录文件名(一般不需要设置,采用默认)。默认名:用户userID+控件名(如果setQueryInfo,则会根据根据queryInfo设置),我的常用会在后面加上”MyCommonUse”。该历史记录不会根据组织进行隔离,如果想要实现组织隔离或者其他隔离,则需要开发调用该方法,设置记录文件名(文件名字符串最大长度200)。4.setQueryInfo:设置queryInfo,如果元数据UI未配置,可以在这里进行设置。5.setEntityViewInfo:设置通用查询F7过滤条件,注意专用F7无效。6.queryAgent:通用F7查询器,通用F7才有效。与该相关的方法均对通用F7有效,专用F77.setHasCUDefaultFilter:设置是否CU默认过滤,同样只真对通用F7有效。3.控件功能说明3.1.“历史记录”和“我的常用”具体参见:com.kingdee.bos.ctrl.extendcontrols.KDPromptEditorAssistor。实现:1.通用F7KDCommonPromptDialog与专用F7(部分,基本都是继承GeneralF7TreeListUI)有“加入我的常用”按钮,将“我的常用”记录保存到文本文件中,更新本地文件。(之前是保存到系统缓存文件夹路径下,后来更改到eas目录下,更改历史见getMemorizeFile方法)。2.“我的常用”与“历史记录”框(KDPromptEditorAssistor)会在F7控件加载的时候初始化,然后每次点击F7输入框就会更新,renewAssistorContent,同样这里也会设置与通用弹出框一致的文件路径,有相同的getMemorizeFile方法。“我的常用”功能由F7弹出框类维护,“历史记录”由popupSelectorImp获取F7选择的记录,然后将其写入到文本中。3.2.Format3.3.过滤条件设置