距离员工生日天数计算
1. 简介
1.1 案例简介
本案例将以计算距离员工生日天数为例,介绍如何用数据工厂实现当前日期与周期性变化日期间的动态差值计算。
1.2 应用场景
此类型的动态差值计算可适用于以下场景:
- 员工生日提醒:自动计算并更新距离员工生日的天数,为人力资源部门提供及时的提醒;
- 年度审核:对于需要定期年度审核的场景,自动计算下次审核日期,帮助规划和准备;
- 周期性事件追踪:对于周期性事件,如节日、纪念日等,自动计算事件倒计时。
1.3 设计思路
1)基础表单数据录入(含员工的出生日期数据);
2)数据工厂计算距离生日天数:
- 如果当前日期早于员工的生日,计算从当前日期到今年生日的天数;
- 如果当前日期晚于员工的生日,计算从当前日期到下一年生日的天数;
3)数据流定时更新数据,保证每天可以看到最新数据;
4)将计算好的数据通过仪表盘进行展示,供成员或管理员查看。
1.4 预期效果
以计算员工距离生日的天数为例,效果如下所示:
2. 设置步骤
在学习之前请先安装 人事OA管理 应用模板 ,本文将按照模板中的示例数据进行讲解。
2.1 数据准备
本案例需要用到模板中的「员工档案」表单,并已在表单中预设了一些示例数据,您也可以继续「添加」更多数据体验实现效果。如下图所示:
2.2 数据工厂设置
2.2.1 新建数据流
2.2.2 数据流重命名
对数据流进行重命名:
2.2.3 设置数据源
点击「输入」节点,选择「员工档案」作为数据源,并添加需要参与展示或计算的字段,如员工姓名、出生日期、入职日期等。如下图所示:
2.2.4 添加字段设置节点
在数据流中添加一个 字段设置 节点,用于计算各员工距离生日的天数。如下图所示:
2.2.5 进行动态日期计算
在 字段设置 节点中,点击「+」添加一个计算字段,名称为距离生日天数。设置公式为INT(IF(VALUE(TEXT(DATE(出生日期),'MMdd'))>=VALUE(TEXT(DATE(NOW()),'MMdd')),DATEDIF(NOW(),DATE(YEAR(NOW()),MONTH(出生日期),DAY(出生日期)),'d'),DATEDIF(NOW(),DATE(YEAR(NOW())+1,MONTH(出生日期),DAY(出生日期)),"d")))
其中,公式的计算逻辑为:先比较员工出生日期的月日部分是否 >= 当前日期的月日部分:
- 如果是,说明员工的生日已经过去,计算从当前日期到下一年员工生日的天数;
- 如果不是,说明员工的生日还未到,计算从当前日期到今年员工生日的天数。
设置完成以后,可以预览查看计算效果:
2.2.6 保存
全部设置完毕后,将输出节点重命名为「距离生日天数计算」,并点击「保存」整个数据流设置。如下图所示:
2.3 仪表盘展示
2.3.1 新建仪表盘
数据工厂设置好后,可将数据流放在仪表盘中进行展示。回到应用访问界面新建一张仪表盘:
2.3.2 添加明细表
1)添加一个明细表,数据源为刚刚新建的数据流。点击「统计表 >> 数据流」,选择「距离」数据流:
2)进一步对明细表进行简单设置。如下图所示:
2.4 效果演示
1)电脑端
2)手机端
3. 数据更新与导出
通过仪表盘,可以导出或者打印得到的明细数据。同时,若数据工厂未及时更新数据,可以手动点击更新。