在电子表格2.0中,动态表是由控件创建出来的区域。动态表是由行列维度组合成的多维数据表,必须基于财务模型来创建。由于动态表支持维度表达式,因此,可根据表达式动态计算行列上的维度成员,因此称为动态表。
创建动态表有两种方式:
基于动态表控件创建:通过选择财务模型并手动配置行列字段的方式创建
基于动态表脚本创建:通过录入动态表脚本的方式直接生成
新建一个电子表格元素
在控件栏,选择动态表控件,拖入到工作表中的空白单元格
通过拖拽将财务模型中的维度配置在背景、行或列上,并按需设置动态表相关属性。
点击暂存预览,在编辑态预览效果
点击保存按钮,完成动态表配置,切换到使用态进行使用
动态表可通过脚本直接创建,其中包含动态表配置及背景、行、列上维度的详细信息。
.. 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}”
注意事项:
上述row1,row2代表动态表坐标,可能包含多个维度成员,计算时会将row1,row2代表的所有维度成员进行聚合汇总,即 “row1”+”row2” 实际等于 sum(row1)+sum(row2)
account{a},其中的“a”为具体维度成员,不支持使用base等函数
维度成员间计算和行列间计算不能混用
行间计算说明【同列间计算】:
名称:必填,格式只允许中文、字母、数字、下划线
公式校验:
行数必须存在,如左图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保持正常使用。示意图如下:
回到顶部
咨询热线