版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

将excel表样上传到系统中

点击过滤设置

点击过滤设置、添加报表过滤条件

Image RemovedImage Added

数据源设置

制作前分析:

此报表规则:

配置数据块1

1.设置-数据源-新增数据块1-列表取数定义-模型类型 选择自定义

因为第1个数据块是获取当前部门下人员明细信息、掉的是hcm.model.list接口、因此取数类型选择:列表

标识和名称是块的唯一识别、自行定义即可、这我们定义成emp_list

Image Removed

...

明细分页、

统计一般不分页

...

2. 点击自定义模型-切换参数-点击新增模型参数

配置数据块1的模型参数、将接口里面2021-04-29日期换成传进来date_、13567318换成depart_id,所以新加了两个参数给这个数据块1。

Image Removed

3. 切换模型-点击新增

按照明细表和汇总表一样的配置方式、来配置数据块1的主模型及过滤、配置关联模型及过滤。

4. 配置字段列表

配置好主模型及关联模型后、需要配置列表展示哪些字段,即新增显示字段、这里注意设置展示字段的标识要与excel标识保持一致。

以年龄为例:标识emp_age_count、那么上传模版时excel中单元格标识也得emp_age_count才能展示出来

Image Removed

Image Removed

5. 设置过滤条件

将外层过滤与此数据块参数进行绑定

Image Removed

6.预览

此时数据块1配置完成、配置无误的话、点击预览出现以下数据内容

Image Removed

配置数据块2

1.设置-数据源-新增数据块2-列表取数定义-模型类型 选择自定义

Image Removed

2. 点击自定义模型-切换参数-点击新增模型参数

需要将"employee_id":["人员id1","人员id2","人员id3"] 替换模型参数、即增加employee_ids人员清单这个参数

Image Removed

3. 切换模型-点击新增

按照明细表和汇总表一样的配置方式、来配置数据块2的主模型及过滤、无关联模型无需配置关联模型、主模型过滤为人员id包含employee_ids

Image Removed

4. 配置字段列表

配置列表字段、将拼接的学历、专业、学校三个字段配置出来、且字段标识与excel标识中保持一致。注意⚠️:要把人员id字段配置出来、这个作为Excel公式关联两组数据块之间关联的媒介

Image Removed

5. 设置过滤条件

我们前面设置的模型参数employee_ids是依赖于第一个数据块的人员id列表

即我们调取公式:LIST_GET(emp_list,'emp_id')

emp_list为上一个数据块的标识、emp_id为当条的key值

示例:

...

这样我们通过配置这个公式在过滤条件中、就可以把数据块1的人员id输送给数据块2当模型参数

Image Removed

6.预览

Image Removed

配置excel公式

Image Removed

此模版用到了两个excel公式、还有很多其他公式我们后面会有详细介绍。

公式1: [list:emp_list:{emp_number}]       [list:数据块名key:{数据块字段key}] 

展开公式:  取到emp_list数据块中emp_number字段做纵向展开、一般有展开列的数据只配置一次[list:emp_list:{emp_number}]即可、编号如果配置了、那么姓名、岗位、性别等就不需要在配置、只配置字段key{emp_age_count}即可。

公式2:[VLOOKCUBE(edu_list,'employee_id:eq:{emp_id}',['edu_school','edu_specialty','edu_education'],'-')]     

...

清华大学-自动化专业-本科

北京大学-软件专业-硕士

此报表规则:选择某个单位,展示这个单位的下一级单位或者部门里面的人员情况。

我们需要至少2个数据源,两个数据源通过组织的origin_id相关联

数据源一:展示某个单位下一级部门。

新建数据源,类型选择自定义,取数选择列表,字段设置origin_id 和名称,基于排序码做排序,是否分页为是,过来条件是日期和部门

Image Added

元数据参数如下:

Image Added

关联设置如下:

Image Added

信息
title元数据设置

{
    "key": "dept_list",
    "data": {
        "type": "list",
        "field": [{
            "key": "origin_id",
            "align": "right",
            "field": ["origin_id"],
            "label": "ORIGIN_ID",
            "state": null,
            "width": 100,
            "format": null,
            "object": null,
            "is_blur": false,
            "sequence": 10,
            "data_type": "integer",
            "fieldFunc": null
        }, {
            "key": "name",
            "align": "left",
            "field": ["name"],
            "label": "名称",
            "state": null,
            "width": 250,
            "format": null,
            "object": null,
            "is_blur": true,
            "sequence": 20,
            "data_type": "string",
            "fieldFunc": null
        }]
    },
    "name": "组织",
    "class": "list",
    "sorts": [{
        "key": "orderno",
        "type": "asc",
        "label": "排序码"
    }],
    "source": {
        "meta": {
            "model": "DepartmentHistory",
            "relations": [],
            "conditions": {
                "enabled": 1,
                "end_date": {
                    "gt": "=date_"
                },
                "org_type": {
                    "neq": 40
                },
                "parent_id": "=depart_id",
                "begin_date": {
                    "lte": "=date_"
                }
            },
            "relation_mode": null,
            "static_filters": [{
                "key": "date_",
                "label": "日期"
            }, {
                "key": "depart_id",
                "label": "上级组织"
            }]
        },
        "type": "meta"
    },
    "page_count": true,
    "filter_dict": {
        "date_": "=CURR_DATE",
        "depart_id": "=CURR_DEPARTMENT"
    },
    "total_include": false
}


