尺码类报表的制作

女人衣柜里总是缺少那么一件衣服,怎么办呢?当然是买买买呀!!!现在出国方便,电商平台有全球购,朋友圈里有代购,即使足不出户,漂亮衣服也会出现在眼前,时不时的勾引下你购买的欲望。可是,如果买来的衣服大小不合适,那就破坏了我们美丽的心情,这该如何避免呢?当然是看好尺码对照表呀!

1png

上面这样的尺码对照表,对于小编这样执着于技术的宅女来说,看懂挺难,

但是小编知道怎么用报表实现这样的尺码表哦!

数据表结构如下:

2png

在 COLNO,ROWNO 中分别存储了对应尺码表在报表的坐标数据,CODE 字段存储的是对应的尺码值,我们怎样根据行列坐标从一个字段中读取尺码信息,形成上面那 4 行的尺码对照表呢?

其实,这样根据行列数据取到对应交叉格的值的形式,就是一张典型的交叉报表,在报表中实现很简单,不信我就来和你说一下基本实现思路:

我们可以通过 to() 函数根据列号最小值和最大值横向扩展列,行号最小值和最大值纵向扩展行;接着通过报表取数函数(加过滤条件)取到对应行列的值。

下面就是报表中具体的做法:

1.. 获取行号最小值和行号最小值。

在 A1 中通过 ds1.min(rowno) 取出所有尺码中行号的最小值,在 B1 中通过 ds1.max(rowno) 得到行号的最大值。

3png

4png

2. 获取列号最小值和列号最大值

在 A2 中通过 ds1.min(colno) 取出所有尺码中列号的最小值,在 B2 中通过 ds1.max(colno) 得到列号的最大值。

5png

6png

3. 得到所有行号

在 C4 单元格通过 to(A1:B1) 函数表达式, 将尺码的行的坐标纵向扩展出来。

7png

8png

4. 得到所有列号

在 D3 单元格通过 to(A2:B2) 函数表达式, 将尺码列的坐标横向扩展出来,这里要注意的是,需要手动将 D3 单元格的扩展方式改成横向,这样通过 C4,D3 就形成了尺码表的左表头和上表头。

9png

10png

5. 根据行号列号取到对应尺码值

中间的交叉点 D4 单元格则用 ds1.select(CODE,colno==D3 && rowno==C4,1) 将对应行列坐标的数据检索出来。

11png

12png

6. 将辅助行列进行隐藏

将前三行选中设置隐藏行,将前三列选中设置隐藏列,就画出了尺码对照表了。

13png
更多特殊样式的报表实现请查看:前端效果
如何实现伸缩 (折叠) 报表?
报表实时刷新显示时间
报表怎样实现滚动的公告效果?
点击表头切换升降序排序方式