对日历类报表实现的补充

日历类报表的实现,请参考大佬写的帖子

日历类报表可以这样实现

这个示例内,主要是针对于每天一条数据的功能的实现。

昨天遇到了一个类似的需求,但是要求每天的数据是多条的情况。
几经波折,最终问题得到解决,实现效果如下图所示

imagepng

实现方式如下:

表结构来说,作出日历的样式暂时略过,请参考 日历类报表可以这样实现

下面介绍下多条数据的展示

需要用到的是 to 函数与 valueat 的结合使用

imagepng

因为 C5 的值是多条,且每天的数据互相之间无关联,所以需要单独来写
C4 单元格 =ds1.count(day(calendar_begin)==C3) 获取每天需要显示的总条数
B5 单元格 =to(0,max(C4{})-1)函数扩展,其中 max() 获取一周中每天的条数的最大值
to 函数从 0 开始扩展 是因为 valueat 的取值是从 0 开始的 0 表示第一条 所以 max(C4{})-1 同样的道理

valueat 函数,则根据扩展的条数决定显示 select 数据的第几条

valueat 函数说明:

根据指定位置返回数组或者集合表达式中的某一个元素

语法:
valueat(arrayexp,suffixExp)
参数说明:
arrayexp 数组或者集合表达式
suffixExp 整数,用于指定返回集合中的第几个元素,以 0 开始计数
返回值:
集合中的一个元素,数据类型由集合中的元素类型决定
示例:
例 1:valueat(to(5,8),2) 返回值为:7
例 2:valueat([“a”,“b”,“c”],2) 返回值为:“c”

最终,问题得到完美解决。