更改表单的设置2

cybozu发表于:2019年02月11日 10:54:58更新于:2022年06月30日 13:20:20

更改应用的表单的设置

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

接上篇 更改表单的设置1

更改字段的设置

更改表单中字段的设置。

此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 方法

PUT

必要的访问权限

应用的管理权限。

请求参数

以下是要指定的参数一览。省略参数时,其设置不会被更改。

参数名称要指定的值必须说明
app数值或字符串必须指定应用的ID。
properties对象必须字段设置的对象。
properties.(字段代码)对象

表示每个字段设置的对象。在“(字段代码)”中,指定要更新的字段的字段代码。

如果要更新字段代码,请在“properties.(字段代码).code”下更新。

properties.(字段代码).type字符串必须指定字段的类型。
  • 组:GROUP

  • 选择组:GROUP_SELECT

  • 复选框:CHECK_BOX

  • 表格:SUBTABLE

  • 下拉菜单:DROP_DOWN

  • 选择用户:USER_SELECT

  • 单选框:RADIO_BUTTON

  • 文本编辑框:RICH_TEXT

  • 链接:LINK

  • lookup:SINGLE_LINE_TEXT或NUMBER或LINK *

  • 记录编号:RECORD_NUMBER

  • 关联记录列表:REFERENCE_TABLE

  • 计算:CALC

  • 更新者:MODIFIER

  • 更新日期:UPDATED_TIME

  • 创建者:CREATOR

  • 创建日期:CREATED_TIME

  • 时间:TIME

  • 数值:NUMBER

  • 选择组织:ORGANIZATION_SELECT

  • 附件:FILE

  • 日期与时间:DATETIME

  • 日期:DATE

  • 多选:MULTI_SELECT

  • 单行文本框:SINGLE_LINE_TEXT

  • 多行文本框:MULTI_LINE_TEXT

*: 指定要参照的字段的类型。
properties.(字段代码).code字符串
指定字段代码。
可以使用的字符的限制,请参阅kintone帮助
properties.(字段代码).label字符串
指定字段名称。
properties.(字段代码).noLabel布尔值或字符串
指定是否隐藏字段名称
  • 隐藏:true

  • 显示(初始值):false

properties.(字段代码).required布尔值或字符串
设置是否必填。
  • 必填:true

  • 任意(初始值):false

properties.(字段代码).unique布尔值或字符串
设置是否值为唯一。
  • 值为唯一:true

  • 允许重复(初始值):false

properties.(字段代码).maxValue数值或字符串
指定最大值。
properties.(字段代码).minValue数值或字符串
指定最小值。
properties.(字段代码).maxLength数值或字符串
指定最多字符数。
properties.(字段代码).minLength数值或字符串
指定最少字符数。
properties.(字段代码).defaultValue字符串或数组
指定初始值。可设置多个初始值的字段,以数组的形式指定。

指定“defaultNowValue”参数时,“defaultNowValue”参数优先。

对于选择用户,选择组和选择组织字段,请指定具有code和type的对象数组。

properties.(字段代码).defaultValue[].type字符串条件必须

指定选择用户、选择组和选择组织字段的默认类型。 

如果指定“defaultValue”参数,则此参数是必需的。

  • 用户:USER

  • :GROUP

  • 组织:ORGANIZATION

  • 函数:FUNCTION

properties.(字段代码).defaultValue[].code字符串条件必须

指定选择用户,选择组和选择组织字段的默认值的代码。

如果指定“defaultValue”参数,则此参数是必需的。

  • 选择用户字段
    指定用户登录名,组代码,组织代码或功能名称。
    只能将指定登录用户的函数“LOGINUSER()”指定为函数名称。
    对于来宾空间内的应用,您只能指定用户,组和函数名称。

  • 选择组字段
    指定组代码。

  • 选择组织字段
    指定组织代码和函数名称。
    函数名称,只能指定函数“PRIMARY_ORGANIZATION()”来指定登录用户的优先级组织。
    ※无法指定已删除或无效的用户、以及组或组织代码。

