报表设计实例——考场座位排布报表制作
考场座位排布报表制作
需求场景:
考场考试,座位排布,都是按照一定的顺序排的,一般四种排法:
第一种:横向顺序排布:
1,2,3,4,5
6,7,8,9,10
第二种:先横向顺序在逆序:
1,2,3,4,5
10,9,8,7,6
第三种:纵向按顺序排布:
1 6
2 7
3 8
4 9
5 10
第四种:纵向先顺序过去在逆序回来:
1 10
2 9
3 8
4 7
5 6
如果需要将这些考试排布展现在一个web报表中,如何实现呢? 在我们的报表函数中,有一个函数valueat,可以返回一个数组中的指定的元素,我们就利用这个函数来实现。
现在,我们在快逸v5中,制作第一种排布顺序的报表
先建立一个数据源连接,登记数据表,在建立一个数据集,在此不一一讲述步奏
在资源中心,新建资源:
新建一个复杂报表,报表引用我们建立的数据集,
报表设计如下图:
单元格A3表达式:ds4.count(),计算数据集的记录行数,
C3 表示横向扩展六格,及横向一排6个座位,
B4表达式:=to(0,A3/6) 纵向扩展,扩展A3/6的结果+1格,表示需要多少排座位;
D4表达式:=valueat(ds4.Select(座位号,false),A4*5+C3) ds4.Select(座位号,false)表达式表示将数据集的所有的座位号数据取出,组成一个数组,放进了valueat函数里面,valueat函数取数原则从0开始,0表示第一个元素;A4*5+C3 表示A4扩展当前值*5,加上C3扩展后的当前值,表示需要取的数据是那个位置的元素。
D5:=ds4.select1(姓名,座位号==D4) 姓名与座位号一一对应取值
D6:=ds4.select1(证件号,座位号==D4) 证件号与座位号一一对应取值
接下来,我们选中从C3到E7这个区域的单元格:
设置这些单元格的左主格为A4 ,上主格为C3
再将第三行,第一列(A列)设置隐藏行列,
这样,整个考场排布报表,我们就制作完成了,
将报表保存好,我们看看预览效果,如图:
这是第一种排布方式报表的制作,第一种跟第三种排布方式的制作一样,只需要将C3,A4两个单元格的表达式兑换过来,就可以了。
二四两种,报表的制作,依然是valueat函数处理,但是它们的逻辑有区别,我们下次在将二四两种排布方式的报表制作。