テーブルフィールドにカスタマイズ列を作成する

目次

caution
警告

このページで説明しているAPIは、開発を検討中のAPIです。

アップデートオプション内の「検討中の新機能」から動作をお試しいただけます。
設定方法は、 新機能の有効/無効の切り替え手順 (External link) を参照してください。

APIに関するフィードバックを、ユースケースとともに、 kintoneの改善に協力する (External link) フォームへぜひご登録ください。

フィードバックの例
  • 「APIラボで提供されているAPIを早く本番環境で利用したい」
  • 「こういう用途で使うために、このようなAPIを提供してほしい」

テーブルフィールドにカスタマイズ列を作成する

指定したテーブルフィールドに、カスタマイズ列を作成します。
カスタマイズ列は、テーブルのヘッダーおよび各行のセルに、APIから指定した内容を表示できる機能です。
作成したカスタマイズ列は、戻り値のオブジェクトを使って更新、または削除できます。

利用するには、検討中の新機能の「JavaScript API:テーブルの行へのID付与、テーブル操作時のイベント発生、およびテーブル操作用APIを追加する機能」を有効にしてください。

このAPIは非同期なAPIです。
同期的に処理したい場合は、次のページを参照してください。

関数

PC
kintone.app.record.createCustomTableColumn(fieldCode, config, insertPosition)

引数

引数名 型 必須 説明
fieldCode 文字列 必須 カスタマイズ列を作成するテーブルのフィールドコード
config オブジェクト 必須 カスタマイズ列の設定
すべてのプロパティを省略する場合は、空のオブジェクトを指定します。
config.header オブジェクト 省略可 ヘッダーの設定
config.header.label 文字列 省略可 ヘッダーに表示するラベル
省略した場合、ヘッダーには何も表示されません。
config.body 配列 省略可 各行のセルの設定
行ごとにオブジェクトを指定します。指定しなかった行のセルは空になります。
config.body[].rowId 文字列 必須 セルの内容を設定する行のid
config.body[].contents 配列 必須 セルに表示する内容
複数指定した場合は、横に並べて表示されます。空の配列を指定した場合、セルは空になります。
config.body[].contents[].type 文字列 必須 表示する内容の種類
BUTTON(ボタン)を指定します。
config.body[].contents[].text 文字列 省略可 ボタンに表示するテキスト
config.body[].contents[].description 文字列 省略可 ボタンの説明
ボタンにマウスカーソルを合わせたときに表示されます。
config.body[].contents[].disabled 真偽値 省略可 ボタンを無効にするかどうか
省略した場合はfalse(有効)です。
config.body[].contents[].onClick 関数 省略可 ボタンをクリックしたときに実行する関数
引数として、クリックした行のidをもつオブジェクト({rowId: "行のid"})が渡されます。
関数の実行中、ボタンは無効になります。関数がPromiseオブジェクトを返す場合は、Promiseオブジェクトが解決または拒否されるまで無効のままです。
insertPosition 文字列 省略可 カスタマイズ列を挿入する位置
次のいずれかの値を指定します。
  • #FIRST:先頭
  • #LAST:末尾
  • テーブル内のフィールドコード:そのフィールドの直後
  • カスタマイズ列のcolumnCode:その列の直後
省略した場合は#LASTです。
レコード追加画面とレコード編集画面で#LASTを指定すると、行の追加ボタンと削除ボタンの列の手前に挿入されます。

戻り値

戻り値はPromiseオブジェクトです。
Promiseオブジェクトの解決時に次の要素をもつオブジェクトが取得できます。

プロパティ名 型 説明
columnCode 文字列 カスタマイズ列を識別する文字列
insertPositionに指定すると、このカスタマイズ列の直後に別のカスタマイズ列を作成できます。
update 関数 カスタマイズ列の設定を更新する関数
詳細は、次を参照してください。
カスタマイズ列の設定を更新する
remove 関数 カスタマイズ列を削除する関数
詳細は、次を参照してください。
カスタマイズ列を削除する

カスタマイズ列の設定を更新する

kintone.app.record.createCustomTableColumn()が返したPromiseオブジェクトの解決時に得られるupdate()関数により、作成したカスタマイズ列の設定を更新できます。

関数
update(config)
引数

引数のconfigは、カスタマイズ列を作成するときのconfigと同じ形式です。
指定したプロパティだけが更新され、省略したプロパティは変わりません。

  • config.header.labelを指定すると、ヘッダーのラベルが置き換わります。
  • config.body[]に指定した行は、セルの内容がcontentsの内容に置き換わります。指定しなかった行のセルは変わりません。
  • 画面に存在しない行のidを指定した場合、その行の指定は無視されます。
戻り値

戻り値はPromiseオブジェクトです。
Promiseオブジェクトの解決時に値は返りません。
削除済みのカスタマイズ列に対して実行した場合は、何もせずに解決します。

カスタマイズ列を削除する

kintone.app.record.createCustomTableColumn()が返したPromiseオブジェクトの解決時に得られるremove()関数により、作成したカスタマイズ列を削除できます。

関数
remove()
引数

なし

戻り値

戻り値はPromiseオブジェクトです。
Promiseオブジェクトの解決時に値は返りません。
削除済みのカスタマイズ列に対して実行した場合は、何もせずに解決します。

利用できる画面

PC
  • レコード追加画面
  • レコード編集画面
  • レコード詳細画面
  • レコード印刷画面

サンプルコード

カスタマイズ列を作成する

次のコードは、レコード詳細画面を表示したときに、テーブル(フィールドコード:テーブル)の末尾に「操作」列を作成する例です。
各行に「コピー」ボタンを表示し、クリックするとその行の文字列1行(フィールドコード:文字列__1行)の値をクリップボードにコピーします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
kintone.events.on('app.record.detail.show', (event) => {
  const rows = event.record['テーブル'].value;
  kintone.app.record.createCustomTableColumn('テーブル', {
    header: {label: '操作'},
    body: rows.map((row) => ({
      rowId: row.id,
      contents: [
        {
          type: 'BUTTON',
          text: 'コピー',
          description: '文字列1行の値をクリップボードにコピーします',
          onClick: async ({rowId}) => {
            const target = rows.find((r) => r.id === rowId);
            await navigator.clipboard.writeText(target.value['文字列__1行'].value);
          },
        },
      ],
    })),
  });
  return event;
});
カスタマイズ列を更新、削除する

次のコードは、作成したカスタマイズ列のヘッダーのラベルをupdate()で更新してから、remove()でカスタマイズ列を削除する例です。

1
2
3
4
5
const column = await kintone.app.record.createCustomTableColumn('テーブル', {
  header: {label: '更新前'},
});
await column.update({header: {label: '更新後'}});
await column.remove();

注意事項

  • カスタマイズ列は、画面の表示だけを変更します。レコードのデータには保存されません。
  • 行を追加、削除、または並べ替えると、カスタマイズ列のセルも行に追従します。
    追加した行のセルは空です。内容を表示するには、update()で追加した行のidを指定してください。
  • 画面を再描画する操作(レコード詳細画面と編集画面の切り替え、前後のレコードへの移動、再読み込みなど)を行うと、カスタマイズ列は削除されます。

公式コミュニティ

kintone開発者同士で質問や知見を共有し、学び合うことができます。