全部文档
文档中心电子表格操作配置电子表格配置电子表格——固定格式报表

配置电子表格——固定格式报表

  • 拥有一个先胜云账号,由空间管理员授权拥有对 电子表格 组件的操作权限。

  • 应用中已有财务模型元素。

  1. 元素管理 页面点击 + 新建,选择 电子表格 > 固定格式报表,进入固定格式报表编辑界面。

  2. 设置固定格式报表属性,并配置工作表。

  3. 在图形化配置界面添加财务模型元素,并通过拖拽方式将财务模型中的维度配置在表单页面上。

  4. 配置页面字段和单元格维度信息。

  5. 点击右上角 保存 按钮,填入编码等必填信息后点击 确定,即完成固定格式报表的创建。

属性信息如下:

属性名称

说明

是否必填

基本信息

电子表格元素可视为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)中,并可以拖动调整字段之间的顺序。页面字段不允许重复。拖动后的样式如下:

    • 鼠标点击页面上的字段,右侧会弹出设置弹窗,可在弹窗中配置维度信息和属性设置。

    • 鼠标悬停页面上的字段,会出现删除按钮,点击并确认后会删除该字段。

    • 当把一个字段拖动到页面中,财务模型中的字段右侧会出现对应标识,表明该字段已经被使用:

  • 属性区域

    页面右侧是属性区域。属性区域随着用户点击左侧不同的位置(电子表格,工作表,页面字段)而显示不同的属性内容。

  1. 点击 财务数据模型 区域的 添加 按钮,在弹框中选择所需的财务模型。

  2. 在某些情况下,需要添加多个财务模型,点击 + 按钮,在弹框中选择已配置的财务模型,即可添加。

  3. 选择一个财务模型,将其所有字段拖动到页面上。

  4. 点击页面字段,右侧弹出属性框,即可设置页面字段属性。

属性名称

说明

是否必填

维度信息

可选项

页面维度下拉成员选项。可配置维度成员表达式(可使用变量)。表达式可以手工录入或者在弹窗中选择

默认值

打开表单时此维度的默认显示成员,需在维度成员表达式范围内(可使用变量)

字段信息

财务数据模型

显示当前字段所属的财务模型(只读)

字段名

显示当前字段的名称(只读)

名称

默认显示维度编码,可修改,不允许跟其他页面字段名称重复

标题

默认显示维度名称,可修改;字段在使用视图的显示标题

显示内容

仅名称(默认):仅显示维度成员编码;仅描述:仅显示维度成员名称;名称+描述:以 编码-名称 的格式显示维度成员

多层级显示

对于期间维度和开启了 启用层级管理 的维度,可在电子表格中配置该维度显示的层级。这里将该维度所设置的层级以 层级名+描述 的形式展示在下拉列表中,供用户选择(多选)

全局联动

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}”)

单元格的维度设置步骤如下:

  1. 先点击某单元格,再点击 维度 输入框右下角的漏斗形图标,会弹出维度成员选择弹框。(此弹框外区域置灰不可编辑,只能通过 取消确定 关闭)。

  2. 通过下拉菜单选择 财务数据模型(默认带出工作表已配置的第一个财务数据模型),下拉菜单的选项为当前工作表配置的所有财务数据模型。

    财务数据模型切换后,清空穿梭框右侧数据:

  3. 财务模型选择好以后,在 维度 下拉框选择该财务数据模型的维度和属性维。

  4. 选择好维度或属性维后,下方穿梭框左侧出现维度树形结构。右侧是选中的每个维度的成员。一个维度只能选中一个成员,选择后右侧会多出一行。

    选择同维度其他成员后,会更新右侧维度成员而不是添加一行。

    示例

  5. 最后将右侧的维度成员拼接组成单元格的表达式。

    .. 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 字段的值的属性。

属性维支持配在单元格中。

