全部文档
文档中心电子表格2.0管理控件动态表

动态表

在电子表格2.0中,动态表是由控件创建出来的区域。动态表是由行列维度组合成的多维数据表,必须基于财务模型来创建。由于动态表支持维度表达式,因此,可根据表达式动态计算行列上的维度成员,因此称为动态表。

创建动态表有两种方式:

  • 基于动态表控件创建:通过选择财务模型并手动配置行列字段的方式创建

  • 基于动态表脚本创建:通过录入动态表脚本的方式直接生成

  1. 新建一个电子表格元素

  2. 在控件栏,选择动态表控件,拖入到工作表中的空白单元格

  3. 通过拖拽将财务模型中的维度配置在背景、行或列上,并按需设置动态表相关属性。

  4. 点击暂存预览,在编辑态预览效果

  5. 点击保存按钮,完成动态表配置,切换到使用态进行使用

动态表可通过脚本直接创建,其中包含动态表配置及背景、行、列上维度的详细信息。

.. note:: 一般可从已配置好的动态表中复制脚本,并更改其中的部分属性来创建新的动态表。脚本中的配置信息与通过动态表控件创建的配置页面一一对应。

分三个配置模块:基本信息,行/列设置,主题样式

点击动态表区域/大纲树,弹出右侧配置框,切换到基本信息。


动态表基本信息属性如下:

属性名称

说明

是否必填

区域名称

系统自动生成-sheet内唯一,也可以手动修改

起始单元格

自动读取不可修改,只能拖动更换位置

数据显示格式

分数字和比率类型分别配置

数字类型

- 默认单位:默认1


- 小数位数:默认保留两位

- 启用千位分隔符:默认不勾选

比率类型

- 百分比显示:默认勾选


- 小数位数:默认保留两位

行汇总位置

使用维度表达式时,行成员的汇总位置在上方还是下方

列汇总位置

使用维度表达式时,列成员的汇总位置在左侧还是右侧

支持如下数据单位,“千元表”/“万元表”等可使用此配置实现:


  • 默认单位-1时:

  • 默认单位-10000时:

即数字或比率显示的小数位数,支持如下:


  • 小数位数-保留4位时:

  • 启用千位分隔符-不启用时:

  • 启用千位分隔符-启用时:

可对负数设置不同的显示格式展示:

  • -123或颜色:

  • (123)或颜色:

  • 显示为”-”:

  • 显示为”0”:

对于比率类型数据,默认显示百分比格式:

  • 勾选百分比显示时:

  • 行/列汇总位置-默认行向下、列向左时

  • 行/列汇总位置-行向上、列向右时

  • 折叠按钮效果配置-下级时

  • 折叠按钮效果配置-全部时

该预设值为当前sheet的最大渲染允许单元格数,若用户创建的动态表渲染行列数大于该预设值 则会进行渲染报错提示(可修改,只能递增不允许小于该默认值)。

点击动态表区域/大纲树,弹出右侧配置框,切换到行列设置,可选择动态表对应的财务模型及字段在行列上的配置。


动态表行列设置如下:

属性名称

说明

是否必填

关联财务模型

动态表必须基于关联财务模型创建

背景

除行和列之外的字段

分布在行上的字段

分布在列上的字段

UD

由财务模型基本字段关联的UD维度带出来的字段,可用于动态表多维度展示

measure(虚拟度量维)

由财务模型关联出来的虚拟维度,其维度成员data表示数据展示在单元格,维度成员comment表示备注展示在单元格。也可以同时展示在行/列中

.. note:: 背景+行+列必须完全覆盖关联财务模型的基本字段,UD维度和measure(虚拟度量维)不做完整性校验。


  • 关联财务模型后,控件会自动将所有基本字段放在背景位置,可以通过拓展的方式,调整行列字段的布局。

  • 也可以手工通过行列右上角的添加字段按钮进行添加(前提是,该字段未在其他地方被占用)

  • UD字段默认不放置到背景/行/列上,可根据需求手工添加

    • UD 放置行

    • UD 放置列

  • measure(虚拟度量维)字段默认不放置到背景/行/列上,可根据需求手工添加

  • 维度成员data-放置行

  • 维度成员data-放置列

  • 维度成员comment-放置行

  • 维度成员comment-放置列

  • 维度成员data+comment-同时放置行

  • 维度成员data+comment-同时放置列

实现对动态表添加计算行/列,实现表内行/列间 或 维度成员间的运算。

  • 点击 行头 右侧的添加公式按钮,可配置公式行:


  • 点击 列头 右侧的添加公式按钮,可配置公式列:


