拥有一个先胜云账号,由空间管理员授权拥有对 电子表格 组件的操作权限。
应用中已有财务模型元素。
在 元素管理 页面点击 + 新建,选择 电子表格 > 固定格式报表,进入固定格式报表编辑界面。
设置固定格式报表属性,并配置工作表。
在图形化配置界面添加财务模型元素,并通过拖拽方式将财务模型中的维度配置在表单页面上。
配置页面字段和单元格维度信息。
点击右上角 保存 按钮,填入编码等必填信息后点击 确定,即完成固定格式报表的创建。
属性信息如下:
属性名称 |
说明 |
是否必填 |
---|---|---|
基本信息 |
电子表格元素可视为excel的workbook,此栏配置workbook的基本信息 | |
名称 |
电子表格名称,字符类型不限 |
是 |
中文描述 |
电子表格中文描述 |
否 |
英文描述 |
电子表格英文描述 |
否 |
说明(中文) |
电子表格的中文说明信息 |
否 |
说明(英文) |
电子表格的英文说明信息 |
否 |
表单信息 |
表单视为workbook中的sheet页,此处默认编辑第一个sheet页的信息 | |
名称 |
表单名称,字符类型不限 |
是 |
描述 |
表单描述 |
否 |
启用变量 |
开启后,可关联已配置的变量元素 |
否 |
关联变量 |
开启启用变量后,出现关联变量属性,可关联已配置的变量元素 |
否 |
点击左上角的设置按钮,弹出 电子表格 属性框,可设置固定格式报表属性,包含电子表格的编码、名称和描述。编码不允许为空,名称和描述长度都不超过255:
.. csv-tabel:: 固定格式报表属性 :header: 配置属性,说明, 是否必填 :widths: auto
编码, 固定格式报表的唯一识别码,只允许数字,字母,下划线,长度不可超过50, 是 名称(多语言), 固定格式报表的名称,表单标题优先取名称,名称为空时取编码, 否 说明(多语言), 固定格式报表描述, 否 启用变量, 开启后,可关联已配置的变量元素, 否 关联变量, 开启 启用变量 开关后,出现 关联变量 属性,点击关联已配置的变量元素, 是
点击当前工作表,可设置工作表属性。
当电子表格有多个工作表的时候,可以通过下拉框在多工作表之间切换。
属性名称 |
说明 |
是否必填 |
---|---|---|
基本信息 | ||
名称 |
使用视图中 sheet 页显示名称,显示创建表单时输入的名称,可修改。长度不允许超过255 |
是 |
类型 |
显示创建时选择的表单类型-固定格式报表,不允许修改 |
— |
默认单位 |
每次打开表单时,对于数字类型科目的默认显示单位,可选:1(默认),1,000 ,10,000,1,000,000,000 |
否 |
默认精度 |
每次打开表单时,对于数字类型科目的默认小数精度,可选:1,0.1,0.01(默认),0.001,0.0001,0.00001,0.000001 |
否 |
允许调整单位 |
允许在使用视图中调整数字的显示单位 |
否 |
允许调整精度 |
允许在使用视图中调整数字的小数精度 |
否 |
允许调整千分位 |
允许在使用视图中开启或关闭千位分隔符 |
否 |
启用千位分隔符 |
开启后,使用视图的数字类型默认启用千位分隔符 |
否 |
使用效果:
.. 增加使用效果
默认单位为1时:
默认单位为1000时:
默认精度为0.01时:
默认精度为1时:
使用视图中,用户调整单位后不用点击刷新按钮,数据直接改变:
使用视图中,用户调整精度后不用点击刷新按钮,数据直接改变:
使用视图中,用户可以修改 千分位符 勾选情况,数据直接改变:
使用视图中,千分位符 勾选且无法修改,数据展示千位分隔符:
点击当前 sheet 右侧的 +,可添加 sheet 页。支持创建数据透视表、固定格式报表、清单表三种类型的表单,也可通过脚本创建上述表单。
可通过 Excel 模板导入已配置好的工作表。
点击 导入 按钮,会弹出文件选择框,选择需要导入的 excel 文件(xls,xlsm),点击 打开,会弹出第二个窗口,显示 excel 文件中的 sheet 页,并让用户选择需要导入哪些 sheet 页。
属性名称 |
说明 |
是否必填 |
---|---|---|
源工作表名 |
导入模板中的 sheet 名称,只读 | |
导入方式 |
新建:将此 sheet 作为新增工作表自动创建,此时目标工作表名自动填充(与源工作表名一致);覆盖:将此模板 sheet 内容覆盖目标列表内容,目标列默认匹配同名 sheet 页,若无重名则不自动选择,不允许多张模板 sheet 覆盖相同目标对象,选择“覆盖”创建时只覆盖样式(包括单元格计算公式),不覆盖单元格配置的维度脚本 |
是 |
目标工作表名 |
电子表格中的工作表名,导入方式为 新建 时,为输入框,自动带出导入的 sheet 名,若与已有工作表名重复,则保存时提示 工作表名重复;导入方式为 覆盖 时,为下拉框 |
是 |
导入方式默认:有重名则为覆盖,没有重名则为新建
示例:导入模板中为 Sheet1,Sheet2。电子表格中已有 Sheet2,Sheet3,导入后:
源工作表名 |
导入方式 |
目标工作表名 |
---|---|---|
Sheet1 |
新建 |
空(输入框) |
Sheet2 |
覆盖 |
Sheet2(可下拉选Sheet2,Sheet3) |
勾选要导入的 sheet 名称后,点击 确定,模板中 sheet 页内容会显示在右侧的预览区中。
点击 当前工作表 后的下拉按钮打开下拉选项,下拉选项显示当前的工作表列表,可以通过拖拽改变顺序。
切换到 使用 视图,工作表顺序一致,且默认打开的是编辑视图的当前工作表。
鼠标悬停于当前工作表,出现 删除 图标,点击可删除当前工作表。
固定格式报表图形化配置界面如下:
该界面包含几部分:
财务数据模型
财务数据模型 区域初始需添加已配置的财务模型,添加后会列出所选财务模型及其所有维度类型字段和属性维。
点击 + 图标可添加多个财务模型,在配置单元格维度信息时可选到添加的财务模型。
点击财务模型所在行右侧的 × 图标,可删除该财务模型。
页面
用户可以将字段拖动到页面(POV)中,并可以拖动调整字段之间的顺序。页面字段不允许重复。拖动后的样式如下:
鼠标点击页面上的字段,右侧会弹出设置弹窗,可在弹窗中配置维度信息和属性设置。
鼠标悬停页面上的字段,会出现删除按钮,点击并确认后会删除该字段。
当把一个字段拖动到页面中,财务模型中的字段右侧会出现对应标识,表明该字段已经被使用:
属性区域
页面右侧是属性区域。属性区域随着用户点击左侧不同的位置(电子表格,工作表,页面字段)而显示不同的属性内容。
点击 财务数据模型 区域的 添加 按钮,在弹框中选择所需的财务模型。
在某些情况下,需要添加多个财务模型,点击 + 按钮,在弹框中选择已配置的财务模型,即可添加。
选择一个财务模型,将其所有字段拖动到页面上。
点击页面字段,右侧弹出属性框,即可设置页面字段属性。
属性名称 |
说明 |
是否必填 |
---|---|---|
维度信息 | ||
可选项 |
页面维度下拉成员选项。可配置维度成员表达式(可使用变量)。表达式可以手工录入或者在弹窗中选择 |
是 |
默认值 |
打开表单时此维度的默认显示成员,需在维度成员表达式范围内(可使用变量) |
否 |
字段信息 | ||
财务数据模型 |
显示当前字段所属的财务模型(只读) |
是 |
字段名 |
显示当前字段的名称(只读) |
是 |
名称 |
默认显示维度编码,可修改,不允许跟其他页面字段名称重复 |
否 |
标题 |
默认显示维度名称,可修改;字段在使用视图的显示标题 |
否 |
显示内容 |
仅名称(默认):仅显示维度成员编码;仅描述:仅显示维度成员名称;名称+描述:以 编码-名称 的格式显示维度成员 |
是 |
多层级显示 |
对于期间维度和开启了 启用层级管理 的维度,可在电子表格中配置该维度显示的层级。这里将该维度所设置的层级以 层级名+描述 的形式展示在下拉列表中,供用户选择(多选) |
否 |
全局联动 |
checkbox,若一个电子表格存在多个表单,且有两个相同页面维度同时勾选该属性,则使用视图中某一表单切换页面维度成员后,另一张表单的该维度也会同步切换 |
否 |
显示树形结构 |
checkbox,若勾选,页面维度下拉成员将以树形结构展示,否则以列表结构展示 |
否 |
隐藏 |
checkbox,若勾选,页面(POV)中此字段被隐藏,否则正常展示 |
否 |
使用效果:
默认值 同 可选项 类似,默认值只能选中一个值:
仅名称:
仅描述:
名称+描述:
当设置该属性后,使用试图中该维度以多个下拉框的形式显示,每个下拉框中显示一个层级的成员,以非树形的方式展示,此外,除了最高层级外,每个层级的下拉框中的第一个成员都为 全部 + 层级名称,如 全部市,全部区县。选择其中一个层级的成员,会联动其他层级的成员和可选成员发生变化,逻辑如下(以省,市,显为例):
当选中一个成员时,其以下的层级的可选成员变为该选中成员的下级,其以上层级的可选成员变为该选中成员的上级。如在 市 pov 中选择了 南京市,则 区县 pov 中均只保留南京市下的区县,并且自动选中 全部;省 则自动选中 江苏省,但省的可选成员清单不变。此时,用于查询的 region 成员为 南京市。
当将一个成员选为 全部 后,其用于查询的成员为其上级的非 全部 的一个 POV 的成员。如原本 pov 的选择是:江苏省-南京市-鼓楼区,此时的查询 pov 是 鼓楼区。将 区县 POV 设置为 全部 后,查询的 pov 变为 南京市。
期间维度未开启多层级显示:
期间维度启用多层级显示:
编辑视图:可下拉多选该维度设置的层级名:
使用视图:以选中的层级名+层级成员依次展示该维度成员:
页面字段如果设置了全局联动,则当该维度在其他 sheet 页被重新选过成员并刷新后,联动到的 sheet 页面也会被刷新。
.. note:: 必须至少两个 sheet 页的相同维度同时启用此功能才会生效。
比如,Year 维度在 sheet1 中和 sheet2 中都设置了联动。当用户在 sheet1 上面选择了一个新的 Year成员,点击 刷新当前 按钮时,会同时把 sheet2 的数据也刷新,因为 sheet2 的 Year 通过联动的方式也被重新选择过了。
编辑视图:
对 sheet1 的 Year 维度设置全局联动:
对sheet2的year维度设置全局联动:
使用视图:
sheet1 的 Year 维度切换2021年,刷新:
切换到 sheet2,Year 维度也自动切换为2021年:
若数据透视表与固定格式报表的某 POV 配置了全局联动,但数据透视表 POV 配置了 允许多选,则使用视图中:
数据透视表多选后刷新,切到固定格式报表,POV 只联动显示第一个成员值
示例:数据透视表:POV{A01,A02,A03},刷新后,固定格式报表:POV{A01}
固定格式报表切换 POV 后刷新,切到数据透视报表,POV 联动显示唯一值
示例:固定格式报表:POV{A01},刷新后,数据透视表:POV{A01}
关闭时:
开启时:
在预览区中,用户点击每一个单元格,页面区域左下方的 单元格信息 和 维度信息 会出现相应的单元格信息。
当前单元格
当选中某个单元格时,当前单元格 中会显示单元格的位置(如A3)。
固定内容或公式
显示单元格中的具体信息,如文字或者公式,例如:=SUM(D7:D10)(导入的 excel 公式也会自动显示在此)。公式支持直接从 excel 复制到编辑区域(包括拖拽填充)。
维度
打开右上角 维度信息,可将当前预览区模板切换至维度视图(输入框不支持上下拖动调整高度,默认4行高度,文字过多出现滚动条)。在每个单元格内可显示该单元格的所有维度组成,如:
=SETDIMENSION(“cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{1}”)
单元格的维度设置步骤如下:
先点击某单元格,再点击 维度 输入框右下角的漏斗形图标,会弹出维度成员选择弹框。(此弹框外区域置灰不可编辑,只能通过 取消 或 确定 关闭)。
通过下拉菜单选择 财务数据模型(默认带出工作表已配置的第一个财务数据模型),下拉菜单的选项为当前工作表配置的所有财务数据模型。
财务数据模型切换后,清空穿梭框右侧数据:
财务模型选择好以后,在 维度 下拉框选择该财务数据模型的维度和属性维。
选择好维度或属性维后,下方穿梭框左侧出现维度树形结构。右侧是选中的每个维度的成员。一个维度只能选中一个成员,选择后右侧会多出一行。
选择同维度其他成员后,会更新右侧维度成员而不是添加一行。
示例:
最后将右侧的维度成员拼接组成单元格的表达式。
.. note:: 此栏的表达式不带 =SETDIMENSION(“”)
单元格内的维度表达式可通过类似 Excel 的方式拖拽填充和引用单元格。
单元格维度信息可通过在电子表格脚本里直接配置并实时反显。同理,单元格设置脚本后,也可在电子表格脚本中实时显示。
示例:
左下角维度信息新增记录:cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{4}||cell(G2)
则电子表格脚本中实时添加一条记录:cell4=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{4}||cell(G2)
反之亦然:
全局变量为整个应用统一的变量。在配置维度成员表达式时,可用全局变量替代维度成员。 用处:若多张表都引用了此维度,且表单维度成员都可能不定期发生变化,则配置全局变量后只需要进入变量元素更改变量值,而无需依次进入各个表单编辑视图更改维度成员表达式。
用户变量为管理员统一添加,用户允许各自设置变量值,用法与全局变量相同。
函数只有单元格上的维度成员表达式才可使用。
@Cur含义
当同一维度既在页面上又在行或列上时,若对行/列上的维度成员表达式配置 @Cur,使用视图中行/列上该维度成员将随页面上该维度下拉选择的成员变化而变化。
@cur 的使用
页面 Entity 维度成员表达式=entity{A;B;C}
列1 上 Entity 维度成员表达式=entity{IDescendant(@Cur,0)}
当页面上 Entity 选择 A 时,列1 展示 IDescendant(A,0) 的成员。
@cur可以配成@cur+1, @cur-1
页面 Entity 维度成员表达式=year{2018;2019;2020}
列1 上 Entity 维度成员表达式=year{@cur;@cur-1}
当页面上 Entity 选择 2019 年时,列1 显示 2018 和 2019 的成员。 +1/-1为取 @Cur 成员的下一个/上一个同级成员。
在固定格式报表的编辑界面,如果所引用财务模型关联的所有维度中,有维度含属性维,则可以用来做表。
属性维在下图中显示,显示的格式为 Entity>>alias(例),其中 Entity 是字段名,alias 是 Entity 维度某个自定义属性设置的维度(alias 维度不在财务模型内)。
其余做表的逻辑,属性维同普通维度没有区别。属性维在脚本中显示为 Entity>>alias 的格式,表示是 Entity 字段的值的属性。
属性维支持配在单元格中。
示例:
将 Entity>>alias 拖到页面中:
点击页面中该属性维,可在右侧属性框中编辑相关属性:
此时该页面字段对应的脚本为(示例):page2=cube(mcd_cube_pl)||Entity>>alias{2020;2021}#showboth
若在单元格维度信息中添加属性维,脚本格式为(示例):cell1=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Entity>>alias{2020}->Period{1}||cell(D2),
例如 Entity 维度的属性维为 Class,Entity 与 Class 维度成员如下图所示:
其中 Entity 的子成员 Store14 关联 Class 中的 标准店,Entity 子成员 Store15 未关联任何 Class 成员。
存数逻辑:
若有 Entity 维度,则按当前单元格对应的 Entity 成员存数;
如下图所示,A 列为 Entity 的子成员 Store14、Store15,B 列为 Class 的子成员。则录入红框所示数据后点击保存。
查看该财务模型关联的数据表,可看到数据已储存至对应的 Entity 成员:
查数逻辑:
在使用视图中,若有 Entity 维度,则取属性维 Class 成员过滤出的维度成员,与该 Entity 成员本身的交集。若交集为空,则该单元格值显示为空;
上述8个数据保存后,在电子表格中展示如下:
Store14 与 CLass 中的 标准店 有交集,展示数据1,与其他 Class 数据无交集,因此数据过滤显示为空。
Store15 与 Class 中的任何成员无交易,因此数据均过滤显示为空。
固定格式报表可添加并配置按钮和下拉按钮。
点击页面右上角 高级设置 > 按钮管理:
弹出以下窗口:
每个表单都会有4个默认按钮:保存当前,保存全部,刷新当前,刷新全部。这个4个按钮会允许用户隐藏或者重命名。4个按钮的名称固定为 save,save_all,refresh,refresh_all 且不可编辑。这4个名称是用来判断该按钮是否是固定按钮的依据。因此,在用户自己新增按钮时,不允许用这4个名称。
属性名称 |
作用 |
---|---|
保存当前 |
使用视图中保存当前sheet页并自动刷新当前sheet页 |
保存全部 |
使用视图中保存全部sheet页并自动刷新全部sheet页 |
刷新当前 |
使用视图中刷新当前sheet页 |
刷新全部 |
使用视图中刷新全部sheet页 |
这4个固定按钮不允许删除可设置隐藏,隐藏后,在使用视图按钮无法被触发。
固定按钮不论如何修改描述标题或说明,其功能始终不变。
固定按钮可以同自定义按钮一起左右拖动排序。
点击 + 添加按钮,可选择新建 按钮 或 下拉按钮:
点击 按钮,在下方按钮行最左侧出现新建的按钮:
点击新按钮,弹出按钮设置界面:
.. csv-table:: 按钮属性设置 :header: 属性名称, 说明, 是否必填 :widths: auto
基本信息, , 编码, 按钮编码,只允许输入字母,数字,下划线, 是 名称(多语言), 按钮名称,字符类型不限, 否 提示(多语言), 按钮的说明信息, 否 隐藏, 默认不勾选,若开启,使用视图按钮不展示;否则,正常展示, 否 执行信息, , Python脚本, 点击按钮时触发执行的 python 脚本(四个固定按钮无需配置), 否 运行前弹窗显示脚本参数, 若开启,按钮运行前会弹出脚本参数弹窗;否则,按钮运行前不会弹出脚本参数弹窗, 否 异步运行, 若开启,点击按钮时,python 将进入作业中后台运行,此时不会刷新表单, 否 运行后刷新表单, 若开启,脚本执行成功后会自动刷新表单;否则,脚本执行成功后不刷新表单, 否 刷新当前, 脚本执行成功后自动刷新当前工作表, 否 刷新全部, 脚本执行成功后自动刷新所有工作表, 否 脚本参数, 如果按钮上关联了 python 计算脚本,则在点击时,将页面上的下拉选项框中所选的内容/脚本默认值作为参数值发送给 python 作为运行的输入参数, 否 允许编辑, 勾选 运行前弹窗显示脚本参数 ,同时开启 允许编辑,使用视图点击按钮时,弹窗可手动选择页面维度的下拉成员作为参数传给 python 运行, 否 样式, , 图标, 使用视图中按钮的图标, 否 字体, 使用视图中按钮的字体展示样式,如大小、粗细、颜色、位置等, 否 界面, 使用视图中按钮的界面展示样式,如滚动条等, 否 边距, 使用视图中按钮的外边距、内边距展示样式, 否 阴影, 使用视图中按钮的边框、文字阴影展示样式, 否 恢复为默认样式, 默认按钮的展示样式,修改样式后可恢复至初始状态, 否
点击 + 添加按钮,选择 下拉按钮 ,界面最左边新增一个下拉按钮。
点击该下拉按钮,右侧会弹出下拉按钮属性框:下拉按钮树形结构图、基本信息、样式,其中 基本信息、样式属性 与上文自定义按钮一致,无执行信息。
下拉按钮可继续添加子节点的按钮/下拉按钮:
可以点击下拉箭头退回到上级按钮列表中:
添加的子按钮/下拉按钮将在使用视图中作为父级下拉菜单的下拉成员展示:
配置好的按钮,在表单会显示在最上方的操作栏中。其中最右侧为固定按钮,视图切换按钮,其他按钮(上传,下载,数据审计):
其余按钮依据编辑视图从左至右的顺序在使用视图中从左至右排列: 编辑视图:
使用视图:
点击页面右上角 高级设置 -> Python脚本管理:
弹出如下窗口:
点击 新增 按钮会弹出 python 脚本选择窗口。选择好的脚本显示在 计算脚本管理 列表中。
点击列表中的脚本项的编辑按钮,在弹框中进行脚本设置:
.. csv-table:: 计算脚本管理 :header: 属性名称, 说明, 是否必填 :widths: auto
基本设置, , 运行规则:, 当前 python 脚本的运行规则,脚本在配置到表单上之后,可选择加载前/保存后两种情况下会触发自动运行, 表单加载前运行, 表单在打开的时候运行 python(将初始的页面下拉选项值发送给 python 做入参), 否 表单保存后运行, python 在表单数据保存后运行, 否 异步运行(job模式), 表单加载前运行:如果勾选 异步运行,则在运行 python 的时候表单同时打开,python 走作业方式运行。如果不勾选,则表单需要等待 python 运行完成后再打开。, 否 , 表单保存后运行:如果勾选异步运行,并且勾选运行后刷新表单,则保存后的刷新不用等待 python运行结束,否则需要等待 python 运行完成后再刷新表单界面, 否 所属sheet页:, 配置 python 脚本执行规则应用于哪些 sheet 页, 全部, python 脚本执行规则应用于全部 sheet 页, 否 Sheet1, python 脚本执行规则只应用于 sheet1, 否 Sheet2, python 脚本执行规则只应用于 sheet2, 否 运算优先级, 输入整数(0,1,2。。。),当配置多个 python 脚本时确定执行先后顺序, 否 脚本参数, , 运行时弹框, 勾选后,使用视图点击按钮时,将弹窗手动选择页面维度的下拉成员作为参数传给 python 运行, 否 参数名称, 从python设置中带过来的参数名,不允许编辑, 否 描述, 从python设置中带过来的参数描述,不允许编辑, 否 赋值方式,可选项为脚本默认值、页面POV、无,默认为脚本默认值,是 工作表名称,赋值方式为页面POV时可编辑,否 允许编辑, 勾选后脚本运行时弹窗中的参数可编辑,否
通过对表单配置自定义 JS,可调整固定格式报表上行列和单元格的格式,对文本、数据添加自定义样式或图标集等,也可添加自定义公式用来处理数据间的计算逻辑,或实现添加前端数据校验等功能。
配置步骤:
点击页面右上角 高级属性 > 自定义JS:
弹出自定义 JS 配置窗口:
首先在代码区域编写自定义 JS 代码,注意代码需定义方法名,然后将方法名配置在 工作表-自定义JS 中的 初次加载时/刷新后/保存前,代表在表单初次加载时/刷新后/保存前执行对应的自定义 JS 方法。
.. note:: 保存前触发的自定义JS写法需具有一定的规则,让编写自定义JS的用户可以控制是否继续走保存逻辑。
将使用视图的 上传、下载、数据审计 按钮放出的自定义 JS 方法接口如下:
export default (params)=>{
const {
workbook:{
setWorkbookMainInfo
},
} = params
function t1(param){
setWorkbookMainInfo((oldWorkbookMainInfo) => {
return {
...oldWorkbookMainInfo,
wbBtnShowStyle: 2 // 2 平铺
};
});
}
return {
t1
}
}
点击右上角 高级设置 > 电子表格脚本,中间弹出脚本弹框:
脚本格式:
workbook_name=SalesInput
workbook_description1=SalesInput
workbook_description2=
workbook_instruction1=
workbook_instruction2=
sheet_name=SalesInput
cube_name=mcd_cube_pl,Clickhouse_Test_Cube
sheet_type=static
unit=1
precision=0.01
unit_allowcontrol=false
precision_allowcontrol=false
thousand_separator=false
thousand_separator_allowcontrol=false
page1=cube(mcd_cube_pl)||Entity{Base(Nanjing,0)}#showdescription
page2=cube(mcd_cube_pl)||Version{VSTORE}#hide
page3=cube(mcd_cube_pl)||Misc{MS00}#hide
page4=cube(mcd_cube_pl)||Currency{CNY}#hide
page5=cube(mcd_cube_pl)||View{Periodic}#hide
page6=cube(Clickhouse_Test_Cube)||Period#showboth
cell1=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{1}||cell(D2),readonly
cell2=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{2}||cell(E2),readonly
cell3=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{3}||cell(F2),writeonly
cell4=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{4}||cell(G2)
注释版:
workbook_name=SalesInput ......电子表格编码
workbook_description1=SalesInput ......电子表格名称(中文)
workbook_description2= ......电子表格名称(英文)
workbook_instruction1= ......电子表格说明(中文)
workbook_instruction2= ......电子表格说明(英文)
sheet_name=SalesInput ......工作表名
cube_name=mcd_cube_pl,Clickhouse_Test_Cube ......财务数据模型编码
sheet_type=static ......工作表类型(static固定格式报表)
unit=1 ......默认单位
precision=0.01 ......默认精度
unit_allowcontrol=false ......允许调整单位
precision_allowcontrol=false ......允许调整精度
thousand_separator=false ......启用千位分隔符
thousand_separator_allowcontrol=false ......允许调整千分位
page1=cube(mcd_cube_pl)||Entity{Base(Nanjing,0)}#showdescription#showtree||text{名称},name{标题},global ......页面字段1的属性(#showdescription:仅描述 #showname:仅名称 #showboth:名称+描述 #hide:隐藏 #showtree:显示树形结构 ||text{名称} name{标题} global:全局联动) 备注:#showdescription,#showname,#showboth,#hide四者互斥
page2=cube(mcd_cube_pl)||Version{VSTORE}#hide
page3=cube(mcd_cube_pl)||Misc{MS00}#hide
page4=cube(mcd_cube_pl)||Currency{CNY}#hide
page5=cube(mcd_cube_pl)||View{Periodic}#hide
page6=cube(Clickhouse_Test_Cube)||Period#showboth
cell1=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{1}||cell(D2),readonly ......单元格1的维度信息
cell2=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{2}||cell(E2),readonly
cell3=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{3}||cell(F2),writeonly
cell4=cube(mcd_cube_pl)||Type{TP00}->Scenario{Actual}->Year{2019}->Account{AS01}->Product{PD01}->Period{4}||cell(G2)
固定格式报表的 page 定义同数据透视表完全一样。不一样的地方在于固定格式报表没有行和列的配置,取而代之是有单元格 cell 的配置。每个 cell 中的每个维度只允许配置一个成员,如 Product{PD0101},不能配置 Product{PD0101,PD0102}。
此外,cell 有一个特殊的属性 writeonly。writeonly 会应用在那些在 spreadjs 的 json 文件中配置过公式的单元格。比如对 A1 单元格配置了公式 =B1+C1,则 A1 上的数值会随 B1 和 C1 变化。对 A1 如果配置了 writeonly 属性表示这个单元格的数据(计算后的数据)会保存进数据库,但在打开这张表单的时候,A1 上的数据并不会从数据库中读取出来,而是仍然通过 B1 和 C1 的计算得到。
固定格式报表允许从不同的 cube 中取数,因此每个 cell 都可以且只能单独指定一个 cube。脚本中cube 后面括号内的是 cube 的 name。
page 和 cell 中允许存在相同维度,且 cell 中的维度成员表达式可以用 {@Cur},代表与 POV 当前成员一致。若 cell 中的维度成员与 POV 中的当前成员不一致,使用视图读取数据以 cell 中维度成员为准。
POV 上的字段也会有 cube 属性,具体逻辑如下:
页面字段下拉列表中的成员,根据指定 cube 的该字段所对应的维度成员表达式来查询
对每个单元格去查找维度成员时,不区分 cube 名。比如单元格 A1 属于 cube01,则 cube01 有而 A1 的 cell 中没有定义的字段,去 pov 中找同名字段(即使 pov 中找到的同名字段属于 cube02 也可以)。
示例:
page1=cube(cube01)||Entity{Beijing}#showdescription
page2=cube(cube02)||Year{2019}#showdescription
cell1=cube(cube01)||Type{TP00}->Scenario{Actual}->Account{AS01}||cell(A1),readonly
查找 A1 的维度成员时,若 cube01 存在 Year 字段,但未配置在 page 上,则可根据 page2 中的cube02 中的 Year 成员去查找。
回到顶部
咨询热线