properties.(字段代码).defaultNowValue布尔值或字符串
设置是否将添加记录时的日期与时间设为初始值。
  • 将添加记录时的日期与时间作为初始值:true

  • 不将添加记录时的日期与时间作为初始值(初始设置):false

properties.(字段代码).options对象
用于存放选项设置的对象。
properties.(字段代码).options.(选项名)对象

表示各选项的设置的对象。在“(选项名)”中指定要添加的选项的选项名称。

  • 如果指定不存在的“(选项名称)”:
    则将其添加为新选项名称。

  • 如果未指定现有的“(选项名称)”:
    则会删除该选项。

properties.(字段代码).options.(选项名).label字符串
指定选项名称。添加选项时,请指定与“properties.(字段代码).options.(选项名)”的键名相同的值。
properties.(字段代码).options.(选项名).index数值或字符串条件必须

用数字指定选项的顺序。选项根据所指定的数字来升序排列。

如果指定“options”参数,此参数是必需的。

properties.(字段代码).align字符串
指定选项的排序。
  • 横向(初始设置):HORIZONTAL

  • 纵向:VERTICAL

properties.(字段代码).expression字符串
指定自动计算公式。
properties.(字段代码).hideExpression布尔值或字符串
设置是否隐藏计算字段的计算公式。
  • 隐藏:true

  • 显示(初始值):false

properties.(字段代码).digit布尔值或字符串
设置是否显示数值的千位分隔符。
  • 显示时:true

  • 不显示时(初始值):false

properties.(字段代码).thumbnailSize数值或字符串
以像素为单位,从50, 150, 250, 500中选择一个作为缩略图的大小。
properties.(字段代码).protocol字符串
指定链接的种类。
  • Web网站地址:WEB

  • 电话号码:CALL

  • 邮件地址:MAIL

properties.(字段代码).format字符串
指定计算字段的显示格式。
  • 数值(例:1000):NUMBER(初始设置)

  • 数值(例:1,000):NUMBER_DIGIT

  • 日期与时间(例:2012-08-06 2:03):DATETIME

  • 日期(例:2012-08-06):DATE

  • 时间(例:2:03):TIME

  • 小时分(例:26小时3分):HOUR_MINUTE

  • 天小时分(例:1天2小时3 分):DAY_HOUR_MINUTE

properties.(字段代码).displayScale数值或字符串
指定小数点后的显示位数。
properties.(字段代码).unit字符串
指定单位符号。
properties.(字段代码).unitPosition字符串
指定单位符号的显示位置。
  • 放在字段前(初始设置):BEFORE

  • 放在字段后:AFTER

properties.(字段代码).entities数组
指定选择用户,选择组织和选择组字段的选项。
properties.(字段代码).entities[].type字符串条件必须指定值的种类。如果指定“entities”参数,必须指定此参数。
  • 用户:USER

  • 组:GROUP

  • 组织:ORGANIZATION

properties.(字段代码).entities[].code字符串条件必须

指定选择代码。如果指定“entities”参数,必须指定此参数。

  • 选择用户字段
    指定用户的登录名,组代码或组织代码。
    对于来宾空间的应用,您只能指定用户或组。

  • 选择组字段
    指定组代码。

  • 选择组织字段
    指定组织代码。

properties.(字段代码).referenceTable对象
用于存放关联记录列表字段的设置的对象。
properties.(字段代码).referenceTable.relatedApp对象

用于存放“要引用的应用”的设置的对象。

指定这个参数时,将初始化关联记录列表字段的设置,“要引用的应用”除外。

properties.(字段代码).referenceTable.relatedApp.app数值或字符串条件必须

“要引用的应用”中指定的应用ID。指定“properties.(字段代码).referenceTable.relatedApp.code”参数时,优先该参数。

指定“relatedApp”参数时,必须指定要引用的应用ID或要引用的应用代码。

properties.(字段代码).referenceTable.relatedApp.code字符串条件必须

“要引用的应用”中指定的应用代码。

指定“relatedApp”参数时,必须指定要引用的应用ID或要引用的应用代码。

properties.(字段代码).referenceTable.condition对象