行列公式语法:

  • 运算符:四则运算(+-*/ )

  • 计算对象:

  • 行列间计算:用动态表坐标代表计算对象 row1、col1

  • 维度成员计算:用维度表达式代表计算对象 account{a}->period{1;2}

  • 语法:用” “包起计算对象后,再叠加四则运算符

  • 行列间计算示例: “row1”+”row2”,(“row1”-“row2”)/2, “row1” *2

  • 维度成员间计算示例: “account{a}”+”account{b}”

注意事项:

  1. 上述row1,row2代表动态表坐标,可能包含多个维度成员,计算时会将row1,row2代表的所有维度成员进行聚合汇总,即 “row1”+”row2” 实际等于 sum(row1)+sum(row2)

  2. account{a},其中的“a”为具体维度成员,不支持使用base等函数

  3. 维度成员间计算和行列间计算不能混用

行间计算说明【同列间计算】:

  • 名称:必填,格式只允许中文、字母、数字、下划线

  • 公式校验:

    • 行数必须存在,如左图row4不存在

    • 需用小写双引号如”row1” + “row2”

    • row需写对,不支持大写或者错误的如Row,ro等行和列不能混用

    • 小数显示长度:默认2位,空表示四舍五入取整

    • 百分比,千分位:不受动态表的普通区域的数据格式影响

交互说明:

  • 至少存在一个普通行,否则动态表结构不完整

  • 公式行允许在行之间拖动

  • 公式框写内容时,只需写等号右边即可

  • 公式行也支持复制,删除

  • 公式行支持设置:隐藏,行标题自动换行

如果row1含文本类型科目 或 在使用态为noaccess或者无效,在计算row1+row2时,将文本数据作为0处理。


维度成员计算说明:

  • 计算公式至少包括行维度成员,剩余维度成员从列/背景获取,比如行上放了科目成员,维度计算公式也需包含科目成员,否则,会因字段不完整报错(只能多不能少)。

  • 计算公式里的维度成员不必须在现有行里(比如行2计算的成员,不一定要在行1里出现),可以额外从模型侧取数。


计算原理:公式未包含的维度,从列或背景补


计算顺序: - 先维度成员计算再行列间计算 - 行列间计算顺序:行从左往右,列从上往下,先行后列


更多计算场景举例:

1.行是两个维度: “account{1001}->product{P1}”+”account{1002}->product{P2}”

因为行上配了两个字段,因此每个+-*/之间的维度表达式,至少包含这两个字段。


2.行是一个维度,多给维度改变背景维度: “account{1001}->entity{E2}”+”account{1002}->entity{E2}”

单元格1 = 1001->E2->P1->背景维度 + 1002->E2->P1->背景维度;单元格2 = 1001->E2->P2->背景维度 + 1002->E2->P2->背景维度。


3.行是一个维度,多给维度改变列成员: “account{1001}->product{P2}”+”account{1002}->product{P2}”

单元格1 = 1001->P2->背景维度 + 1002->P2->背景维度;单元格2 = 1001->P2->背景维度 + 1002->P2->背景维度。


4.行是一个维度,多给维度但没给对称: “account{1001}->product{P2}”+”account{1002}”

单元格1 = 1001->P2->背景维度 + 1002->P1->背景维度;单元格2 = 1001->P2->背景维度 + 1002->P2->背景维度。


动态表计算的注意事项:
  • 动态表公式行/列,由表格侧后端计算,并非财务模型计算,因此,计算结果不落库,只能在每张表的展现侧进行配置。而且相同逻辑要重复配置。

  • 如果计算结果需要落库,建议使用:Python,MDX,维度成员公式。

  • 由于是表格侧后端计算,因此,计算结果不能实时跟随用户input进行展示,用户必须提交数据之后,表格侧重新查询,才能触发计算过程。

  • 如果计算结果需要实时展现,建议使用:luckysheet公式(跟excel公式一样),通过自定义JS添加luckysheet公式(如果计算范围是不固定的)

  • 自定义JS性能没有动态表公式好,建议尽量使用动态表公式。

使用Override可以通过动态表行号、列号或者维度的方式,命中需要覆盖的区域并且替换维度成员、计算公式、固定数据、样式等。

覆盖数据区域支持:

  • member 替换维度成员

  • data 显示固定数据

  • fx 计算公式

  • readonly 只读

  • precision 小数位数

  • unit 单位

  • theme 主题样式

