新增功能
账户中心
增加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。
为减少二开操作,这里直接简化为,下拉框根据维度成员内容进行自适应,自适应的最小值与上方的选择框等宽,最大值与树形结构筛选器等宽(混用不同类型筛选器的时候,相对和谐)。
1、LuckySheet API setFrozen setHorizontalAlign setVerticalAlign setTextDecoration setCellStyle getCellInfo bindEvent 2、DeepTable API buttonApi(按钮相关api) dropdownMenuApi(右上角菜单相关api)
回到顶部
咨询热线