更改表单的设置3

aki发表于:2020年01月14日 13:55:48更新于:2021年08月09日 12:11:33

更改应用的表单的设置

更改表单的设置时,根据操作的不同,要使用的API也不一样。

接上篇 更改表单的设置1更改表单的设置2

删除字段

从表单删除字段。删除组合或表格时,其包含的字段也一并被删除。

值会自动输入的以下字段,如果从表单中删除,不会删除数据。

  • 记录编号

  • 创建人

  • 更新人

  • 创建时间

  • 更新时间

另外,不可删除以下字段。

  • 状态

  • 执行者

  • 类别

此API仅将应用的设置反映到测试环境中,如需反映到正式环境,需要执行将应用的设置反映到正式环境中API

URI

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

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

HTTP 方法

DELETE

必要的访问权限

应用的管理权限。

请求参数

参数名称要指定的值必须说明
app数值或字符串必须指定应用的ID。
fields数组必须

指定要删除的字段的代码。

※可指定的字段上限为100个

revision数值或字符串
指定应用的设置更改之前的修订号。如指定的修订号不是最新的,请求将报错。
如果省略或指定“-1”,将不对修订号进行验证。

(1) 通过 HTTP 请求字符串发送参数时

头部

DELETE /k/v1/preview/app/form/fields.json?app=1&fields[0]=%E6%96%87%E5%AD%97%E5%88%97__1%E8%A1%8C_&fields[1]=%E6%95%B0%E5%80%A4&revision=2 HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=

(2) 通过JSON形式发送参数时(在HTTP 请求的请求正文中写JSON 数据时)

头部

DELETE /k/v1/preview/app/form/fields.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json

正文

{ 
    "app": 1,
    "revision": 2,
    "fields": ["单行文本框","数值"]
}

应答参数

参数名称值的类型说明
revision字符串应用的设置更改之后的修订号。

应答的范例

{
    "revision": "3"
}

JavaScript范例

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

var body = {
  'app': 1,
  'revision': 2,
  'fields': [
    '单行文本框',
    '数值'
  ]
};

kintone.api(kintone.api.url('/k/v1/preview/app/form/fields', true), 'DELETE', body, function(resp) {
  // success
  console.log(resp);
}, function(error) {
  // error
  console.log(error);
});

使用 XMLHttpRequest 请求

var body = {
  'app': 1,
  'revision': 2,
  'fields': [
    '单行文本框',
    '数值'
  ],
  // CSRF TOKEN: 在kintone上执行API(POST, PUT, DELETE)时需要设置
  '__REQUEST_TOKEN__': kintone.getRequestToken()
};

var url = 'https://{subdomain}.cybozu.cn/k/v1/preview/app/form/fields.json';
var xhr = new XMLHttpRequest();
xhr.open('DELETE', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
  if (xhr.status === 200) {
    // success
    console.log(JSON.parse(xhr.responseText));
  } else {
    // error
    console.log(JSON.parse(xhr.responseText));
  }
};
xhr.send(JSON.stringify(body));

更改表单的布局

此API仅将应用的设置反映到测试环境中,如需反映到正式环境,需要执行将应用的设置反映到正式环境中API

URI

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

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

HTTP 方法

PUT

必要的访问权限

应用的管理权限。

※从2020年2月版本开始可以使用API令牌来执行此API。

请求参数

以下是要指定的参数一览。
表单上的所有字段都需要指定布局。参数省略时,不会更改其设置。

参数名称要指定的值必须说明
app数值或字符串必须指定应用的ID。
layout数组必须用于存放表单各行的布局的数组。
layout[].type字符串必须指定行的种类。
  • 标准行:ROW

  • 表格:SUBTABLE

  • 组合字段:GROUP

layout[].code字符串条件必须指定表格或组合的代码。非表格也非组合的标准行,可省略此参数。
layout[].fields数组
用于存放行里的字段的数组。
layout[].fields[].type字符串必须指定字段的类型。
  • 选择组:GROUP_SELECT

  • 空白栏:SPACER

  • 复选框:CHECK_BOX

  • 下拉菜单:DROP_DOWN

  • 选择用户:USER_SELECT

  • 单选框:RADIO_BUTTON

  • 标签:LABEL

  • 文本编辑框:RICH_TEXT

  • 链接:LINK

  • lookup:SINGLE_LINE_TEXT或 NUMBER或LINK *

  • 记录编号:RECORD_NUMBER

  • 关联记录列表:REFERENCE_TABLE

  • 计算:CALC

  • 边框:HR

  • 更新人:MODIFIER

  • 更新时间:UPDATED_TIME

  • 创建人:CREATOR

  • 创建时间:CREATED_TIME

  • 时间:TIME

  • 数值:NUMBER

  • 选择组织:ORGANIZATION_SELECT

  • 附件:FILE

  • 日期与时间:DATETIME

  • 日期:DATE

  • 多选:MULTI_SELECT

  • 单行文本框:SINGLE_LINE_TEXT

  • 多行文本框:MULTI_LINE_TEXT