用于存放“设置要显示的记录”中的设置的对象。

properties.(字段代码).referenceTable.condition.field字符串

设置“要显示的记录”中指定的、与关联记录列表字段同一应用的字段的代码。

properties.(字段代码).referenceTable.condition.relatedField字符串

在“设置要显示的记录”中指定的、关联记录列表字段所参照的应用内的字段的代码。

properties.(字段代码).referenceTable.fliterCond字符串
“更多筛选条件”的设置用查询形式显示。查询形式请参考以下页面。
批量获取记录(在查询中指定条件)
properties.(字段代码).referenceTable.displayFields数组

通过字段代码的数组来指定“要显示的字段”中指定的字段。

properties.(字段代码).referenceTable.sort字符串
设置记录的排序用查询形式显示。关于查询形式,请参照以下页面。
批量获取记录(在查询中指定条件)
properties.(字段代码).referenceTable.size数值或字符串
一次最多可显示的记录数可指定5、10、20、 30、40、50的任意一个,省略参数时,默认5。
※从2020年4月版起可以指定40及50
properties.(字段代码).lookup对象
用于存放lookup字段的设置的对象。
properties.(字段代码).lookup.relatedApp对象
用于存放lookup字段的设置的对象。
properties.(字段代码).lookup.relatedApp.app数值或字符串
用于存放lookup字段的设置的对象。
properties.(字段代码).lookup.relatedApp.code字符串
用于存放lookup字段的设置的对象。
properties.(字段代码).lookup.relatedKeyField字符串
用于存放lookup字段的设置的对象。
properties.(字段代码).lookup.fieldMappings数组

用于存放“其他要复制的字段”的设置的数组。

properties.(字段代码).lookup.fieldMappings.field字符串条件必须

“其他要复制的字段”的复制来源的字段中指定的字段的代码。

指定“lookup.fieldMappings”参数时,必须指定此参数。

properties.(字段代码).lookup.fieldMappings.relatedField字符串条件必须

“其他要复制的字段”的复制来源的字段中指定的字段的代码。

指定“lookup.fieldMappings”参数时,必须指定此参数。

properties.(字段代码).lookup.lookupPickerFields数组
通过字段代码的数组指定“要在搜选列表中显示的字段”。
properties.(字段代码).lookup.filterCond字符串
筛选的初始设置用查询形式显示。关于查询形式,请参照以下页面。
批量获取记录(在查询中指定条件)
properties.(字段代码).lookup.sort字符串
排序的初始设置。用查询形式显示。关于查询形式,请参照以下页面。
批量获取记录(在查询中指定条件)
properties.(字段代码).openGroup布尔值或字符串
设置是否显示组合内字段。
  • 显示时:true

  • 隐藏(初始设置):false

properties.(字段代码).fields对象
指定表格内的字段。参数和“properties”参数一样。
revision数值或字符串
指定应用的设置更改之前的修订号。如指定的修订号不是最新的,请求将报错。
如果省略或指定“-1”,将不对修订号进行验证。

以下字段不可添加也不可更改设置。

  • 状态

  • 执行者

  • 类别

请求的范例

头部

