获取应用的图表设置

betsy_yan发表于:2021年03月05日 16:55:33更新于:2023年02月16日 14:34:04

获取应用的图表设置。

URI

URI根据正式环境还是确认应用各动作的测试环境的不同而不同。

如应用中存在两个名字一样的图表,调用该API时会报错。

获取正式环境的设置时

https://(子域名).cybozu.cn/k/v1/app/reports.json

来宾空间内的应用:https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/app/reports.json

获取确认应用各动作的测试环境的设置时

https://(子域名).cybozu.cn/k/v1/preview/app/reports.json

来宾空间内的应用:https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/preview/app/reports.json

HTTP方法

GET

必要的访问权限

应用的管理权限

请求参数

参数名称要指定的值必须说明
app数值或字符串必须指定应用的ID。
lang字符串
如果对字段名称设置了“多语言”,需要指定要获取语言的名称。
  • 获取日语的名称时:ja

  • 获取英语的名称时:en

  • 获取中文的名称时:zh

  • 获取登录用户的语言设置时:user*
    *当登录用户的语言设置为“与Web浏览器的设置相同”时,
    如果头部中指定“Accept-Language”,则使用该设置。
    如果不指定“Accept-Language”,则使用cybozu.cn系统管理的“本地化设置”中的语言设置。

  • 获取默认的名称时:default

省略时,获取默认名称。

请求的范例

要发送的请求根据参数发送方式的不同而不同。以下是指定参数“app”和“lang”的请求的例子。

URL中包含参数时

GET /k/v1/app/reports.json?app=1&lang=zh HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=


请求正文中包含参数时
头部

GET /k/v1/app/reports.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=


正文

{
  "app": 1,
  "lang": "zh"
}


应答参数

参数名称值的类型说明
reports对象

表示图表信息的对象。
图表名称始终以默认名称(输入的名称)返回,与语言设置无关。

reports.{图表名称}.chartType字符串图表的类型。
  • BAR:条形图

  • COLUMN:柱形图

  • PIE:饼图

  • LINE:折线图

  • PIVOT_TABLE:交叉表

  • TABLE:表

  • AREA:面积图

  • SPLINE:曲线图

  • SPLINE_AREA:曲面图

reports.{图表名称}.chartMode字符串图表的显示模式。
  • NORMAL:簇状或无堆积

  • STACKED:堆积

  • PERCENTAGE:百分比堆积

若 chartType 是条形图(BAR)或柱形图(COLUMN),则 NORMAL 显示为簇状。
若 chartType 是面积图(AREA)或曲面图(SPLINE_AREA),则 NORMAL 显示为无堆积。
除此以外的 chartType 不会返回 chartMode 。

reports.{图表名称}.id字符串

图表的ID。

reports.{图表名称}.name字符串图表名称。指定 lang 时,该值为 lang 指定的语言所设置的名称。
reports.{图表名称}.index字符串图表的顺序。 从0开始。
reports.{图表名称}.groups数组表示分组项目对象的数组。仅返回已设置的项目。顺序是从上到下:大项目,中项目和小项目。
reports.{图表名称}.groups[].code字符串分组项目的字段代码。
reports.{图表名称}.groups[].per字符串分组项目的时间单位。
  • YEAR:以年为单位

  • QUARTER:以季度为单位

  • MONTH:以月为单位

  • WEEK:以周为单位

  • DAY:以日为单位

  • HOUR:以1小时为单位

  • MINUTE:分钟单位

code 中指定以下字段时,则返回以上内容。
  • 创建时间

  • 更新时间

  • 日期与时间

  • 日期(仅 YEAR, QUARTER, MONTH, WEEK, DAY)

  • 时间(仅 HOUR, MINUTE)

如果设置值为“--”(无单位),则将返回最小时间单位。
reports.{图表名称}.aggregations数组表示汇总方法对象的数组。
reports.{图表名称}.aggregations[].type字符串汇总方法的类型。
  • COUNT:记录数

  • SUM:求和

  • AVERAGE:平均值

  • MAX:最大值

  • MIN:最小值

reports.{图表名称}.aggregations[].code字符串汇总方法对象的字段代码。如果 type 为 COUNT,则不返回。
reports.{图表名称}.filterCond字符串

筛选条件。用查询形式显示。查询形式请参考以下页面。
批量获取记录(在查询中指定条件) 如果指定了已删除的用户、组织、组,则返回错误。

reports.{图表名称}.sorts数组表示排序对象的数组。
reports.{图表名称}.sorts[].by字符串排序的对象。
  • TOTAL:汇总值

  • GROUP1:大项目

  • GROUP2:中项目

  • GROUP3:小项目

reports.{图表名称}.sorts[].order字符串排序的顺序。
  • ASC:升序

  • DESC:降序

reports.{图表名称}.periodicReport对象定期报表的设置。未设置定期报表时,返回null。
reports.{图表名称}.periodicReport.active布尔值定期报表的执行状态。
  • true:执行中

  • false:停止中