*: 指定要参照的字段的类型。
layout[].fields[].code字符串条件必须指定字段代码。标签、空白栏以及边框不需要指定此参数。
layout[].fields[].label字符串
标签字段要指定标签名称。
layout[].fields[].elementId字符串
空白栏字段要指定元素ID。
layout[].fields[].size对象
用于存放字段大小的对象。根据布局情况,字段有可能不会按照指定的大小来显示。
layout[].fields[].size.width数值或字符串
以像素为单位指定字段宽度。
仅可指定以下字段。
  • 单行文本框

  • 多行文本框

  • 文本编辑框

  • 数値

  • 计算

  • 时间

  • 日期

  • 日期与时间

  • 多选

  • 下拉菜单

  • 单选框

  • 复选框

  • 附件

  • 选择用户

  • 链接

  • lookup

  • 标签

  • 空白栏

  • 边框

  • 记录编号

  • 创建人        

  • 创建时间

  • 更新人

  • 更新时间

layout[].fields[].size.height数值或字符串
以像素为单位指定包含字段名称在内的字段宽度。只有空间字段可指定。
layout[].fields[].size.innerHeight数值或字符串
以像素为单位指定除字段名称之外的字段宽度。
  • 多行文本框

  • 文本编辑框

layout[].layout数组
组合内字段的数组。参数与“layout”参数一样
revision数值或字符串

指定应用的设定更改之前的版本号。

如果指定的版本不是最新的,请求将报错。

如果不指定或指定为"-1",将不检查版本。

请求范例

头部

PUT /k/v1/preview/app/form/layout.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json

正文

{    
    "app": 1,    
    "revision": 2,    
        "layout": [    
            {    
                "type": "ROW",    
                "fields": [    
                    {    
                        "type": "SINGLE_LINE_TEXT",    
                        "code": "单行文本框",    
                        "size": {    
                            "width": 200    
                        }    
                    },    
                    {    
                        "type": "MULTI_LINE_TEXT",    
                        "code": "多行文本框",    
                        "size": {    
                            "width": 200,    
                            "innerHeight": 100    
                        }    
                    },    
                    {    
                        "type": "LABEL",    
                        "label": "label",    
                        "size": {    
                            "width": 200    
                        }    
                    },    
                    {    
                        "type": "SPACER",    
                        "elementId": "spacer",    
                        "size": {    
                            "width": 200,    
                            "height": 100    
                        }    
                    },    
                    {    
                        "type": "HR",    
                        "size": {    
                            "width": 200    
                        }    
                    }    
                ]    
            },    
            {    
                "type": "SUBTABLE",    
                "code": "表",    
                "fields": [    
                    {    
                        "type": "NUMBER",    
                        "code": "数值",    
                        "size": {    
                            "width": 200    
                        }    
                    }    
                ]    
            },    
            {    
                "type": "GROUP",    
                "code": "组",    
                "layout": [    
                    {    
                        "type": "ROW",    
                        "fields": [    
                            {    
                                "type": "NUMBER",    
                                "code": "数值2",    
                                "size": {    
                                    "width": 200    
                                }    
                            }    
                        ]    
                    }    
                 ]    
            }    
        ]    
}

应答

参数

参数名称值的类型说明
revision字符串应用的设置更改之后的版本号。

应答的范例

{    
    "revision": "4"    
}

JavaScript范例

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

var body = {
  'app': 1,
  'revision': 2,
  'layout': [
    {
      'type': 'ROW',
      'fields': [
        {
          'type': 'SINGLE_LINE_TEXT',
          'code': '单行文本框',
          'size': {
            'width': 200
          }
        },
        {
          'type': 'MULTI_LINE_TEXT',
          'code': '单行文本框',
          'size': {
            'width': 200,
            'innerHeight': 100
          }
        },
        {
          'type': 'LABEL',
          'label': 'label',
          'size': {
            'width': 200
          }
        },
        {
          'type': 'SPACER',
          'elementId': 'spacer',
          'size': {
            'width': 200,
            'height': 100
          }
        },
        {
          'type': 'HR',
          'size': {
            'width': 200
          }
        }
      ]
    }
  ]
};

kintone.api(kintone.api.url('/k/v1/preview/app/form/layout', true), 'PUT', body, function(resp) {
  // success
  console.log(resp);
}, function(error) {
  // error
  console.log(error);
});

使用 XMLHttpRequest 请求

var body = {
  'app': 1,
  'revision': 2,
  'layout': [
    {
      'type': 'ROW',
      'fields': [
        {
          'type': 'SINGLE_LINE_TEXT',
          'code': '单行文本框',
          'size': {
            'width': 200
          }
        },
        {
          'type': 'MULTI_LINE_TEXT',
          'code': '单行文本框',
          'size': {
            'width': 200,
            'innerHeight': 100
          }
        },
        {
          'type': 'LABEL',
          'label': 'label',
          'size': {
            'width': 200
          }
        },
        {
          'type': 'SPACER',
          'elementId': 'spacer',
          'size': {
            'width': 200,
            'height': 100
          }
        },
        {
          'type': 'HR',
          'size': {
            'width': 200
          }
        }
      ]
    }
  ],
  // CSRF TOKEN: 在kintone上执行API(POST, PUT, DELETE)时需要设置
  '__REQUEST_TOKEN__': kintone.getRequestToken()
};

var url = 'https://{subdomain}.cybozu.cn/k/v1/preview/app/form/layout.json';
var xhr = new XMLHttpRequest();
xhr.open('PUT', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
  if (xhr.status === 200) {
    // success
    console.log(JSON.parse(xhr.responseText));
  } else {
    // error
    console.log(JSON.parse(xhr.responseText));
  }
};
xhr.send(JSON.stringify(body));

添加字段 请参见 更改表单的设置1更改字段的设置 请参见 更改表单的设置2