长日期字段
# 变更记录
| 产品版本 | 更新内容 | 更新日期 |
| --- | --- | --- |
| V6.0.9 | 完善了PC端长日期控件,支持二开参数配置默认时分秒,满足用户使用需求 | 2024-04-10 |
| V7.0.1 | 更新了日期字段属性,用户可通过"格式化"属性来设置日期选择面板的交互形态及选择完成后的显示格式 | 2024-10-24 |
# 1 功能介绍
用于选择日期和时间的控件。结合 *字段布局面板 *控件使用,布局体验最佳。
# 2 控件对象
`kd.bos.form.field.DateTimeEdit`
# 3 视觉展示
* 选择日期和时间(默认态)
![image.webp](/download/0100a854af0f21e14c3f99739d35f32d1a79.webp)
* 选择月份(格式化设置yyyy-MM)
![image.webp](/download/0100c2846e3f443945bd88313327030dd582.webp)
* 选择年份(格式化设置yyyy)
![image.webp](/download/01006c9444c124d14546804bb70a3b97bfb4.webp)
# 4 属性说明
## 4.1 通用属性
>通用属性包含字段和控件的一些公有的属性,如宽高,帮助文本等。请参考[通用属性](https://vip.kingdee.com/article/215559076720798976)
## 4.2 样式属性
>样式属性是每个控件在设计器右侧样式栏可以设置的属性,请参考[样式属性](https://vip.kingdee.com/article/252017936767406336)
## 4.3 业务属性
| 属性名 | 类型 | 默认值 | 说明 | 支持版本 |
| --- | --- | --- | --- | --- |
| 格式化 | 下拉 | - | 设置日期控件的交互形态及已选日期的显示格式,详情见[日期字段格式化](https://vip.kingdee.com/knowledge/specialDetail/218022218066869248?category=218035423933468928&id=220180664904104960) | V7.0.1 |
| 掩码 | 下拉 | - | 设置日期控件的交互形态 | V7.0.1以后不再支持该属性,可使用格式化属性 |
| 格式化字符串 | 文本 | - | 设置日期控件编辑完成后的显示格式 | V7.0.1以后不再支持该属性,可使用格式化属性 |
| 缺省值 | 弹框选择 | - | 设置默认展示的日期 | |
| 可选范围 | 弹框选择 | - | 设置日期控件的可选范围,不能选择超出范围的日期 | |
| 时区转换 | 下拉 | 服务器时区 | 切换时区,长日期字段控制时区信息regiontype | |
| 区域类型 | 下拉 | 长日期 | 控制长日期字段显示为短日期格式或者长日期格式,1为短日期,2为长日期 | |
| 为空提示信息 | 文本 | - | 当字段内容为空时,输入框内显示的信息 | |
| 加密存储 | 复选框 | false | 设置字段是否需要加密存储 | |
### 4.3.1 默认时刻
6.0.9版本新增 `defaultTime` 属性,二开可通过插件进行长日期字段的默认时分秒属性设置:
```
// 单头、卡片字段
this.getView().updateControlMetadata('kdtest_datetimefield', { defaultTime: '10:10:10'})
// 分录字段
var clientViewProxy = this.getView().getClientProxy()
clientViewProxy.invokeControlMethod('entryentity', 'setColEditorProp', ['kdtest_datetimefield1', 'defaultTime', '10:10:10'])
```
# 5 长日期接口介绍
## 5.1 控件编程模型
### 5.1.1 控件编程模型定义
长日期字段的控件编程模型是DateTimeEdit,派生自字段基类的控件编程模型FieldEdit:
```java
package kd.bos.form.field;
public class DateTimeEdit extends FieldEdit implements ICloseCallBack {
```
在插件中,可以通过如下代码,获取长日期字段编程模型:
```java
/**
* 演示如果获取长日期字段的编程模型
*/
private void getFieldEdit(){
DateTimeEdit fieldEdit = this.getView().getControl(KEY_DATETIMEFIELD1);
}
```
### 5.1.2 控件方法清单
长日期字段编程模型,除了支持字段编程模型基类提供的属性方法之外,还提供如下特别方法:
| 方法 | 说明 |
| --- | --- |
| setIsStartDate | 设置字段是否为日期范围中的起始日期; |
| getIsStartDate | 获取字段是否为日期范围中的起始日期; |
| setRelatedDate | 设置日期范围中另外一个日期字段标识;
如果只是单独录入一个日期值,无需设置此属性值 | | getRelatedDate | 获取日期范围中另外一个日期字段标识;
如果只是单独录入一个日期值,此属性返回空 | | setFormatString | 设置日期格式化字符串,默认格式为 “yyyy-MM-dd hh:mm:ss” | | getFormatString | 获取日期格式化字符串 | | setMinDate | 设置可录入的最小日期 | | setMaxDate | 设置可录入的最大日期 | ## 5.2 数据模型 ### 5.2.1 属性对象 长日期字段运行时,主实体模型中的属性对象类型为DateTimeProp: ```java package kd.bos.entity.property; public class DateTimeProp extends FieldProp { ``` DateTimeProp类型在FieldProp基础上,增加了如下方法: | 方法 | 说明 | | --- | --- | | getDateFormat | 时间格式 yyyy-MM-dd HH:mm:ss | | isUseRegion | 是否使用时区 | | setUseRegion | | ### 5.2.2 字段值 长日期字段值是Date类型,带时分秒。 如下示例代码,演示如何处理单据头、单据体、子单据体上的长日期字段值: ```java package kd.bos.plugin.sample.dynamicform.pcform.field.bizcase; import java.util.Date; import kd.bos.entity.datamodel.IDataModel; import kd.bos.form.field.DateTimeEdit; import kd.bos.form.plugin.AbstractFormPlugin; public class DateTimeEditSample extends AbstractFormPlugin { private final static String KEY_ENTRYENTITY = "entryentity"; private final static String KEY_DATETIMEFIELD1 = "datetimefield"; private final static String KEY_DATETIMEFIELD2 = "datetimefield"; private final static String KEY_DATETIMEFIELD3 = "datetimefield"; /** * 演示如何获取、设置长日期字段值 * * @param entryRow 单据体行号 * @param subEntryRow 子单据体行号 */ private void demoFieldValue(int entryRow, int subEntryRow){ IDataModel dataModel = this.getModel(); // 存取单据头字段值 Date headdatetime = (Date)dataModel.getValue(KEY_DATETIMEFIELD1); dataModel.setValue(KEY_DATETIMEFIELD1, headdatetime); // 存取单据体字段值 Date entrydatetime = (Date)dataModel.getValue(KEY_DATETIMEFIELD2, entryRow); dataModel.setValue(KEY_DATETIMEFIELD2, entrydatetime, entryRow); // 存取子单据头字段值,必须先设置父单据体行号 dataModel.setEntryCurrentRowIndex(KEY_ENTRYENTITY, entryRow); Date subentrytime = (Date)dataModel.getValue(KEY_DATETIMEFIELD3, subEntryRow); dataModel.setValue(KEY_DATETIMEFIELD3, subentrytime, subEntryRow); } } ``` ## 5.3 插件事件 长日期字段支持字段值改变事件,未添加新的插件事件。
如果只是单独录入一个日期值,无需设置此属性值 | | getRelatedDate | 获取日期范围中另外一个日期字段标识;
如果只是单独录入一个日期值,此属性返回空 | | setFormatString | 设置日期格式化字符串,默认格式为 “yyyy-MM-dd hh:mm:ss” | | getFormatString | 获取日期格式化字符串 | | setMinDate | 设置可录入的最小日期 | | setMaxDate | 设置可录入的最大日期 | ## 5.2 数据模型 ### 5.2.1 属性对象 长日期字段运行时,主实体模型中的属性对象类型为DateTimeProp: ```java package kd.bos.entity.property; public class DateTimeProp extends FieldProp { ``` DateTimeProp类型在FieldProp基础上,增加了如下方法: | 方法 | 说明 | | --- | --- | | getDateFormat | 时间格式 yyyy-MM-dd HH:mm:ss | | isUseRegion | 是否使用时区 | | setUseRegion | | ### 5.2.2 字段值 长日期字段值是Date类型,带时分秒。 如下示例代码,演示如何处理单据头、单据体、子单据体上的长日期字段值: ```java package kd.bos.plugin.sample.dynamicform.pcform.field.bizcase; import java.util.Date; import kd.bos.entity.datamodel.IDataModel; import kd.bos.form.field.DateTimeEdit; import kd.bos.form.plugin.AbstractFormPlugin; public class DateTimeEditSample extends AbstractFormPlugin { private final static String KEY_ENTRYENTITY = "entryentity"; private final static String KEY_DATETIMEFIELD1 = "datetimefield"; private final static String KEY_DATETIMEFIELD2 = "datetimefield"; private final static String KEY_DATETIMEFIELD3 = "datetimefield"; /** * 演示如何获取、设置长日期字段值 * * @param entryRow 单据体行号 * @param subEntryRow 子单据体行号 */ private void demoFieldValue(int entryRow, int subEntryRow){ IDataModel dataModel = this.getModel(); // 存取单据头字段值 Date headdatetime = (Date)dataModel.getValue(KEY_DATETIMEFIELD1); dataModel.setValue(KEY_DATETIMEFIELD1, headdatetime); // 存取单据体字段值 Date entrydatetime = (Date)dataModel.getValue(KEY_DATETIMEFIELD2, entryRow); dataModel.setValue(KEY_DATETIMEFIELD2, entrydatetime, entryRow); // 存取子单据头字段值,必须先设置父单据体行号 dataModel.setEntryCurrentRowIndex(KEY_ENTRYENTITY, entryRow); Date subentrytime = (Date)dataModel.getValue(KEY_DATETIMEFIELD3, subEntryRow); dataModel.setValue(KEY_DATETIMEFIELD3, subentrytime, subEntryRow); } } ``` ## 5.3 插件事件 长日期字段支持字段值改变事件,未添加新的插件事件。
长日期字段
# 变更记录| 产品版本 | 更新内容 | 更新日期 || --- | --- | --- || V6.0.9 | 完善了PC端长日期控件,支持二开参数配置默...
点击下载文档
本文2024-09-23 00:40:08发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140961.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章