报表知识库
通过日期等函数解决排班问题
需求背景
c需求—输入任意单个日期自动排出甲乙丙的白班、夜班、休班。
问题分析
首先确认这个班次是一直循环排下去的,每个月初不重置,3天一个循环,这样我们可以通过除3取余来控制,最后我们还要考虑到闰年的情况。
实现步骤
报表设计如下:
这里使用case函数来对12个月分别进行判断,计算当前日期的累积天数,用于除3取余。
通过daysInYear函数判断当前年的天数,并设置行隐藏或展现。if(daysInYear(@time)==365,false,true)。其他无用信息隐藏就可以了。
在输入参数框中输入:2010-09-08,预览如下:
至此,通过使用日期函数和case等函数完成了这样一个需求的报表。