首页 > 技术文章 > 帆软基础之报表属性

qianslup 2020-10-05 20:36 原文

一、单元格扩展

1.1 扩展对比

  • 纵向扩展:单元格中字段的数据纵向扩展(上下方向),在不同单元格中展示
  • 横向扩展:单元格中字段的数据横向扩展(左右方向),在不同单元格中展示
  • 不扩展:单元格中字段的数据不扩展,所有数据在一个单元格中展示;受到环境的影响。

扩展方向位置

 

 

三种扩展方式对比

 

 问题:为什么横向扩展为三页,而官网视频只有两页?

 

1.2 应用于行式报表

行式报表即清单式明细表,行式报表对数据纵向扩展,展现了一个列表式的表格。类似于excel中的表格(不含合并单元格的表格)

 

 

1.3 应用于交叉报表

 

 

 

二、父子格设置

定义:子单元格设置父单元格后,子单元跟随父单元进行单元格扩展。简单地说,子单元格根据父单元格分组显示。

 

 

 

2.1 功能介绍

2.1.1 FineReport 支持两种类型的父子格设置

  • 左父格:单元格之间存在纵向扩展的关系时,设置左父格。

  • 上父格:单元格之间存在横向扩展的关系时,设置上父格

 

 

 

2.1.2 父子格的三种选择

  • :就是不设置单元格的父格,该单元格扩展时不考虑单元格之间的分组关系。
  • 默认:当单元格左侧或上方相邻的单元格具有扩展属性时,单元格默认其左侧相邻单元格为其左父格,默认上方相邻的单元格为其上父格。

    默认就是指将数据列拖拽至单元格中时,该单元格会默认将其相邻上方横向扩展的单元格或者左侧纵向扩展的单元格当做上父格或者左父格

    注:必须是相邻的同行或者同列单元格,不是相邻的需要自定义设置。

    注:其单元格的左侧相邻单元格不具有扩展属性时,会依次向左或向上寻找具有扩展属性的单元格,来确定它的父格。

  • 单元格之间存在扩展关系,但是它们不相邻无法使用默认设置时,通过自定义来设置它们之间的父子格关系。

 

 

 

 

 

 

 

2.2 应用于分组报表

 

 也可以带汇总选项

 

 

 

2.3 应用于自由报表

 

 

 

Q1:为什么纵向扩展。

A1:为了所有的表格是纵向排列而不是横向排列

 

Q2:为什么选择B3作为左父格

A2:因为B3代表的是订单编号,订单编号是唯一值。

假如订单编号不是唯一值,那么可能会出现两个订单日期或其他字段。

 

 

三、层次坐标

3.1 概述   

定义:扩展单元格运算时需要使用层次坐标来表示单元格扩展后的表格位置。

可以分为相对层次坐标和绝对层次坐标。

 

 

 

 

3.2   坐标规则

3.2.1 相对坐标规则

 

 

 规则说明

  • Cellx:指目标单元格,是 Lk,Lk-1...L1;Tk,Tk-1...T1 的附属格。

  • Lk:指某个目标单元格 Cellx 的左父格,Lk 的次序是从远到近的,也就是从离当前格最远的左父格开始,也可以理解为从最高级别的分组格开始。

  • Tk:指某个目标单元格 Cellx 的上父格,Tk 的次序是从远到近的,也就是从离当前格最远的上父格开始,也可以理解为从最高级别的分组格开始。

  • lk:指左父格 LK 扩展后的次序,即扩展后的第几个单元格,如果不指定 lk 或 lk 为 0,则表示为当前表达式所在单元格所属的当前左父格 LK。

  • tk:指上父格 Tk 扩展后的次序,即扩展后的第几个单元格,如果不指定 tk 或 tk 为 0,则表示为当前表达式所在单元格所属的当前上父格 TK。

 

注1:如果只有左父格没有上父格,分号可以省略,即Cellx[Lk:±lk,LK-1:±lk-1,......,L1:±l1]。

注2:如果只有上父格没有左父格,分号不能省略,即Cellx[;Tk:±tk,Tk-1:±tk-1......,T1:±t1]。

注3:当相对引用小于-1,即-2,-3,-4,...等时,扩展数据可能出现循环相对。必要时需要用其他条件进行过滤。

 

 

 

 

 可能发生循环

 

 

3.2.2 绝对对坐标规则

 在进行报表设计时,单元格尚未扩展,但是其它单元格的计算表达式可能需要此单元格扩展后某个数据的精确位置,这时就需要使用绝对层次坐标精确表达该数据的位置。

 

 

 

规则说明:

  • Cellx:指目标单元格,是 Lk,Lk-1...L1;Tk,Tk-1...T1 的附属格。

  • Lk:指某个目标单元格 Cellx 的左父格,Lk 的次序是从远到近的,也就是从离当前格最远的左父格开始,也可以理解为从最高级别的分组格开始。

  • lk:指左父格 LK 扩展后的次序,即扩展后的第几个单元格,如果不指定 lk 或 lk 为 0,则表示为当前表达式所在单元格所属的当前左父格 LK。

  • Tk:指某个目标单元格 Cellx 的上父格,Tk 的次序也是从远到近的,也就是从离当前格最远的上父格开始,也可以理解为从最高级别的分组格开始。

  • tk:指上父格 Tk 扩展后的次序,即扩展后的第几个单元格,如果不指定 tk 或 tk 为 0,则表示为当前表达式所在单元格所属的当前上父格 TK。

注1:如果只有左父格没有上父格,分号可以省略,即 Cellx[Lk:lk,LK-1:lk-1,......,L1:l1]。

注2:如果只有上父格没有左父格,分号不能省略,即 Cellx[;Tk:tk,Tk-1:tk-1......,T1:t1]。

 

 

 

 

 C1[A1:2,B1:3]表示:取C1中     与A1第2个单元格对应的所有B1单元格中的第3个     相对应的那个单元格

   

3.3  层次坐标

表达式效果示例图示

Cellx[!0]

获取单元格 Cellx 扩展出来的所有值

A1[!0]

Snag_5a78762.png

Cellx[!0]{条件表达式}

根据条件表达式获取单元格 Cellx 扩展出来的部分值

A1[!0]{A1!=3}

Snag_59c8256.png

&Cellx

获取单元格 Cellx 扩展后每个值对应的位置

&A1

Snag_5a6e1cb.png

$Cellx

获取单元格 Cellx 扩展后对应位置上的值

$A1

Snag_5a589ec.png

 

 

 

 

   

3.2   动态格间运算

使用层次左边进行跨行运算,跨组运算、集合运算等等。

3.2.1  常用指标  

逐层累计:逐层累计就是在分组报表中,每一组分别将每层 与上一层数据相加,得到这一层的累计结果。

逐层累计:逐层累计就是在分组报表中,相对于逐层累计,从第二组开始在上一组的累计结果上继续累计。

比较:将单元格扩展出的每个值与第一个值进行比较,示例中是求差值。 

占比:计算单元格扩展出的每个值在总量中占据的比例。 

环比:环比是指本期与上期数据之间的比率计算。

同比:同期比是把当年每月与上一年相应月份的数据进行一个比率。

排名:部分层次、组别进行排名0

组内排名:在组别内进行排名

 

推荐阅读