覆盖标题区域支持:

  • header 标题

  • theme 主题样式

override-配置说明:

  • 名称:格式只允许中文、字母、数字、下划线,不允许为空。

  • 语法定义: override_header([命中区域],[覆盖功能]) override_header([命中区域],[覆盖功能])

语法校验:

  • 基本格式override_header([],[]) / override_data ([],[])

  • 只能是override_header/override_data

  • 如果第一个中括号里是行列形式,r和c不能混用,比如 r1:c2

  • 行列形式后面的数字要比前面大,比如r2:r3

  • 第二个[]里的功能关键字,只能是member, data, fx, unit, precision, theme, readonly,并且小写

  • 如果右侧是覆盖成员member=“account{1001}”,不支持维度函数或者多个成员,只能是单一成员

  • 不能包含空格、中文符号(,;“”等)

override-语法说明: 每条覆盖规则只可录入一个函数:override_data或override_header

1.覆盖数据区域: 语法:override_data([命中区域],[覆盖功能]) 举例:override_data([r1:r1,c2:c2],[data=8888,readonly=1])

  • 命中区域: a.整行数据:[r1:r1] b.整列数据:[c1:c1] c.行列交叉:[r1:r1,c2:c2] d.通过成员:[account{1001}->period{1;2}]

  • 覆盖功能: a.成员:member=”account{1001}” —每一个字段只支持单一成员 b.固定数字:data=8888 c.计算公式:fx=”account{1001}”+”account{1002}” —与data互斥 d.只读:readonly=1 e.小数位:precision=0.01 —支持范围与动态表配置一致 f.单位:unit=1000 —支持范围与动态表配置一致 g.主题样式:—与动态表主题可配置项一致 theme={font:”4”,fontsize:”10”,fontweight:”0”,fontcolor:”#262626”,readonlycolor:”#f2f3f5”,editablecolor:”#ffffff”,bordercolor:”#dddddd”, borderline:”0”,bordertype:”2”}

2.覆盖标题区域: 语法:override_header([命中区域],[覆盖功能]) 举例:override_header([r1:r1],[header=”自定义名称”])

  • 命中区域: a.整行标题:[r1:r1] b.整列标题:[c1:c1] c.通过成员:[account{1001}->period{1;2}] —需对应行字段或列字段

  • 覆盖功能: a.固定文字:header=”自定义名称;自定义名称2” —用;间隔多个字段 b.主题样式:—与动态表主题可配置项一致 theme={font:”4”,fontsize:”10”,fontweight:”0”,fontcolor:”#262626”,parentfillcolor:”#f2f3f5”,basefillcolor:”#ffffff”,bordercolor:”#dddddd”,borderline:”0”,bordertype:”2”

3.override-主题参数对照表

—通用

  • font: 字体,0-Times New Roman,1-Arial,2-Tahoma,3-Verdana,4-微软雅黑,5-宋体,6-黑体,7-楷体,8-仿宋,9-华文隶书,13-Pingfang

  • fontsize: 字号,9-72

  • fontweight: 字体粗细,0-默认(汇总加粗,非汇总不加粗),1-加粗,2-不加粗

  • fontcolor: 字体颜色,任意16进制颜色值

  • bordercolor: 边框颜色,任意16进制颜色值

  • borderline : 边框现型,0-实线,1-虚线

  • bordertype: 边框位置,0-上下,1-左右,2-所有,3-上下+粗底

—仅数据区域

  • readonlycolor: 只读时填充色,任意16进制颜色值

  • editablecolor: 可填单元格填充色

—仅标题区域

  • parentfillcolor: 汇总节点填充色

  • basefillcolor: 非汇总节点填充色

4.示例解释

  • override功能

  • 行列的不同命中方式

  • 命中时包含背景维度

  • member、data、fx之间的关系

  • header使用举例

用;间隔多个字段,留空代表不替换,使用原成员描述(如果想替换成空白,可填入空格符)。

点击 行1 右侧的设置按钮,可配置此行整体属性:


动态表行属性如下:

属性名称

说明

是否必填

隐藏无数据

设置后,若该行上只有空单元格以及值为0的单元格,则该行不显示

隐藏无权限行

设置后,若当前账号对该行成员无权限,则该行不显示

隐藏零行

设置后,若该行上只有空单元格以及值为0的单元格,则该行不显示

只读

设置后,对于原本允许编辑的行设为只读格式

隐藏

设置后,该行在使用态不展示

单元格置空

设置后,该行的数据为空,使用态体现为不可编辑

行标题自动换行

设置后,该行的成员标题超过当前列宽则自动换行展示


为了更完整的展现编辑态的多区域布局,动态表字段上的默认折叠;行属性上的隐藏行、隐藏无数据、隐藏无效行、隐藏无权限、隐藏零行等设置,不在编辑态下体现。


使用效果展示:

  • 未对行进行特殊设置时:

  • 隐藏无数据

  • 隐藏零行

  • 只读

  • 隐藏

  • 单元格置空

  • 自动换行

点击 行1 右侧的复制按钮,可复制此行所有属性到新的一行:

点击 列1 右侧的设置按钮,可配置此列整体属性:


动态表列属性如下:

属性名称

说明

是否必填

只读

设置后,对于原本允许编辑的列设为只读格式

隐藏

设置后,该列在使用态不展示

单元格置空

设置后,该列的数据为空,使用态体现为不可编辑

列标题自动换行

设置后,该列的成员标题超过当前列宽则自动换行展示

以上使用效果同行属性

点击背景字段,可进入字段详情设置页面

背景字段不在行列上显示,仅作为查询财务模型数据的条件,因此,仅支持选择单个维度成员或者关联到筛选器/变量。

如果将支持多选的筛选器/变量,关联到背景维度,将在保存时校验出错。

点击行/列字段,可进入字段详情设置页面


对应的字段属性:

属性名称

说明

是否必填

维度成员

设置行/列字段对应的维度下的成员表达式

字段名

从财务模型获取的字段

显示内容

设置成员显示方式,分仅名称、仅描述、名称+描述,默认仅描述

多层级显示

对于期间维度和开启了层级管理的维度,可在电子表格中配置该维度显示的层级。

合并单元格

设置后对连续的相同维度成员合并单元格显示

允许展开收起

后允许对行列进行折叠展开操作,默认开启

默认收起维度

“允许展开收起开启”时,设置该项,勾选后则每次开表时该维度成员默认收起

隐藏

默认不勾选,勾选后对该维度下对所有成员进行隐藏展示

过滤未激活实体

默认不勾选,勾选后对多版本实体配置表中未激活的成员不展示。

即该字段对应的维度成员的显示方式:

  • 仅名称

  • 仅描述

  • 名称+描述

即该字段对应的维度是否按照层级显示,

  • 仅对配置了多层级的维度有效

  • 启用多层级展示时从下拉列表中选到层级名称(允许多选)

  • 使用效果

  • 合并单元格

  • 允许展开收起

  • 默认收起维度

  • 隐藏

  • 过滤未激活实体-未启用

  • 过滤未激活实体-启用

动态表区域支持切换主题颜色,内置15种主题,其中系统默认主题不可修改,其他14种主题可二次修改。

主题设置分为:列头单元格区域、行头单元格区域、数据单元格区域


相关属性如下:

属性名称

说明

字体粗细

分常规和加粗

字号

设置字体大小,默认10号

字体颜色

设置字体颜色

单元格填充

设置单元格填充色

边框颜色

设置边框线的颜色

边框线型

设置线型样式

边框位置

分上下,左右,所有,上下+粗框


  • 示意图如下:

  • 汇总

  • 非汇总

  • 可写

  • 只读

  • 上下

  • 左右

  • 所有

  • 上下+粗下框

在动态表预览时会进行相关校验,包括:行/列字段不允许空,行列需覆盖财务模型下所有字段,维度成员信息不允许为空等。当预览异常时,在动态表区域左上角单元格中,会渲染错误原因,请根据错误提示,修改动态表配置。示意如下:

由于sheet页允许摆放多种元素内容(动态表,模型公式,底板内容/公式),动态表在摆放时不允许与其他内容存在重叠。若重叠拖动摆放时会弹窗提示或全局保存时报错不允许保存。

  • 首次拖控件布局时:若摆放的起始单元格有内容,会提示禁止放置。 示意图如下:

  • 拖动态表布局时:若其他位置已有内容,会提示禁止放置。 示意图如下:

由于编辑态预览想要尽量校验出所有可能的重叠情况,因此,隐藏无数据行等设置未在编辑态预览时体现,仅在使用态时呈现

  • 多动态表布局时:编辑态两个表互不影响,但由于新增成员导致扩张冲突报错提示。当前报错sheet会进行锁定,录入数据操作保存都不会生效,其他sheet保持正常使用。示意图如下:

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send