
# 变更记录
| **产品版本** | **更新内容** | **更新日期** |
| --- | --- | --- |
| V5.0.016 | 支持设置选项默认焦点时间点,如默认焦点到00:00:00或者当前时间 | 2023-03-09 |
# 1 功能介绍
用于选择时间范围的控件
# 2 控件对象
```
kd.bos.form.field.TimeRangeEdit
```
# 3 视觉展示

# 4 属性说明
## 4.1 通用属性
通用属性包含字段和控件的一些公有的属性,如宽高,帮助文本等等。请参考[通用属性](https://vip.kingdee.com/article/215559076720798976)
## 4.2 样式属性
样式属性是每个控件在设计器右侧样式栏可以设置的属性,请参考[样式属性](https://vip.kingdee.com/article/252017936767406336)
## 4.3 业务属性
以下业务属性,移动表单继承映射字段中的值,移动端表单在字段中设置。
| **属性名** | **类型** | **默认值 ** | **说明** |
| --- | --- | --- | --- |
| 开始标识 | 文本 | - | 开始日期标识 |
| 结束标识 | 文本 | - | 结束日期标识 |
| 开始字段名 | 文本 | - | 开始日期数据库字段名 |
| 结束字段名 | 文本 | - | 结束日期数据库字段名 |
| 为空提示信息 | 文本 | - | 当字段内容为空时,输入框内显示的信息 |
# 5 时间范围接口介绍
## 5.1 控件编程模型
时间范围字段控件编程模型TimeRangeEdit,派生自字段控件编程模型基类FieldEdit:
```java
package kd.bos.form.field;public class TimeRangeEdit extends FieldEdit {
```
TimeRangeEdit重写、新增的方法:
| **方法** | **来源** | **说明** |
| --- | --- | --- |
| getStartDateFieldKey | 新增 | 获取起始时间字段标识 |
| getEndDateFieldKey | 新增 | 获取结束时间字段标识 |
| getProperty | 重写 | 获取控件绑定的实体信息(优先返回 起始时间字段实体属性,不存在时返回结束时间字段属性) |
## 5.2 数据模型
时间范围字段,在运行时表单主实体模型中,会创建两个属性对象,分别存储开始时间、结束时间,类型为TimeProp,与时间字段的属性对象类型相同。
开始时间标识、结束时间标识需要在设计器中手工输入
运行时,可以通过日期范围字段的控件编程模型TimeRangeEdit的getStartDateFieldKey()方法,获取开始时间标识,getEndDateFieldKey()方法获取结束时间标识;
开始时间、结束时间的值,都是int类型,其数值为 时分秒到凌晨(00:00:00)换算的秒数(-1代表空值,即未填写)。
如下示例代码,演示如何存取单据头日期范围字段的值,分开始时间、结束时间:
```java
/**
* 演示如何存取字段值,只演示了单据头字段值
*/private void setFieldValueDemo(){
//获取开始、结束字段属性的标识
TimeRangeEdit edit = this.getView().getControl("timerangefield");
String key_startTime = edit.getStartDateFieldKey();
String key_endTime = edit.getEndDateFieldKey();
int startValue = 3*60*60 + 3*60 + 3; // -> 03:03:03
int endValue = 4*60*60 + 4*60 +0;// -> 04:04:00
// 赋值
this.getModel().setValue(key_startTime, startValue);
this.getModel().setValue(key_endTime, endValue);
}
```
## 5.3 插件事件
时间范围字段,包括