PUT /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,
  "properties": {
    "单行文本框": {
      "type": "SINGLE_LINE_TEXT",
      "code": "单行文本框",
      "label": "单行文本框",
      "noLabel": false,
      "required": false,
      "minLength": "",
      "maxLength": "",
      "expression": "",
      "hideExpression": false,
      "unique": false,
      "defaultValue": ""
    },
    "文本编辑框": {
      "type": "RICH_TEXT",
      "code": "文本编辑框",
      "label": "文本编辑框",
      "noLabel": false,
      "required": false,
      "defaultValue": ""
    },
    "多行文本框": {
      "type": "MULTI_LINE_TEXT",
      "code": "多行文本框",
      "label": "多行文本框",
      "noLabel": false,
      "required": false,
      "defaultValue": ""
    },
    "数值": {
      "type": "NUMBER",
      "code": "数值",
      "label": "数值",
      "noLabel": false,
      "required": false,
      "minValue": "",
      "maxValue": "",
      "digit": false,
      "unique": false,
      "defaultValue": "",
      "displayScale": "",
      "unit": "",
      "unitPosition": "BEFORE"
    },
    "计算": {
      "type": "CALC",
      "code": "计算",
      "label": "计算",
      "noLabel": false,
      "required": false,
      "expression": "数值",
      "format": "NUMBER",
      "displayScale": "",
      "hideExpression": false,
      "unit": "",
      "unitPosition": "BEFORE"
    },
    "单选框": {
      "type": "RADIO_BUTTON",
      "code": "单选框",
      "label": "单选框",
      "noLabel": false,
      "required": true,
      "options": {
        "sample1": {
          "label": "sample1",
          "index": "0"
        },
        "sample2": {
          "label": "sample2",
          "index": "1"
        }
      },
      "defaultValue": "sample1",
      "align": "HORIZONTAL"
    },
    "复选框": {
      "type": "CHECK_BOX",
      "code": "复选框",
      "label": "复选框",
      "noLabel": false,
      "required": false,
      "options": {
        "sample1": {
          "label": "sample1",
          "index": "0"
        },
        "sample2": {
          "label": "sample2",
          "index": "1"
        }
      },
      "defaultValue": [],
      "align": "HORIZONTAL"
    },
    "多选": {
      "type": "MULTI_SELECT",
      "code": "多选",
      "label": "多选",
      "noLabel": false,
      "required": false,
      "options": {
        "sample1": {
          "label": "sample1",
          "index": "0"
        },
        "sample2": {
          "label": "sample2",
          "index": "1"
        },
        "sample3": {
          "label": "sample3",
          "index": "2"
        },
        "sample4": {
          "label": "sample4",
          "index": "3"
        }
      },
      "defaultValue": []
    },
    "下拉框": {
      "type": "DROP_DOWN",
      "code": "下拉框",
      "label": "下拉框",
      "noLabel": false,
      "required": false,
      "options": {
        "sample1": {
          "label": "sample1",
          "index": "0"
        },
        "sample2": {
          "label": "sample2",
          "index": "1"
        }
      },
      "defaultValue": ""
    },
    "日期": {
      "type": "DATE",
      "code": "日期",
      "label": "日期",
      "noLabel": false,
      "required": false,
      "unique": false,
      "defaultValue": "",
      "defaultNowValue": true
    },
    "时间": {
      "type": "TIME",
      "code": "时间",
      "label": "时间",
      "noLabel": false,
      "required": false,
      "defaultValue": "",
      "defaultNowValue": true
    },
    "日期与时间": {
      "type": "DATETIME",
      "code": "日期与时间",
      "label": "日期与时间",
      "noLabel": false,
      "required": false,
      "unique": false,
      "defaultValue": "",
      "defaultNowValue": true
    },
    "附件": {
      "type": "FILE",
      "code": "附件",
      "label": "附件",
      "noLabel": false,
      "required": false,
      "thumbnailSize": "150"
    },
    "链接": {
      "type": "LINK",
      "code": "链接",
      "label": "链接",
      "noLabel": false,
      "required": false,
      "protocol": "WEB",
      "minLength": "",
      "maxLength": "",
      "unique": false,
      "defaultValue": ""
    },
    "选择用户": {
      "type": "USER_SELECT",
      "code": "选择用户",
      "label": "选择用户",
      "noLabel": false,
      "required": false,
      "entities": [],
      "defaultValue": []
    },
    "选择组织": {
      "type": "ORGANIZATION_SELECT",
      "code": "选择组织",
      "label": "选择组织",
      "noLabel": false,
      "required": false,
      "entities": [],
      "defaultValue": []
    },
    "选择组": {
      "type": "GROUP_SELECT",
      "code": "选择组",
      "label": "选择组",
      "noLabel": false,
      "required": false,
      "entities": [],
      "defaultValue": []
    },
    "关联记录列表": {
      "type": "REFERENCE_TABLE",
      "code": "关联记录列表",
      "label": "关联记录列表",
      "noLabel": false,
      "referenceTable": {
        "relatedApp": {
          "app": "2",
          "code": ""
        },
        "condition": {
          "field": "记录编号",
          "relatedField": "数值"
        },
        "filterCond": "",
        "displayFields": [
          "单行文本框"
        ],
        "sort": "记录编号 desc",
        "size": "5"
      }
    },
    "lookup": {
      "type": "NUMBER",
      "code": "lookup",
      "label": "lookup",
      "noLabel": false,
      "required": false,
      "lookup": {
        "relatedApp": {
          "app": "2",
          "code": ""
        },
        "relatedKeyField": "记录编号",
        "fieldMappings": [
          {
            "field": "选择用户",
            "relatedField": "创建人"
          }
        ],
        "lookupPickerFields": [],
        "filterCond": "",
        "sort": "记录编号 desc"
      }
    },
    "组合": {
      "type": "GROUP",
      "code": "组合",
      "label": "组合",
      "noLabel": false,
      "openGroup": false
    },
    "Table": {
      "type": "SUBTABLE",
      "code": "Table",
      "fields": {
        "单行文本框_0": {
          "type": "SINGLE_LINE_TEXT",
          "code": "单行文本框_0",
          "label": "单行文本框",
          "noLabel": false,
          "required": false,
          "minLength": "",
          "maxLength": "",
          "expression": "",
          "hideExpression": false,
          "unique": false,
          "defaultValue": ""
        }
      }
    },
    "记录编号": {
      "type": "RECORD_NUMBER",
      "code": "记录编号",
      "label": "记录编号",
      "noLabel": false
    },
    "创建人": {
      "type": "CREATOR",
      "code": "创建人",
      "label": "创建人",
      "noLabel": false
    },
    "创建时间": {
      "type": "CREATED_TIME",
      "code": "创建时间",
      "label": "创建时间",
      "noLabel": false
    },
    "更新人": {
      "type": "MODIFIER",
      "code": "更新人",
      "label": "更新人",
      "noLabel": false
    },
    "更新时间": {
      "type": "UPDATED_TIME",
      "code": "更新时间",
      "label": "更新时间",
      "noLabel": false
    }
  }
}

