Ribbit's works

一覧・詳細画面でフィールド名を取得する【kintone JavaScriptカスタマイズ】

#JavaScript #kintone
にメンテナンス済み
記事のトップ画像

kintone.events.on のコールバック関数の引数である event オブジェクトを利用することで、一覧または詳細画面に表示されているレコード情報を取得することができます。

ただ、ここから取得できるのはフィールドコードとそのフィールドタイプ、値のみで、フィールド名は含まれていません。

今回は特定の一覧に設定されている、フィールド名を取得する方法を紹介します。

サンプルコード

例として、レコード詳細画面で各フィールドのフィールド名を取得するコードを紹介します。 レコード一覧画面には event.record オブジェクトが存在せず、代わりに event.records となる点に注意してください。

kintone.events.on(['app.record.detail.show'], async (event) => {
  /** レコード情報 */
  const record = event.record;

  /** フォームの設定情報 */
  const { properties } = await kintone.api(
    kintone.api.url('/k/v1/app/form/fields.json', true),
    'GET',
    { app: kintone.app.getId() }
  );

  /** フィールドコードと対応するフィールド名 */
  const pairs = Object.keys(record).map((fieldCode) => {
    return [fieldCode, properties[fieldCode]?.label];
  });

  console.log(pairs);

  return event;
});

実行結果

サンプルに使用したアプリでの実行結果です。

0: (2) ['レコード番号', 'レコード番号']
1: (2) ['更新者', '更新者']
2: (2) ['作成者', '作成者']
3: (2) ['更新日時', '更新日時']
4: (2) ['作成日時', '作成日時']
5: (2) ['name', '氏名']
6: (2) ['kana', '氏名(カタカナ)']
7: (2) ['seibetsu', '性別']
8: (2) ['phoneNumber', '電話番号']
9: (2) ['birthday', '生年月日']
10: (2) ['$revision', undefined]
11: (2) ['$id', undefined]