数据源二:基于此表需要的条件做分组。


信息
title元数据设置如下

{
    "key": "emp_count",
    "data": {
        "dim": [{
            "dim": {
                "field": "dept_level.l1_id"
            },
            "key": "dept_",
            "align": "left",
            "field": ["dept_level_l1_id_5", "name"],
            "label": "二级部门",
            "state": null,
            "width": 160,
            "format": null,
            "object": "OrgDepartment",
            "is_blur": false,
            "sequence": 10,
            "data_type": "integer",
            "fieldFunc": null
        }, {
            "dim": {
                "field": "employee_category_id"
            },
            "key": "category",
            "align": "left",
            "field": ["master_employee_category_id_b", "name"],
            "label": "用工类型",
            "state": null,
            "width": 160,
            "format": null,
            "object": "EmployeeCategory",
            "is_blur": false,
            "sequence": 20,
            "data_type": "integer",
            "fieldFunc": null
        }, {
            "dim": {
                "field": "position.position_sequence_id"
            },
            "key": "position_position_sequence_id",
            "align": "left",
            "field": ["position_position_sequence", "name"],
            "label": "序列",
            "state": null,
            "width": 160,
            "format": null,
            "object": "JobStepType",
            "is_blur": false,
            "sequence": 60,
            "data_type": "integer",
            "fieldFunc": null
        }],
        "aggr": [{
            "key": "count",
            "aggr": {
                "ag": "count",
                "field": "employee_id"
            },
            "align": "left",
            "field": ["master_employee_id_dvli"],
            "label": "员工",
            "state": null,
            "width": 160,
            "format": null,
            "object": "Employee",
            "is_blur": true,
            "sequence": 10,
            "data_type": "integer",
            "fieldFunc": null
        }],
        "type": "aggr"
    },
    "name": "全员用工类型",
    "class": "list",
    "source": {
        "meta": {
            "model": "JobInformation",
            "relations": [{
                "key": "employee",
                "name": "人员基础信息",
                "model": "Employee",
                "filter": {
                    "employee.id": ":employee_id"
                }
            }, {
                "key": "position",
                "name": "岗位信息",
                "type": "outer",
                "model": "OrgPositionHistory",
                "filter": {
                    "position.end_date": {
                        "gt": "=date_"
                    },
                    "position.origin_id": ":position_id",
                    "position.begin_date": {
                        "lte": "=date_"
                    }
                }
            }, {
                "key": "department",
                "name": "部门信息",
                "type": "outer",
                "model": "OrgDepartmentHistory",
                "filter": {
                    "department.end_date": {
                        "gt": "=date_"
                    },
                    "department.origin_id": ":position.parent_id",
                    "department.begin_date": {
                        "lte": "=date_"
                    }
                }
            }, {
                "key": "dept_level",
                "name": "组织层级",
                "type": "inner",
                "model": "DepartmentHierarchy",
                "filter": {
                    "dept_level.l0_id": "=depart_id",
                    "dept_level.end_date": {
                        "gt": "=date_"
                    },
                    "dept_level.begin_date": {
                        "lte": "=date_"
                    },
                    "dept_level.department_id": ":department.origin_id"
                },
                "field_context": {
                    "date_": "=date_",
                    "root_id": "=depart_id",
                    "is_relative_level": true
                }
            }],
            "conditions": {
                "on_job": 1,
                "end_date": {
                    "gt": "=date_"
                },
                "begin_date": {
                    "lte": "=date_"
                },
                "position_type": 1
            },
            "static_filters": [{
                "key": "date_",
                "label": "日期"
            }, {
                "key": "depart_id",
                "label": "上级组织"
            }]
        },
        "type": "meta"
    },
    "page_count": false,
    "filter_dict": {
        "date_": "=CURR_DATE",
        "depart_id": "=CURR_DEPARTMENT"
    },
    "total_include": false
}


配置excel公式

Image Added

此模版用到了两个excel公式、还有很多其他公式我们后面会有详细介绍。拼接公式: edu_list数据块中employee_id字段等于emp_list中emp_id字段的数据做拼接、拼接字段是edu_school和edu_specialty和edu_education。拼接方式是'-'拼接



点击计算、完成此报表制作

常见的分析报表公式

VLOOKUP:常用于直接查找。

...