不规则布局 -- 考场签到表

需求
从数据库中读取每个考场的考生信息生成一行 5 位考生,一页 2 行的考生签到表。如下图

RTKS9SSZIZPRZZYO6Cpng

数据如下

8SAD5OUIKIWKNYTDLC1png

解析
要想实现这种固定列扩展布局,需要通过 to()函数结合 valueat() 函数处理实现。
其中需要注意的是单一人员信息以上下结构呈现的。取数按常规设置主格是行不通的。需要通过 ds.select() 函数增设匹配过滤处理。

报表实现

3R08062UC7NBN81QApng

其中:
A5 单元格中 to() 处理目的是确定整体扩展出签到表的份数。
实际应用这里应根据考场数扩展。
B5 单元格表达式为:=valueat(ds2.group( 考场:-1),A5),根据 A5 准确取出相应的考场
C4 单元格表达式为:to(0,4), 控制每行扩展的数量,相应 C13 在此基础上 +5 取出第二行的考生信息。
C5 单元格表达式为:=valueat(ds2.select( 身份 ID:1, 考场 ==B5),C4),根据 C4 的编号取出相应的考生信息。 C14 与此处理相同。
其他单元格表达式 格式为:ds.select(返回字段, 关联考场过滤表达式),比如 C9 表达式为 =ds2.select(姓名, 身份 ID==C5)。

最后隐藏 A、B 列以及第 4、5、13、14 行,并为 21 行设置行后分页,左主格为 A5。

最终效果

3N38L89_LM8BJ7PYIVTpng

报表实例点击下载