字段基类
1 插件介绍
字段是特殊的控件,用来显示、录入数据。相对于普通控件,字段除了具有控件编程模型外,还有数据模型。
系统根据数据类型、录入方式的差异,封装了一批常用字段;另外,还针对一些特殊的业务逻辑,封装了一批业务字段。
系统封装的所有的字段,都派生自字段基类Field,本节介绍字段基类的功能特点,各种具体的字段类型继承这些功能。具体各个控件字段的插件介绍请参考控件使用指南。
2 控件编程模型
2.1 控件编程模型定义
字段基类的控件编程模型为FieldEdit,派生自控件基类Control;各种具体字段的控件编程模型,均从此派生:
package kd.bos.form.field; public class FieldEdit extends Control
插件可以使用如下代码,获取到字段控件实例,实现对前端界面上字段的控制:
private FieldEdit getFieldEdit(String key){ return this.getView().getControl(key); }
2.2 控件方法清单
字段控件FieldEdit,继承了控件基类Control的全部方法,并添加如下新方法:
方法 | 说明 |
---|---|
postBack | 接收前端传递过来,用户录入的字段; 内部方法,请勿调用 |
getFieldKey | 获取绑定的字段标识; 一个字段可以被多个字段编辑控件绑定,getKey与getFieldKey不一定相同 |
setFieldKey | 设置绑定的字段标识; 内部方法,请勿调用 |
shouldSerializeFieldKey | 是否需要序列化FieldKey属性值; 内部方法,请勿调用 |
bindData | 绑定数据模型中的字段值到前端编辑控件上; 内部方法,请勿调用 |
getBindingValue | 按前端控件的格式要求,生成绑定到前端编辑控件上的字段值; 内部方法,请勿调用 |
getProperty | 获取字段对应ORM模型中的属性对象 |
getEntryKey | 获取字段所在的实体标识,如单据、单据体、子单据体标识 |
setEntryKey | 设置字段所在的实体标识; 内部方法,请勿调用 |
setVisible | 设置字段可见性 |
setEnable | 设置字段锁定性 |
setText | 设置字段前端编辑控件显示的值; 内部方法,请勿调用 |
setMustInput | 给字段字段编辑控件,打上必录标志( * ) |
setCaption | 设置字段标题 |
getDefaultFilters | 获取字段的过滤条件; 内部方法,请勿调用 |
3 数据模型
3.1 属性对象
在保存表单设计时,会把字段,转为表单主实体模型中的属性对象,即运行时字段元数据。
常用字段的属性对象,都派生自FieldProp,基础资料字段的属性对象,不是派生自FieldProp。
FieldProp的定义如下:
package kd.bos.entity.property; public class FieldProp extends DynamicSimpleProperty implements IFieldHandle, IValidatorHanlder {
字段属性对象基类FieldProp提供的完整方法如下,派生的属性对象自动具有这些方法:
方法 | 说明 |
---|---|
applyDefaultValue | 给字段填写默认值 |
createEntityTreeNode | 单据列表设计器,单据字段树上的字段信息 |
createEntityTreeNodes | 同上 |
createEntityTreeNodes | 同上 |
createFilterField | 列表过滤,条件设置、解析时的字段信息 |
createFilterFields | 同上; 基础资料字段,支持按编码、名称过滤,需要输出多个字段信息 |
getBasePropDisplayValue | 输入父基础资料数据包,输出本属性值 |
getClientType | 获取字段在前端的编辑控件类名 |
getCompareGroupID | 获取字段过滤条件比较符号组Id |
getCompareTypes | 输出字段比较符号对象集合 |
getCompareProp | 输出属性对象,基于此判断字段有没有录入 |
getDefaultCompareTypeId | 列表常用过滤条件选择了一个值时使用的比较符 |
getDefaultMultiCompareTypeId | 列表快速搜索过滤或常用过滤,选择了多个值时,使用的比较符(比如文本是LIKE(59)) |
getDefValue | 字段的默认值设计值,需运行时解析 如日期默认值设计值为”today”,运行时取当时日期; |
getFilterControlType | 方案过滤中,比较值录入类型,默认为”text” |
getListColumnDesc | 输出字段在单据列表上用到的列对象,据此实现字段值的解析、格式化 |
getValidators | 输出字段默认的校验器,在保存、提交时,校验字段值的合法性; 如必录校验、格式校验、长度校验等 |
getValueComparator | 输出一个匿名类,用于判断当前字段有没有录入 |
isMustInput | 是否必录 |
isSysField | 是否为系统内置添加的属性对象; 如Id,是系统内置添加的,不需要用户设计字段 |
isZeroShow | 为零是否显示 |
setCompareGroupID | |
setDefaultCompareTypeId | |
setDefaultMultiCompareTypeId | |
setDefValue | |
setFieldValue | 给字段赋值 |
setFieldValueForWebApi | WebApi上传数据时设置字段的值,特殊的字段需要值转换进行重载,缺省实现和 setFieldValue一致 |
setMustInput | |
setSysField | |
setZeroShow | 设置为零是否显示 |
getDbType | 数据库字段值类型,枚举值 |
getTableGroup | 所在拆分表,默认为空 |
isEmpty | 输入数据包,判断字段值是否为空值 |
isEncrypt | 暂不明确 |
isLocalizable | 是否支持多语言 |
isPrimaryKey | 是否为主键 |
resetValue | 重置字段值 |
setDbType | |
setEncrypt | |
setPrimaryKey | |
setTableGroup | |
shouldSerializeValue | |
getName | 属性名 |
isDbIgnore | 是否有物理字段对应 |
setDbIgnore |
3.2 字段值
各种字段的值类型,会有不同。
给字段赋值,必须传入正确的值类型,否则会报转换错误。某些特殊字段,值类型进行了一定的兼容。
3.3 字段值存取方法
表单数据模型IDataModel提供了很多方法,能够设置表单、单据体、字段的数据。
其中与字段相关的方法如下:
方法 | 说明 |
---|---|
getProperty | 获取字段的ORM属性对象FieldProp |
getValue | 获取字段值; 不同字段类型,返回的值类型不同; 取单据体字段值,还需要传入行号; |
setValue | 设置字段值; 不同字段类型,需要设置不同的值类型; 给单据体字段赋值,还需要传入行号 |
setItemValueByNumber | 按编码给基础资料字段赋值 |
setItemValueByNumbers | 按编码给基础资料字段赋值 |
setItemValueByID | 按内码给基础资料字段赋值 |
4 插件事件
字段基类支持如下事件:
事件 | 触发时机 |
---|---|
beforePropertyChanged | 修改字段值之前触发; 例外:界面数据初始时,不触发此事件,即在afterCreateNewData事件中,修改字段值,不会触发此事件 |
propertyChanged | 修改字段值之后触发; 例外:界面数据初始时,不触发此事件,即在afterCreateNewData事件中,修改字段值,不会触发此事件 |
字段基类
1 插件介绍字段是特殊的控件,用来显示、录入数据。相对于普通控件,字段除了具有控件编程模型外,还有数据模型。系统根据数据类型、录入...
点击下载文档
本文2024-09-23 00:22:03发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-139016.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章