反馈已提交

网络繁忙

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

双向扩展层次坐标

  • 文档创建者:Leo.Tsai
  • 历史版本:10
  • 最近更新:Leo.Tsai 于 2021-04-15
  • 1. 概述

    1.1 视频学习

    本文的学习视频如下,如果您需要由浅入深地学习层次坐标可以使用:层次坐标专题

    1.2 应用场景

    当数据同时由纵向扩展和横向扩展而来,也就是 交叉表 的情况下,层次坐标该怎么写呢?

    • 相对层次坐标

    Snag_5a07478.png

    • 绝对层次坐标

    Snag_5a07c57.png

    • 只获取某一列或某一行:也是绝对层次坐标应用的一种

    1617766619446197.png

    1.3 公式写法

    双向扩展场景下,不管是相对层次坐标还是绝对层次坐标,都要使用纵向和横向的组合写法,且要遵循先纵向后横向的原则。

    层次坐标类型公式写法计算结果参数解释
    相对层次坐标
    Cellx[Celly:-k ;Cellz:p]
    第 p 列相对偏移 -k

    Cellx:横纵向同时扩展出来的交叉数据单元格

    Celly:纵向扩展单元格,Cellx 的左父格

    Cellz:横向扩展单元格,Cellx 的上父格

    k:数字

    p:数字

    Cellx[Celly:+k ;Cellz:p]第 p 列相对偏移 +k
    Cellx[Celly:p ;Cellz:-k]第 p 行相对偏移 -k
    Cellx[Celly:p ;Cellz:+k]
    第 p 行相对偏移 +k
    绝对层次坐标Cellx[Celly:k ;Cellz:p]第 k 行第 p 列交叉处的值
    Cellx[Celly:k ;Cellz:!-p]第 k 行倒数第 p 列交叉处的值
    Cellx[Celly ;Cellz:k]
    获取第 k 列所有值
    Cellx[Celly:k ;Cellz]
    获取第 k 行所有值

    2. 新建示例模板

    此处我们新建一个交叉报表,用于下面演示双向扩展时相对层次坐标和绝对层次坐标的写法。

    2.1 准备数据

    新建数据集 ds1,SQL 语句为:SELECT * FROM 销量,如下图所示:

    1617759916588420.png

    2.2 设计表格

    产品字段拖到 B1 单元格,设置为横向扩展。

    销售员字段拖到 A2 单元格,设置为纵向扩展。

    销量字段拖到 B2 单元格,设置为不扩展,此时 B2 单元格就是根据 B1 和 A2 双向扩展出来的数据。

    1617760070123915.png

    2.3 效果预览

    交叉表设计好后,分页预览看下效果:

    Snag_1e23db27.png

    3. 相对层次坐标写法

    按照下图所示在相应单元格中填写相对层次坐标的公式:

    1617760681951054.png

    实际计算结果如下图所示:

    1617760756436412.png

    下面给出每个层次坐标的解释:

    所在单元格公式公式解析最终效果
    C2B2[A2:-1 ;B1:1]

    ;B1:1:横向绝对层次坐标,是为了锁定第一列

    A2:-1:纵向相对层次坐标,是为了实现纵向负偏移

    第一列相对偏移 -1
    D2B2[A2:+1 ;B1:2]

    ;B1:2:横向绝对层次坐标,是为了锁定第二列

    A2:+1:纵向相对层次坐标,是为了实现纵向正偏移

    第二列相对偏移 +1
    B3B2[A2:1 ;B1:-1]

    A2:1:纵向绝对层次坐标,是为了锁定第一行

    ;B1:-1:横向相对层次坐标,是为了实现横向负偏移

    第一行相对偏移 -1
    B4B2[A2:2 ;B1:+1]

    A2:2:纵向绝对层次坐标,是为了锁定第二行

    ;B1:+1:横向相对层次坐标,是为了实现横向正偏移

    第二行相对偏移 +1

    4. 绝对层次坐标写法

    按照下图所示在相应单元格中填写绝对层次坐标的公式,其中 B4~B6 都设置为不扩展,且左父格和上父格都设置为无。

    1617761829891426.png

    实际计算结果如下图所示:

    1617761996318453.png

    下面给出每个层次坐标的解释:

    所在单元格公式公式解析最终效果
    B4B2[A2:4 ;B1:2]

    A2:4:纵向绝对层次坐标,锁定第四行

    ;B1:2:横向绝对层次坐标,锁定第二列

    返回第四行和第二列交叉处的值
    B5B2[A2:6 ;B1:4]

    A2:6:纵向绝对层次坐标,锁定第六行

    ;B1:4:横向绝对层次坐标,锁定第四列

    返回第六行和第四列交叉处的值
    B6B2[A2:!-1 ;B1:!-1]

    A2:!-1:纵向绝对层次坐标,锁定倒数第一行

    ;B1:!-1:横向绝对层次坐标,锁定倒数第一列

    返回倒数第一行和倒数第一列交叉处的值

    5. 只获取某一列或某一行

    按照下图所示在相应单元格中填写层次坐标公式:

    1617767127854798.png

    实际计算结果如下图所示:

    1617766749370033.png

    下面给出公式解析:

    所在单元格公式公式解析最终效果
    C2B2[A2 ;B1:1]

    A2:返回 A2 单元格纵向扩展的所有值

    ;B1:1:横向绝对层次坐标,锁定第一列

    返回第一列所有值
    B3B2[A2:1 ;B1]

    A2:1:纵向绝对层次坐标,锁定第一行

    ;B1:返回 B1 单元格横向扩展的所有值

    返回第一行所有值

    6. 模板下载

    已完成模板可参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Coordinate\交叉表相对层次坐标.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Coordinate\交叉表绝对层次坐标.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Coordinate\获取交叉表某一列或某一行的值.cpt

    点击下载模板:

    交叉表相对层次坐标.cpt

    交叉表绝对层次坐标.cpt

    获取交叉表某一列或某一行的值.cpt

    附件列表


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

    售前咨询电话

    400-811-8890转1

    在线技术支持

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

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

    总裁办24H投诉

    热线电话:173-1278-1526