字段基类

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

字段基类

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给字段赋值
setFieldValueForWebApiWebApi上传数据时设置字段的值,特殊的字段需要值转换进行重载,缺省实现和 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 插件介绍字段是特殊的控件,用来显示、录入数据。相对于普通控件,字段除了具有控件编程模型外,还有数据模型。系统根据数据类型、录入...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息