解决行隐藏后序号不连续问题

教学视频

目标

要实现的效果如下图所示:

image-20211208145657930

在上面的列表当中,隐藏了员工薪水小于3000的行,在这种情况下还要保存第一列序号是连续的。

实现

添加一个包含employee表的数据集,报表中保留一行三列,并在相关单元格中绑定对应字段,同时设置A1单元格的左父格为B1,B1单元格的左父格为无,效果如下图所示:

image-20211208145856518

选中C1单元格,添加一名为隐藏薪水小于3000的员工信息的条件渲染项,如下图

image-20211208150027489

上面的条件当中,如果表达#<3000,那么条件就满足,就设置当前单元格行高为0,也就是隐藏当前行。

保存预览效果如下图所示:

image-20211208150211165

很明显可以看到,上图标红的地方因为其中一行被隐藏导致序号不连续。要解决上面的问题,可以通过给A1单元格添加一条件渲染项实现。

选中A1单元格,将其内容清空,添加一个名为连接编号的条件渲染项,如下图所示:

image-20211208150458711

在这个条件渲染项当中,条件为根据当前单元格取C1单元格的值,如果大于等于3000,那么条件部分就满足,也就是不需要隐藏的员工信息,要执行的渲染内容为新值,新值表达式为seq(),该函数的作用就是产生一个连续的序号。

保存预览就可以看到预期效果。

这里需要注意的是原A1单元格的值是表达式seq(),在为A1单元格添加条件渲染产生新值时,我们需要将A1单元格内容清空,否则新值中seq()函数在进行编号 时将会沿着A1单元格的值继续编号,这显然不是我们想要的。

如果不清空A1单元格的值,那么我们可以在条件渲染新值中输入表达式:seq("abc"),表示编号时以这个abc字符串为基准,而不是采用默认的,当然这里的abc也可以是别的字符串,效果一样,具体用法可以参考表达式一节中关于seq函数介绍。

results matching ""

    No results matching ""