历史版本5 :周末工作日判断 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 预期效果
在报表设计中,希望能够通过公式判断当月的工作日和周末,如下图所示:
1.2 实现思路
主要通过 if 函数来实现。
2. 操作步骤编辑
2.1 安装插件
实现此功能需要安装插件:常用函数集合
设计器插件安装方法参照:设计器插件管理
服务器安装插件方法参照:服务器插件管理
2.2 报表设计
如下图设计报表样式,单元格内容如下所示:
1)A2单元格插入公式:
RANGE(dateinmonth(today(), 1), dateinmonth(today(), -1))
公式介绍如下表所示:
公式 | 含义 |
---|---|
dateinmonth(today(), 1) | 返回当前月份第一天的日期 |
dateinmonth(today(), -1) | 返回当前月份最后一天的日期 |
RANGE(dateinmonth(today(), 1), dateinmonth(today(), -1)) | 获取当前月份从第一天到最后一天,所有日期的序列 注:RANGE 函数具体使用可参见:Range函数使用介绍 |
2)B2单元格插入公式:
switch(weekday(A2), 0, "星期天", 1, "星期一", 2, "星期二", 3, "星期三", 4, "星期四", 5,
"星期五", 6, "星期六")
公式介绍如下表所示:
公式 | 含义 |
---|---|
weekday(A2) | 获取 A2 列的日期并返回星期数。返回值为介于 0 到 6 之间的某一整数,分别代表星期中的某一天(从星期日到星期六) |
switch(weekday(A2), 0, "星期天", 1, "星期一", 2, "星期二", 3, "星期三", 4, "星期四", 5, "星期五", 6, "星期六") | 如果「weekday(A2)」的返回值为0,则整个函数返回结果为「星期天」;如果「weekday(A2)」的返回值为1,则整个函数返回结果为「星期一」,以此类推 注:switch 函数的具体介绍请参见:switch函数 |
3)C2单元格插入公式:
if(inarray(weekday(A2), [0,6]) > 0, "周末", "工作日")
公式介绍如下表所示:
公式 | 含义 |
---|---|
weekday(A2) | 获取 A2 列的日期并返回星期数。返回值为介于 0 到 6 之间的某一整数,分别代表星期中的某一天(从星期日到星期六) |
inarray(weekday(A2), [0,6]) | 返回「weekday(A2)」在数组[0,6]的位置,例如「weekday(A2)」=1,则结果为0;「weekday(A2)」=0,则结果为1;「weekday(A2)」=6,则结果为2 注:inarray函数具体介绍请参见:inarray |
if(inarray(weekday(A2), [0,6]) > 0, "周末", "工作日") | 若 A2 日期是周六或周日,则最终结果为「周末」;其他情况为「工作日」 |
2.3 效果预览
2.3.1 PC 端
PC端效果如下图所示:
2.3.2 移动端
App 及 HTML5 端效果如下图所示:
3. 模板下载编辑
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\周末工作日判断.cpt
点击下载模板:周末工作日判断.cpt