---
order: 1
navTitle: 数据期
---
# 数据期

**数据期**是报表填报应用的填报频度。例如工作周报，员工每周定期的汇报工作进展，此时对应的**数据期**就是周。类似的还有企业信息年报，财务月报等需要周期性的上报数据的场景。**数据期**是**周期填报应用**的数据粒度之一，**信息管理应用**无需设置。本文主要介绍**数据期**相关的各种属性设置，包括如何控制填报的频度以及填报的开始结束时间等。

## 固定周期{#fixed-period}

**固定周期**是指用户按照一个预制好的固定时间频度填报数据，如每周一次，每月一次。基本设置如下：

![数据期](./images/2024-03-06-09-40-01.png)

- **填报周期**：时间粒度，决定了一个数据期有多长时间，默认可供选择的有日期、年月、年、年季、半年、年周、年旬，也可通过自定义[日期角色](../../../data-gov/model/field-role.md#date)添加更多个性化填报周期。
- **当前期**：存在多期数据时，设置默认应该显示哪一期的数据，可选择自动、表达式。
  - **自动**：根据当前填报时间自动设置最近的一期为当前期，比如填报时是2023年12月1日，如果是年报则自动将2023年作为当前期，月报则将2023年12月作为当前期，以此类推。
  - **表达式**：设置一个表达式，返回指定日期，根据该日期来找到所在的数据期范围确定默认显示哪期数据，如对于月报希望每月5号前以上月为当前期，5号后以当月为当前期，可以输入`TOSTR(IF(DAY()<5,ADDDATE(TODAY(),-1,'M'),TODAY()),'yyyyMM')`。如果此时返回的是具体日期，如20240510，那么也会找到2024年5月作为默认当前期。兼容各种常见的日期格式：20240510、2024-05-10、2024/05/10、2024年05月10日。
- **填报开始时间**：设置一期填报什么时候开始，未到时间时则无法填报，可选择无限制、自动、相对。
  - **无限制**：对填报时间不做限制，用户可在任意时间填报所有期的数据。
  - **自动**：默认选项，按照当前填报周期类型自动判断开始时间，如年报是每年的1月1日开始，月报是每个月的1号开始等。
  - **相对**：在**锚点时间**的基础上设置相对值，锚点时间的期初、期末对应当前填报周期的默认范围，如年报，期初是每年1月1日，期末即每年12月31日。设置年报的开始时间为**期初后9自然日**，即开始填报时间为每年的1月10日，其余设置以此类推。
- **填报结束时间**：设置选项和**填报开始时间**一致，仅默认值不同，默认为**无限制**。

::: tip

1. 设置固定周期后，所有在报表填报应用中生成的模型都会自动添加**数据期**字段，并自动给字段添加上相应的[日期角色](../../../data-gov/model/field-role.md#date)，比如填报周期选择的是**年**则相应的字段[日期角色](../../../data-gov/model/field-role.md#date)也会被设置为**年**。
2. 如果是从报表填报应用外部引入的模型，则需要自行给模型添加有设置对应[日期角色](../../../data-gov/model/field-role.md#date)的主键字段，报表填报应用会自动根据这个关系找到对应的**数据期**字段。

:::

## 实时填报{#realtime-report}

**实时填报**是指用户可以随时根据业务需要进行数据填报，没有固定频度。例如部门的人员信息维护，每当有新人入职或者部分员工的个人信息发生更改时，都需要实时的填报数据，这种填报与时间无关，没有固定的周期限制。

## 应用场景{#scenarios}

本章节主要介绍各种实际业务场景下针对报表填报应用数据期的自定义配置。

### 定期上报周计划{#week-plan}

管理者要求各员工以周为频度定期上报各自的工作计划，所有员工需要在周五到周日的时间范围内填报下周的工作计划，到新的一周后，周一到周四的时间可以对本周的计划进行修改调整。此需求是典型的周报场景，但与常规周报不同的是，每一期的填报时间并不是从周一开始到周日结束的，此处每一期的工作计划都是从上周五开始填报到本周四结束才开始新的一期计划的上报，因此需要调整数据期设置如下：

1. 在**设置**>**数据期**中修改**当前期**为**表达式**。
2. 在**动态当前期**中设置表达式`TOSTR(IF(WEEKDAY(TODAY())>=5,ADDDATE(TODAY(),8-WEEKDAY(TODAY()),'d'),ADDDATE(TODAY(),-(WEEKDAY(TODAY())-1),'d')),'yyyyMMdd')`，该表达式的意思是当前时间是周五到周日时以下周为当前期，否则是本周。
3. 设置**填报开始时间**为**相对**，当周的计划是从上周五开始填报的，可设置**开始时间**为`期初前3自然日`，期初指本周一。
4. 设置**填报结束时间**为**相对**，当周的计划在本周四结束填报，可设置结束时间**结束时间**为`期末前3自然日`，期末指本周日。
