フォームのレイアウトを変更する

目次

フォームのレイアウトを変更する

アプリのフォームのレイアウトを変更します。
このAPIでは、次の設定を変更できます。

  • フィールドの縦幅と横幅
  • テーブル内のフィールドと、それらの順番
  • グループフィールド内のフィールドと、それらのレイアウト
  • ラベル、スペース、および罫線の設定

このAPIは、動作テスト環境のアプリを変更します。
本番環境に変更を反映する場合、このAPIを実行した後に、アプリ設定を運用環境へ反映するAPIを実行してください。
アプリ設定を運用環境へ反映するAPI

URL

通常のアプリ
https://sample.cybozu.com/k/v1/preview/app/form/layout.json
ゲストスペースのアプリ
https://sample.cybozu.com/k/guest/GUEST_SPACE_ID/v1/preview/app/form/layout.json

HTTPメソッド

PUT

必要なアクセス権

  • アプリ管理権限

リクエスト

パラメーター

フォーム上のすべてのフィールドに、レイアウトを指定してください。省略したパラメーターの設定は変更されません。

パラメーター名 必須 説明
app 数値または文字列 必須 アプリID
layout 配列 必須 フォームの行ごとのレイアウトの一覧
layout[].type 文字列 必須 行の種類
  • ROW:標準
  • SUBTABLE:テーブル内
  • GROUP:グループフィールド内
layout[].code 文字列 条件必須 テーブルまたはグループのフィールドコード
layout[].typeが「SUBTABLE」または「GROUP」の場合は必須です。
layout[].fields 配列 必須 行に含まれるフィールドの一覧
layout[].fields[].type 文字列 必須 フィールドの種類
  • GROUP_SELECT:グループ選択
  • SPACER:スペース
  • CHECK_BOX:チェックボックス
  • DROP_DOWN:ドロップダウン
  • USER_SELECT:ユーザー選択
  • RADIO_BUTTON:ラジオボタン
  • LABEL:ラベル
  • RICH_TEXT:リッチエディター
  • 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:文字列1行
  • MULTI_LINE_TEXT:文字列複数行
ルックアップフィールドは、コピー元のフィールドのフィールドタイプで指定します。
layout[].fields[].code 文字列 条件必須 フィールドコード
layout[].fields[].typeが「LABEL」「SPACER」「HR」以外の場合は必須です。
layout[].fields[].label 文字列 省略可 ラベルフィールドのラベル名
layout[].fields[].typeが「LABEL」のときに指定します。
省略すると空文字が設定されます。
layout[].fields[].elementId 文字列 省略可 スペースフィールドの要素ID
layout[].fields[].typeが「SPACER」のときに指定します。
省略すると空文字が設定されます。
layout[].fields[].size オブジェクト 省略可 フィールドのサイズ
フィールドの配置によっては、指定したサイズと異なる場合があります。
layout[].fields[].size.width 数値または文字列 省略可 ピクセル単位でのフィールドの横幅
次のフィールドで指定できます。
  • 文字列(1行)
  • 文字列(複数行)
  • リッチエディター
  • 数値
  • 計算
  • 時刻
  • 日付
  • 日時
  • 複数選択
  • ドロップダウン
  • ラジオボタン
  • チェックボックス
  • 添付ファイル
  • ユーザー選択
  • リンク
  • ルックアップ
  • ラベル
  • スペース
  • 罫線
  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
layout[].fields[].size.height 数値または文字列 省略可 フィールド名を含めたピクセル単位でのフィールドの縦幅
layout[].fields[].typeが「SPACER」のときに指定します。
layout[].fields[].size.innerHeight 数値または文字列 省略可 フィールド名を除いたピクセル単位でのフィールドの縦幅
次のフィールドでのみ指定できます。
  • 文字列複数行
  • リッチエディター
layout[].layout 配列 省略可 グループ内のフィールドのレイアウトの一覧
構造は、layoutと同じです。
revision 数値または文字列 省略可 期待しているリビジョン番号
実際のリビジョン番号と一致しない場合はエラーとなり、フィールドは追加されません。
値に「-1」を指定する、または指定しなかった場合はリビジョン番号は検証されません。
リクエストの例
URL

https://sample.cybozu.com/k/v1/preview/app/form/layout.json

ヘッダー
1
2
3
4
{
  "X-Cybozu-API-Token": "API_TOKEN",
  "Content-Type": "application/json"
}

リクエストヘッダーの詳細は共通仕様を参照してください。
kintone REST APIの共通仕様

ボディ
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
  "app": 1,
  "revision": 2,
  "layout": [
    {
      "type": "ROW",
      "fields": [
        {
          "type": "SINGLE_LINE_TEXT",
          "code": "文字列1行_0",
          "size": {
            "width": 200
          }
        },
        {
          "type": "MULTI_LINE_TEXT",
          "code": "文字列複数行_0",
          "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": "テーブル_0",
      "fields": [
        {
          "type": "NUMBER",
          "code": "数値_0",
          "size": {
            "width": 200
          }
        }
      ]
    },
    {
      "type": "GROUP",
      "code": "グループ",
      "layout": [
        {
          "type": "ROW",
          "fields": [
            {
              "type": "NUMBER",
              "code": "数値_1",
              "size": {
                "width": 200
              }
            }
          ]
        }
      ]
    }
  ]
}

レスポンス

プロパティ
プロパティ名 説明
revision 文字列 アプリの設定を変更したあとのリビジョン番号
レスポンスの例
1
2
3
{
  "revision": "4"
}

サンプルコード

curlを使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
curl -X PUT 'https://sample.cybozu.com/k/v1/preview/app/form/layout.json' \
  -H 'X-Cybozu-API-Token: API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "app": 1,
    "revision": 2,
    "layout": [
      {
        "type": "ROW",
        "fields": [
          {
            "type": "SINGLE_LINE_TEXT",
            "code": "文字列1行_0",
            "size": {
              "width": 200
            }
          },
          {
            "type": "MULTI_LINE_TEXT",
            "code": "文字列複数行_0",
            "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()の詳細は、次のページを参照してください。
kintone REST APIリクエストを送信する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const body = {
  app: 1,
  revision: 2,
  layout: [
    {
      type: 'ROW',
      fields: [
        {
          type: 'SINGLE_LINE_TEXT',
          code: '文字列1行_0',
          size: {
            width: 200,
          }
        },
        {
          type: 'MULTI_LINE_TEXT',
          code: '文字列複数行_0',
          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,
          }
        }
      ]
    }
  ]
};

await kintone.api(kintone.api.url('/k/v1/preview/app/form/layout.json'), 'PUT', body);