历史版本6 :行分栏隔行变色保持同行变色对齐 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

若对报表进行了 隔行/列设置背景色 操作,又设置了 报表分栏 ,可能会出现「错位」的情况,希望有方案可以解决错位问题,实现同行变色对齐,如下图所示:

1617091504227370.png

1.2 实现思路

在「条件属性」中利用「公式」实现。

先根据分栏列数和数据总数判断双数栏位需不需要特殊处理,再通过计算得到需要特殊处理的行数设置分栏。

2. 示例编辑

2.1 数据准备

新建普通报表,新建数据集 ds1,SQL 查询语句为:SELECT * FROM 销量

image.png

2.2 设计报表

1)将「销售员、产品、销量」数据列拖入 A2~C2 单元格中,设计表格样式如下图所示:

1617090804529647.png

2)将 A2 单元格「数据设置」修改为「列表」,如下图所示:

2.3 设置分栏

点击菜单栏「模板>报表分栏」,在打开的报表分栏页面中按如下图所示步骤设置:

1617091591218598.png

2.4 设置条件属性

选中 A2 单元格,点击右侧属性面板添加一个条件属性,选择属性为「背景」,颜色为「蓝色」,作用于「当前行」。设置条件类型为「公式」,输入公式为:

注:公式由 4 个条件组成,公式之间使用 && 和 || 连接,按从左往右执行计算,当报表满足公式一时,按公式二显示背景色,当报表满足公式三时,按公式四显示背景色。

ROUNDUP(COUNT(A2[!0])/2,0)%2<>0&&(&A2+(1-ROUNDUP(&A2/ROUNDUP(COUNT(A2[!0])/2,0),0)%2))% 2=0||ROUNDUP(COUNT(A2[!0])/2,0)%2=0&&&A2%2=0

公式说明如下表:

分类公式
说明
公式一A2[!0]A2 扩展出来的所有单元格
COUNT(A2[!0])统计当前数据的总行数
COUNT(A2[!0])/2将总行数除以分栏的列数 2,表示每栏的行数
ROUNDUP(COUNT(A2[!0])/2,0)向上取整,确保每栏的行数为整数
ROUNDUP(COUNT(A2[!0])/2,0)%2<>0计算结果被 2 整除余数不等于 0,表示每栏的行数为奇数
公式二ROUNDUP(&A2 / ROUNDUP(COUNT(A2[!0])/2,0),0)计算当前行号所在的栏数
1-ROUNDUP(&A2/ROUNDUP(COUNT(A2[!0])/2,0),0)%2根据栏数的奇偶性调整偏移量
&A2+(1-ROUNDUP(&A2/ROUNDUP(COUNT(A2[!0])/2,0),0)%2)将当前行号与偏移量相加

(&A2+(1-ROUNDUP(&A2/ROUNDUP(COUNT(A2[!0])/2,0),0)%2))% 2=0

判断调整后的行号是否为偶数

公式三ROUNDUP(COUNT(A2[!0])/2,0)%2=0计算结果被 2 整除余数等于 0,表示每栏的行数为偶数
公式四&A2%2=0判断当前行号是否为偶数

步骤如下图所示:

1617092002691894.png

2.5 效果预览

2.5.1 PC 端

保存报表,点击分页预览,行分栏的隔行变色效果如下图所示:

Snag_1cf73eb.png

2.5.2 移动端

App 端和 HTML5 端均支持,效果如下图所示:

Snag_1d0b583.png

3. 模板下载编辑

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\行分栏隔行变色错位解决方案.cpt

点击下载模板:行分栏隔行变色错位解决方案.cpt