2023 4月28日

新增功能

  • 账户中心

    • 增加login界面样式修改功能

  • 清单表1.2

    • 导出支持过滤隐藏列

    • 支持通过 DeepEngine 数据表创建清单表

  • 电子表格1.0

    • 新增功能:度量备注可以控读写权限

  • 电子表格2.0

    • Override动态表覆盖功能

    • 自定义JS第3批

功能优化

  • 清单表1.2

    • 筛选导出逻辑优化

    • 单次导出最大查询数量支持环境变量

  • 电子表格1.0

    • 优化:无权限单元格去掉批注和附件入口

    • 优化:电子表格自定义按钮同步执行时效果

    • 优化:动态表编辑视图保存前校验总笛卡尔积数量

  • 电子表格2.0

    • 平铺单选类型筛选器的下拉框宽度

以下是详细更新说明


支持通过前端配置文件中「global-cssCode」自行控制登陆界面展示。如:登陆框部分选项隐藏/显示,背景图片,logo展示等。 前端静态配置文件

如下图所示:清单表导出按钮增加了”导出范围“的配置,支持导出时把隐藏列过滤掉不导出。

  • 导出范围选择了”导出隐藏列“,和原来逻辑一致,会将隐藏的列导出;

  • 导出范围选择了”不导出隐藏列“,则会将在显示属性配置了隐藏的展示列过滤掉,不导出;

  • 批量导出、筛选导出都支持该配置,关联业务模型的导出暂不支持;

本次迭代支持了通过DeepEngine数据表创建清单表,首先需注册DeepEngine数据表组件,注册好数据表后可通过下以下方式创建清单表:

本地迭代优化了筛选导出的逻辑,去除了每次查询都会重复count计算的逻辑,改为:只需首次根据查询条件count一次,后面则无需再count,优化后的逻辑提高了导出速度。

由于目前单次最大查询数量是固定1w条,若单次导出大量数据就需查询几十次,使得导出时间变长,因此本次迭代单次最大查询数量的配置支持了环境变量,项目上可根据实际需求进行调整,性能问题由项目上自行把控。

背景:目前度量的备注comment不受读写权限控制(可见权限有控制,但是读写没控) 如下图所示,C列和D列为同一个维度组合下的data和comment两个度量。当C列因为读写权限被控制为只读时,D列的备注并没有被控只读。 优化后效果: 在财务模型的权限配置界面中增加配置项“受读写权限控制的度量”。顾问可以选择备注度量是否参与读写权限的控制。 如果不选中,则读写权限逻辑跟之前一致。 如果选中了备注,则在电子表格使用时,数值和备注会按照同一规则控制单元格的读写状态。

背景:目前电子表格上,无权限的单元格仍然可以右键插入批注和附件。 本次优化后,用户对无权限的单元格,右键将不出现插入批注和上传附件的选项。

背景:目前电子表格1.0自定义按钮配置了同步执行脚本或执行计算流时,在使用视图点击同步按钮后,按钮不会变成禁用状态,并且可以连续点击。 本次优化后: 如果配置了同步运行,则在脚本执行过程中,按钮会禁用置灰,直到脚本执行完毕才会放开为可用状态。同时脚本执行期间,其他按钮置灰不可点击。

背景:动态表因为配置灵活,深受顾问喜爱。但是灵活也带来了一些问题,比如一个财务模型的维度成员数都很大的时候,如果在动态表的行列上配置全部维度的全部成员,并且没有勾选隐藏无数据行的话,很可能造成一个很大数量级的笛卡尔积(比如5个维度都有100个成员,如果维度表达式全部配置Descendant(#root,0),那么最终笛卡尔积=100100100100100=100亿单元格)。而实际业务场景中几乎不会在前端展示一个上亿单元格的表格,但这样的配置在开表时会造成很大的服务器资源开销,从而引起一些线上问题。 本次优化后: 在动态表编辑视图保存时,会进行一次校验,对于没有勾选隐藏无数据的行列组合,预估笛卡尔积数量,如果超过500万,则会进行一定的提示并阻止保存,以此预防配置失误引起的环境崩溃等问题。(对于勾选了隐藏无数据行的组合不会计入校验总数)

override功能使用背景:相当于在已经配置好的动态表行列结构的基础上,覆盖其他内容。 使用Override可以通过动态表行号、列号或者维度的方式,命中需要覆盖的区域,并且替换维度成员、计算公式、固定数据、样式等。 覆盖数据区域支持:

  • member 替换维度成员

  • data 显示固定数据

  • fx 计算公式

  • readonly 只读 — 标准配置按行/列处理

  • precision 小数位数 — 标准配置按区域处理

  • unit 单位 — 标准配置按区域处理

  • theme 主题样式 — 标准配置按区域处理

覆盖标题区域支持:

  • header 标题

  • theme 主题样式 — 标准配置按区域处理

配置方式 注:多条覆盖规则从上往下执行,后者覆盖前者。

override语法说明

每条覆盖规则可以录入一个override函数:override_data或override_header
1. 覆盖数据区域:
语法:override_data([命中区域],[覆盖功能])
举例:override_data([r1:r1,c2:c2],[data=8888,readonly=1])
(1)命中区域:
a. 整行数据:[r1:r1]
b. 整列数据:[c1:c1]
c. 行列交叉:[r1:r1,c2:c2]
d. 通过成员:[account{1001}->period{1;2}]
(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="自定义名称"])
(1)命中区域:
a. 整行标题:[r1:r1]
b. 整列标题:[c1:c1]
c. 通过成员:[account{1001}->period{1;2}] ---需对应行字段或列字段
(2)覆盖功能:
a. 固定文字:header="自定义名称;自定义名称2" ---用;间隔多个字段
b. 主题样式:theme={font:"4",fontsize:"10",fontweight:"0",fontcolor:"#262626",parentfillcolor:"#f2f3f5",basefillcolor:"#ffffff",bordercolor:"#dddddd",borderline:"0",bordertype:"2"

实现效果举例: 注:此功能相对复杂,将培训进行详细讲解。

如果筛选器配置为非树形结构,并且没有启用多选,在使用态,筛选器效果为平铺下拉。 在之前的版本中,筛选器下拉框的大小限死为与选择框一样宽,如果要调整只能通过自定义JS。 为减少二开操作,这里直接简化为,下拉框根据维度成员内容进行自适应,自适应的最小值与上方的选择框等宽,最大值与树形结构筛选器等宽(混用不同类型筛选器的时候,相对和谐)。

回到顶部

咨询热线

400-821-9199

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

ctrl+Enter to send