反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

行分栏隔行变色错位解决方案

  • 文档创建者:axing
  • 历史版本:3
  • 最近更新:Alicehyy 于 2021-03-30
  • 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 单元格「数据设置」修改为「列表」,如下图所示:

    Snag_170668c.png

    2.3 设置分栏

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

    1617091591218598.png

    2.4 设置条件属性

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

    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

    公式说明如下表:

    分类公式
    说明
    公式一ROUNDUP(COUNT(A2[!0])/2,0)%2<>0A2[!0] 是指 A2 扩展出来的所有单元格,使用 COUNT 计数后,再除以分栏的列数,本例中列数为 2。再使用 ROUNDUP 对计算的数字向上取整后,被 2 整除余数不等于 0 ,表示报表分栏后总行数为奇数
    公式二(&A2+(1-ROUNDUP(&A2/ROUNDUP(COUNT(A2[!0])/2,0),0)%2))% 2=0&A2 为获取 A2 单元格扩展值的序号,计算结果等于 0 时当前行背景色为蓝色
    公式三ROUNDUP(COUNT(A2[!0])/2,0)%2=0和公式一相同,计算结果被 2 整除余数等于 0,表示报表分栏后总行数为偶数
    公式四&A2%2=0A2 单元格扩展值的序号被 2 整除余数等于 0 时,当前行背景色为蓝色

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

    步骤如下图所示:

    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

    附件列表


    主题: 报表专题
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526