タイトルに「名前+日付」を結合してみよう!

著者名:菊地 宏司

目次

はじめに

日報など毎日提出するものは「名前」+「日付」みたいな分かりやすいタイトルを付けたいものですよね。
でも、毎回タイトルに手入力するのはちょっと煩わしい。
そんな時に JavaScript を使ってレコード内の項目を結合して自動で入力する方法について紹介します。

デモ環境

デモ環境で実際に動作を確認できます。
https://dev-demo.cybozu.com/k/168/ (External link)

ログイン情報は cybozu developer network デモ環境 で確認してください。

完成イメージ

イメージとしては以下のキャプチャのように「保存」を押すと自動で「タイトル」が入力されるイメージです。

「タイトル」は空のまま「保存」をクリックします。

「タイトル」が自動で入力されます。

サンプルコード

では、さっそくコードを見てみましょう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
/*
 * kintone sample program
 * Copyright (c) 2016 Cybozu
 *
 * Licensed under the MIT License
 * https://opensource.org/license/mit/
 */
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], (event) => {
  const record = event.record;
  const recperson = record.名前.value;
  const personNameAry = [];

  for (let num = 0; num < recperson.length; num++) {
    personNameAry.push(recperson[num].name);
  }

  record.タイトル.value = personNameAry + record.日付.value;
  return event;
});

まず、新規・編集画面の保存実行前イベントを取得します。

8
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], (event) => {

次にレコード情報を取得します。
取得したユーザー名は、配列にセットします。

 9
10
11
12
13
14
const record = event.record;
const recperson = record.名前.value;
const personNameAry = [];
for (let num = 0; num < recperson.length; num++) {
  personNameAry.push(recperson[num].name);
}

最後に、名前と日付のフィールドの値を結合してタイトルに設定します。

17
18
record.タイトル.value = personNameAry + record.日付.value;
return event;

これでタイトルの自動入力は完了です。
たった十数行のお手軽さでちょっとした面倒が解消されるカスタマイズです。

今回のカスタマイズにはフォームに以下の設定を付けるとより使いやすくなります。

  • 名前と日付のフィールドは必須入力を付ける。
  • タイトルの項目は入力不可を付ける。
information

この Tips は、2022 年 8 月版 kintone で動作を確認しています。