文档中心合并合并2.5顾问使用手册六、各环节的配置说明7.财务套表

7.财务套表

通过UX的布局+维度筛选器+财务套表控件实现老的package的效果。

1、配置行布局,可以左右,或者维度筛选器放顶部等。

2、拖入维度筛选器,可以选择成员展开。

3、拖入财务套表,配置目录和联动。

添加后配置联动参数,与UX联动电子表格参数逻辑一样(冒号左边key为电子表格筛选器的编码,右侧为$component.控件编码.value):

Copy
{
    // 工作蒲级筛选器
    "wbFilter": {
        "Year_wb1": $components.year.value,
            "Period_wb1": $components.period.value,
                "Version_wb1": $components.version.value,
                    "Scenario_wb1": $components.scenario.value,
                        "Entity_wb1": $components.entity.value
    }
}

配置一个后,选中单元格复制向下填充即可

4、为了使表格占满窗口,需:

行布局勾选占满剩余高度

套表高度配置100%

优化点:目录改成可以固定或浮动

为了满足校验看板数据的展示,以及能够在目录上直观展示校验通过的情况,在套表中增加了校验相关的默认配置,说明如下:

1、(自动)增加了一个财务模型数据源,配置校验科目的数据&和控件值的联动,参数变化时自动执行。

2、(自动)在目录中配置报表校验科目的映射来源,也是刚才的财务模型

(需配置)在目录批量配置中逐一选择每个电子表格对应的具体的科目

3、(自动)拖出校验看板,选择刚才配置好的数据源。配置入参,注意把package_xxx改成当前财务套表的,用于在点击套表目录时获取点击所对应的科目(如果此处不放校验看板,通过定开或者放电子表格等其他途径实现,也可以通过这种表达式来获取到配置的目录和校验科目的映射关系)

4、此外,还可以固定配置目录颜色和动态显隐(颜色也可以通过js编写,以实现非默认红绿黑颜色的效果。可将颜色切换到表达式后,在每一行进行如下编写。仅为示例demo,详询产品)

Copy
(() => {
    // 科目列key
    const subjectCodeKey = $dataSources.data_cub_process_197Y.fields?.[0].children?.find((i) => i.dimensionType === 4).code
    // 财务模型数据源全部数据
    const allData = $dataSources.data_cub_process_197Y.data || []
    // 根据科目获取校验状态方法
    function getSubjectCheckStatus(subjectCode) {
        let status = 'unchecked';
        const subjectCodeData = allData.filter((d) => d[subjectCodeKey] === subjectCode);
        if (subjectCodeData && subjectCodeData.length) {
            if (status === 'unchecked') {
                status = 'checked';
            }
            if (subjectCodeData.some((subjectData) => subjectData.data !== 0)) {
                status = 'error';
            }
        }
        return status;
    }
    let color = '#52c41a';
    // 警告编号
    const warnningIds = ['123', '2'];
    // 错误编号
    const errorIds = ['3']
    // 财务套表目录列配置
    const subjectArr = $context.data.currentRow?.subjectInfo;
    // 自处理对应项
    subjectArr?.find(code => {
        if (errorIds.includes(code) && getSubjectCheckStatus(code) === 'error') {
            color = '#ff0000';
            return true;
        }
        if (!warnningIds.includes(code) || getSubjectCheckStatus(code) !== 'error') {
            color = 'rgba(0 0 0 / 65%)';
        }
        return false;
    });
    return color
})()

5、效果

为了更便捷地管理表单,套表也支持分组树形的配置(在开启权限管理后,可继承元素权限)

在UX中增加一个电子表格专属动作“批量导出”,传入报表清单及开表条件,依次打开报表并下载。

套表清单:可选择一个UX套表控件

导出方法:

  • ZIP:将每个电子表格的excel文件打包成一个ZIP文件

  • 合并为一个文件:将每个电子表格的Sheet提取出来,合并成一个Excel文件,若Sheet重名则添加Sheet后缀

  • 存储到文档服务器:若导出后还需要编排后序工作(比如调用一段Python对数据进行再加工),可选择此项。此时每个报表以单个文件的方式存放在文档服务器,在动作的Result中可以找到对应的文件id。

效果:

若需要实现多公司多报表导出,可使用自定义JSON传参的方式

1、Package配置如下,Entity维度开放多选

也可以通过元素表将报表也做成多选

2、使用Json传参:核心提供报表数据来源(可从package配置中获取,或系统元素表)和entity来源(可从筛选器中获取)

Copy
$components.table_g4UZ.selectedRows?.map((n) => {
    return $components.Entity.info?.map((e) => {
        return {
            elementName: n.element_code,
            folderId: n.folder_id,
            fileName: n.element_name + "_" + e.description,
            filterMap: {
                wbFilter: {
                    "Scenario_wb1": $components.Scenario.value,
                    "Year_wb1": $components.Year.value,
                    "Period_wb1": $components.Period.value,
                    "Entity_wb1": e.expectedName
                }
            }
        }
    })
}).flat()

参数说明文档:https://proinnova.yuque.com/vnf5h6/xidynv/gibfhl44gse3lcrp

如果有需要的话,也可以叠加更多维度组合,比如年+月+公司+报表等,只要符合参数格式即可。

若在UX中,已经配置了筛选器控件与电子表格的联动,表格内部的筛选器就显得有点多余

方案:配置筛选器隐藏或禁用。

参数格式:

{“wbFilter”: {“Year_wb1”: {“hidden”: 1},”Period_wb1”: {“hidden”: 1},”Version_wb1”: {“hidden”: 1},”Scenario_wb2”: {“hidden”: 1},”Entity_wb1”: {“hidden”: 1}}}

此参数也已经增加在Package控件中,可批量配置。

1、引入变量元素

2、在筛选器的默认值用表达式形式引用

注:较以往的形式,主要优点是更加灵活,可以在变量的基础上做进一步的各种JS处理;并区分了单选、多选、表达式,可以做更复杂的支持。缺点是没有以前选起来方便直观。

为了便于用户在套表界面也可以进行流程控制与审批,增加了【合并流程控制按钮】。可以通过增加按钮并将参数与筛选器控件值关联的方式,将按钮的状态与动作保持与流程控制界面同维度组合下的一致。

同一个校验科目:例如资产负债表平衡,可能会关联多张表单。为了便于在标准校验看板中,点击对应科目能够查询到相关的所有表单,增加套表的自定义筛选动作。通过将点击校验看板时的科目传递给套表,来实现筛选。

示例如下:

https://alpha.deepfos.com/element-ux/1-0-0/?elementName=Input_Package&folderId=DIR54038c0e11e5&moduleId=UX1_0&sign=YXBwSWQ9ZWlqdXFkMDIxJnNwYWNlPWVpanVxZA%3D%3D

对校验看板配置动作——选择系统动作——选择套表——选择自定义筛选

参数配置如下:

Copy
{ description: '校验科目筛选', verifyFn: function(data) { return data.account?.includes($context.event.data._origin?.account) }, autoChooseFirst: true }

description用于展示筛选名;verifyFn用于传入筛选函数(除了通过account筛选外,也可以通过其他条件进行筛选);autoChooseFirst默认为false,若为true,则会自动选中筛选后的第一项。

使用态效果如下图。

回到顶部

咨询热线

400-821-9199

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

ctrl+Enter to send