应答参数

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

应答的范例

{
  "revision": "2"
}

JavaScript范例

使用 kintone REST API 发送请求

var body = {
  'app': kintone.app.getId(),
  'revision': 2,
  'properties': {
    '单行文本框': {
      'type': 'SINGLE_LINE_TEXT',
      'code': '单行文本框',
      'label': '单行文本框',
      'noLabel': false,
      'required': false,
      'minLength': '',
      'maxLength': '',
      'expression': '',
      'hideExpression': false,
      'unique': false,
      'defaultValue': ''
    }
  },
  "下拉菜单": {    
      "type": "DROP_DOWN",    
      "code": "下拉菜单",    
      "label": "下拉菜单",    
      "noLabel": false,    
      "required": false,    
      "options": {    
        "sample1": {    
          "label": "sample1",    
          "index": "0"    
        },    
      "sample2": {    
        "label": "sample2",    
        "index": "1"    
      }    
    },    
    "defaultValue": ""    
  }    
};

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

使用 XMLHttpRequest 请求

var body = {
  'app': kintone.app.getId(),
  'revision': 2,
  'properties': {
    '单行文本框': {
      'type': 'SINGLE_LINE_TEXT',
      'code': '单行文本框',
      'label': '单行文本框',
      'noLabel': false,
      'required': false,
      'minLength': '',
      'maxLength': '',
      'expression': '',
      'hideExpression': false,
      'unique': false,
      'defaultValue': ''
    },
    "下拉菜单": {    
      "type": "DROP_DOWN",    
      "code": "下拉菜单",    
      "label": "下拉菜单",    
      "noLabel": false,    
      "required": false,    
      "options": {    
        "sample1": {    
          "label": "sample1",    
          "index": "0"    
        },    
      "sample2": {    
        "label": "sample2",    
        "index": "1"    
      }    
    },    
    "defaultValue": ""    
  }  
  },
  // 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('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删除字段 及 更改表单的布局 请参见 更改表单的设置3