报表知识库
我要提问

通过日期等函数解决排班问题

需求背景

c需求—输入任意单个日期自动排出甲乙丙的白班、夜班、休班。

问题分析

首先确认这个班次是一直循环排下去的,每个月初不重置,3天一个循环,这样我们可以通过除3取余来控制,最后我们还要考虑到闰年的情况。

实现步骤

报表设计如下:

这里使用case函数来对12个月分别进行判断,计算当前日期的累积天数,用于除3取余。

通过daysInYear函数判断当前年的天数,并设置行隐藏或展现。if(daysInYear(@time)==365,false,true)。其他无用信息隐藏就可以了。

在输入参数框中输入:2010-09-08,预览如下:

至此,通过使用日期函数和case等函数完成了这样一个需求的报表。