示例:

  1. 将 Entity>>alias 拖到页面中:

  2. 点击页面中该属性维,可在右侧属性框中编辑相关属性:

    此时该页面字段对应的脚本为(示例):page2=cube(mcd_cube_pl)||Entity>>alias{2020;2021}#showboth

  3. 若在单元格维度信息中添加属性维,脚本格式为(示例):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个固定按钮不允许删除可设置隐藏,隐藏后,在使用视图按钮无法被触发。

  • 固定按钮不论如何修改描述标题或说明,其功能始终不变。

  • 固定按钮可以同自定义按钮一起左右拖动排序。

  1. 点击 + 添加按钮,可选择新建 按钮下拉按钮


  2. 点击 按钮,在下方按钮行最左侧出现新建的按钮:


  3. 点击新按钮,弹出按钮设置界面:


    .. csv-table:: 按钮属性设置 :header: 属性名称, 说明, 是否必填 :widths: auto

    基本信息, , 编码, 按钮编码,只允许输入字母,数字,下划线, 是 名称(多语言), 按钮名称,字符类型不限, 否 提示(多语言), 按钮的说明信息, 否 隐藏, 默认不勾选,若开启,使用视图按钮不展示;否则,正常展示, 否 执行信息, , Python脚本, 点击按钮时触发执行的 python 脚本(四个固定按钮无需配置), 否 运行前弹窗显示脚本参数, 若开启,按钮运行前会弹出脚本参数弹窗;否则,按钮运行前不会弹出脚本参数弹窗, 否 异步运行, 若开启,点击按钮时,python 将进入作业中后台运行,此时不会刷新表单, 否 运行后刷新表单, 若开启,脚本执行成功后会自动刷新表单;否则,脚本执行成功后不刷新表单, 否 刷新当前, 脚本执行成功后自动刷新当前工作表, 否 刷新全部, 脚本执行成功后自动刷新所有工作表, 否 脚本参数, 如果按钮上关联了 python 计算脚本,则在点击时,将页面上的下拉选项框中所选的内容/脚本默认值作为参数值发送给 python 作为运行的输入参数, 否 允许编辑, 勾选 运行前弹窗显示脚本参数 ,同时开启 允许编辑,使用视图点击按钮时,弹窗可手动选择页面维度的下拉成员作为参数传给 python 运行, 否 样式, , 图标, 使用视图中按钮的图标, 否 字体, 使用视图中按钮的字体展示样式,如大小、粗细、颜色、位置等, 否 界面, 使用视图中按钮的界面展示样式,如滚动条等, 否 边距, 使用视图中按钮的外边距、内边距展示样式, 否 阴影, 使用视图中按钮的边框、文字阴影展示样式, 否 恢复为默认样式, 默认按钮的展示样式,修改样式后可恢复至初始状态, 否

  1. 点击 + 添加按钮,选择 下拉按钮 ,界面最左边新增一个下拉按钮。

  2. 点击该下拉按钮,右侧会弹出下拉按钮属性框:下拉按钮树形结构图基本信息样式,其中 基本信息样式属性 与上文自定义按钮一致,无执行信息。

  3. 下拉按钮可继续添加子节点的按钮/下拉按钮:

    可以点击下拉箭头退回到上级按钮列表中:

  4. 添加的子按钮/下拉按钮将在使用视图中作为父级下拉菜单的下拉成员展示:

配置好的按钮,在表单会显示在最上方的操作栏中。其中最右侧为固定按钮,视图切换按钮,其他按钮(上传,下载,数据审计):

其余按钮依据编辑视图从左至右的顺序在使用视图中从左至右排列: 编辑视图:

使用视图:

  1. 点击页面右上角 高级设置 -> Python脚本管理

  2. 弹出如下窗口:

  3. 点击 新增 按钮会弹出 python 脚本选择窗口。选择好的脚本显示在 计算脚本管理 列表中。

  4. 点击列表中的脚本项的编辑按钮,在弹框中进行脚本设置:

    .. 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,可调整固定格式报表上行列和单元格的格式,对文本、数据添加自定义样式或图标集等,也可添加自定义公式用来处理数据间的计算逻辑,或实现添加前端数据校验等功能。

配置步骤:

  1. 点击页面右上角 高级属性 > 自定义JS


  2. 弹出自定义 JS 配置窗口:


  3. 首先在代码区域编写自定义 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 成员去查找。

回到顶部

咨询热线

400-821-9199

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

ctrl+Enter to send