reports.{图表名称}.periodicReport.period对象定期报表的汇总间隔。
reports.{图表名称}.periodicReport.period.every字符串定期报表的汇总间隔的类型。
  • YEAR:每年

  • QUARTER:每季度

  • MONTH:每月

  • WEEK:每周

  • DAY:每天

  • HOUR:每时

reports.{图表名称}.periodicReport.period.month字符串

执行汇总的月份。 该值是1到12之间的整数。 仅当 every 的类型为 YEAR 时,才返回。

reports.{图表名称}.periodicReport.period.time字符串

执行汇总的时间。格式为 HH:mm 格式。 仅当 every 为 YEAR、QUARTER、MONTH、WEEK 、DAY 时,才返回。

reports.{图表名称}.periodicReport.period.pattern字符串执行季度汇总的月份。
  • JAN_APR_JUL_OCT:1月, 4月, 7月, 10月

  • FEB_MAY_AUG_NOV:2月, 5月, 8月, 11月

  • MAR_JUN_SEP_DEC:3月, 6月, 9月, 12月

仅当 every 为 QUARTER 时,才返回。

reports.{图表名称}.periodicReport.period.dayOfMonth字符串执行汇总的日期。
  • 该值是1到31之间的整数。

  • END_OF_MONTH:月底
    ※仅当 reports.{图表名称}.periodicReport.period.every 为 QUARTER、MONTH 时

仅当 every 为 YEAR、QUARTER、MONTH 时,才返回。
reports.{图表名称}.periodicReport.period.dayOfWeek字符串星期几执行汇总。
  • SUNDAY

  • MONDAY

  • TUESDAY

  • WEDNESDAY

  • THURSDAY

  • FRIDAY

  • SATURDAY

仅当 every 为 WEEK 时,才返回。
reports.{图表名称}.periodicReport.period.minute字符串

执行汇总的分钟数。返回的值为:0、10、20、30、40、50 。仅当 every 为 HOUR 时,才返回。

revision字符串

应用设定的修订号。

应答的范例

{
  "reports": {
    "初始设置": {
      "id": "7319",
      "chartType": "BAR",
      "chartMode": "NORMAL",
      "name": "初始设置",
      "index": "0",
      "groups": [
        {
          "code": "单选框"
        }
      ],
      "aggregations": [
        {
          "type": "COUNT"
        }
      ],
      "filterCond": "",
      "sorts": [
        {
          "by": "TOTAL",
          "order": "DESC"
        }
      ],
      "periodicReport": null
    },
    "各种图表的设置": {
      "id": "7321",
      "chartType": "TABLE",
      "name": "各种图表的设置",
      "index": "1",
      "groups": [
        {
          "code": "单选框"
        },
        {
          "code": "创建时间",
          "per": "YEAR"
        },
        {
          "code": "时间",
          "per": "MINUTE"
        }
      ],
      "aggregations": [
        {
          "type": "COUNT"
        },
        {
          "type": "SUM",
          "code": "数值"
        },
        {
          "type": "AVERAGE",
          "code": "计算"
        },
        {
          "type": "MAX",
          "code": "创建时间"
        },
        {
          "type": "MIN",
          "code": "时间"
        }
      ],
      "filterCond": "记录编号 = \"1\" and 文本编辑器 like \"aaa\"",
      "sorts": [
        {
          "by": "TOTAL",
          "order": "DESC"
        },
        {
          "by": "GROUP1",
          "order": "ASC"
        },
        {
          "by": "GROUP2",
          "order": "DESC"
        }
      ],
      "periodicReport": null
    },
    "定期报表ON": {
      "id": "7323",
      "chartType": "BAR",
      "chartMode": "NORMAL",
      "name": "定期报表ON",
      "index": "2",
      "groups": [
        {
          "code": "单选框"
        }
      ],
      "aggregations": [
        {
          "type": "COUNT"
        }
      ],
      "filterCond": "",
      "sorts": [
        {
          "by": "TOTAL",
          "order": "DESC"
        }
      ],
      "periodicReport": {
        "active": true,
        "period": {
          "every": "QUARTER",
          "pattern": "JAN_APR_JUL_OCT",
          "dayOfMonth": "END_OF_MONTH",
          "time": "23:30"
        }
      }
    }
  },
  "revision": "77"
}


JavaScript范例

使用API请求发送 kintone REST API 请求

var body = {
  'app': kintone.app.getId()
};
kintone.api(kintone.api.url('/k/v1/app/reports', true), 'GET', body, function(resp) {
  // success
  console.log(resp);
}, function(error) {
  // error
  console.log(error);
});


使用 XMLHttpRequest 请求

var appId = kintone.app.getId();
var url = 'https://{subdomain}.cybozu.cn/k/v1/app/reports.json?app=' + appId + '&lang=zh';
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onload = function() {
  if (xhr.status === 200) {
    // success
    console.log(JSON.parse(xhr.responseText));
  } else {
    // error
    console.log(JSON.parse(xhr.responseText));
  }
};
xhr.send();