报表使用文档

一、报表项目,是一个待执行的计划。

报表项目执行的实质是,根据配置的类型和脚本script,从对应接口获取数据,填充到excel或者录入到tableman系统中。

包含的配置项有:

  • 项目名称
  • 报表名称
  • 报表类型
  • 执行方式
  • 输出方式
  • 执行周期
  • 关注用户
  • 关联映射表
  • 关联对象
  • 报表模板
  • Excel脚本
  • Tableman脚本
  • 项目描述

示例图:

下面逐个说明

  1. 项目名称

    配置的项目名称。

  2. 报表名称

    生成的Excel文件的名字是【报表名称_20211009143900783404】格式

  3. 报表类型

    分为:年报表、月报表、日报表、班次报表、其他报表 这五种类型

  4. 执行方式

    手动执行:在报表项目配置完成之后,点击项目列表对应的【手动生成】按钮。

    自动执行:选择自动执行会出现执行周期选项。

年:每年执行一次。需要选定每年的几月几号几点执行(整点执行)

月:每个月执行一次。需要选定每月的几号几点几分执行

日:每天执行一次。需要选定每天的几点几分执行

时:每小时执行一次。需要选定分钟数

  1. 输出方式

    Excel输出和Tableman输出,可以多选,且至少选择一项。

    Excel输出需要上传模板文件。

    Tableman输出需要在tableman中配置好对应的表和字段。

  2. 关注用户

    生成的excel后通知到的用户。

  3. 关联映射表

    该项不影响脚本执行。

  4. 关联对象

    该项不影响脚本执行。

  5. 报表模板

    如果输出方式选择了excel,则此处需要上传excel模板,用于接收数据写入。Excel中的sheet名称需要和excel脚本一致,并且sheet名不能超过32个字符

  6. Excel脚本

    如果输出方式选择了excel,此处需要配置excel脚本,参考脚本解析规则。

  7. Tableman脚本

    如果输出方式选择了tableman,此处需要配置excel脚本,参考脚本解析规则。

  8. 项目描述

    项目说明。

Excel脚本

Excel脚本无非是告诉程序

  1. 从哪里获取数据(获取到的数据通常是多条记录,每条记录包含多个字段)
  2. 获取多少条
  3. 使用获取结果的哪些(哪个)字段
  4. 填充到哪个sheet(工作簿)
  5. 填充到哪个cell (单元格)

简单示例

{
    "工作簿1":[
        {
            "block_id":"dbproxy",
            "condition":{
                "action":"get_terminal_list",
                "block_mapping":"terminal",
                "where_and":"[[\"uid\",\"=\",\"AM2021050100281\"]]",
                "select":[
                    "uid",
                    "name"
                ]
            },
            "field":"name",
            "position":{
                "from":"A_1",
                "to":""
            },
            "sequence":"cellData",
            "format_function":""
        },
        {
            "block_id":"apim",
            "field":"data",
            "position":{
                "from":"B_1",
                "to":"B_10"
            },
            "condition":{
                "items":10,
                "action":"get_statistics_list",
                "start_time":"2021-01-29 00:00:00",
                "end_time":"2021-01-30 00:00:00",
                "object_id":"OBJ1684490200006",
                "mapping_id":"",
                "script_uid":""
            },
            "sequence":"columnData",
            "format_function":""
        }
    ],
    "工作簿2":[
        {
            "field":"data",
            "block_id":"apim",
            "position":{
                "from":"C_1",
                "to":"H_1"
            },
            "sequence":"rowData",
            "condition":{
                "items":10,
                "action":"get_statistics_list",
                "start_time":"2021-01-29 00:00:00",
                "end_time":"2021-01-30 00:00:00",
                "object_id":"OBJ1684490200006",
                "mapping_id":"",
                "script_uid":""
            },
            "format_function":""
        },
        {
            "field":"id,data,created",
            "block_id":"apim",
            "position":{
                "from":"B_3,B_4,B_5",
                "to":"H_3,H_4,H_5"
            },
            "sequence":"columnTableData",
            "condition":{
                "items":10,
                "action":"get_statistics_list",
                "end_time":"2021-06-30 00:00:00",
                "object_id":"OBJ1684490200006",
                "mapping_id":"",
                "script_uid":"",
                "start_time":"2021-03-29 00:00:00"
            },
            "format_function":""
        },
        {
            "block_id":"apim",
            "condition":{
                "items":10,
                "action":"get_statistics_list",
                "end_time":"2021-06-30 00:00:00",
                "object_id":"OBJ1684490200006",
                "mapping_id":"",
                "script_uid":"",
                "start_time":"2021-03-29 00:00:00"
            },
            "field":"id,data,created",
            "sequence":"rowTableData",
            "position":{
                "from":"A_8,B_8,C_8",
                "to":"A_17,B_17,C_17"
            },
            "format_function":""
        }
    ]
}

脚本说明:

上面的脚本告诉程序:

向名称为【工作簿1】工作簿写入以下数据:

  1. 从dbproxy获取满足条件的数据,将结果中的name字段填充到A1单元格
  2. 从apim获取满足条件的数据,将结果中的data字段按照列填充(columnData)的方式填入B1~B10单元格

向名称为【工作簿2】工作簿写入以下数据:

  1. 从apim获取满足条件的数据,将结果中的name字段按照行填充(rowData)的方式填入C1~H1单元格
  2. 从apim获取满足条件的数据,将结果中的id,data,created字段按照表格填充(columnTableData)的方式填入B3~H5单元格
  3. 从apim获取满足条件的数据,将结果中的id,data,created字段按照行填充(rowTableData)的方式填入A8~C17单元格
    具体说明参考脚本解析规范

报表执行的结果:


三、Tableman脚本

脚本实例:

为了让报表能够在tableman录入数据,需要首先在tableman中创建响应的数据表和字段

这里假设已经创建了两张表【report_table1】和【report_table2】

【report_table1】包含三个字段【data1,data2,data3】

【report_table2】包含三个字段【value1,value2,value3】

我们的期望是从apim获取5条数据,并将结果的 data,start_time,end_time存入report_table1,从apim获取5条数据,并将结果的 data,start_time,end_time存入report_table2

脚本的写法如下:

{
    "report_table1":[
        {
            "field":"data,start_time,end_time",
            "block_id":"apim",
            "condition":{
                "items":5,
                "action":"get_statistics_list",
                "object_id":"OBJ1684490200006"
            },
            "table_field":"data1,data2,data3",
            "format_function":""
        }
    ],
    "report_table2":[
        {
            "field":"data,start_time,end_time",
            "block_id":"apim",
            "condition":{
                "items":5,
                "action":"get_statistics_list",
                "object_id":"OBJ1684490200006"
            },
            "table_field":"value1,value2,value3",
            "format_function":""
        }
    ]
}
文档更新时间: 2024-04-12 18:16   作者:技术支持