gusuku Customineを使ったkintoneアプリのカスタマイズは、同じことを実現する場合でも条件の組み合わせによって、色々な実現方法があります。今回は年齢の計算を使ってそのあたりをご紹介してみようと思います。


Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。


利用想定シーン

年齢の自動計算ですので指定した日付フィールドを元に現在日時での年齢を計算し、別のフィールドに値をセットします。このシンプルなカスタマイズを実現する、いろいろな方法をご紹介します。


kintoneアプリに必要なフィールド

アプリ側に必要なフィールドはこの2つです。「先方担当者生年月日」を元に、「年齢」フィールドに年齢をセットする例になります。年齢のフィールドは、文字列か数値のフィールドであれば問題ありません。


Customineの設定

では、このアプリに対してカスタマイズをしてみましょう。手順は以下のとおりです。

  • 「やること」にカテゴリー:フィールドの中から、「年齢を計算する」を選択します
  • 「日付または日時フィールド」には「先方担当者生年月日」を選択します
  • 「年齢をセットするフィールド」には「年齢」を選択します

やることの設定は以上です。条件部分にはデフォルトで自動的に「レコードを保存する直前(削除時は除く)」が選択されていると思いますので、ひとまずこれだけでOKです。

「年齢を計算する」の「基準日」はいつの時点での年齢を計算するのかを設定するパラメータです。省略した場合は実行した時点での年齢を計算するので、今回はにゅうりょくしなくてけっこうです


最終的には以下のようになります。

これだけで年齢計算は完成です。黄色の「kintoneアプリへ登録」をクリックして、kintoneアプリに反映させて動作を確認してください。

日付を設定して保存すると、年齢が自動計算されていると思います!

ただ、これだけではなんとなく、使い勝手が今ひとつなカスタマイズですよね。

ひとまず動くことはわかりましたので、ここからもう少しブラッシュアップしてみたいと思います。


自動計算されるフィールドは入力できないようにしておく

まず、年齢のフィールドをユーザーが入力できないようにしておきましょう。自動計算されるフィールドは、ユーザーが入力する必要はありませんので、このようにしておくのは定番のカスタマイズといえるかと思います。


別のアクションの「やること」でカテゴリー:フィールドの中から、「フィールドを無効化する」を選択します。フィールドには勿論「年齢」を選択しておいてください。

条件としては、デフォルトで選択されている「追加画面・編集画面を表示した時」でいいと思います。また、一覧画面で動作する必要はありませんので、「一覧画面の鉛筆を押した時」は「一覧画面の鉛筆を押した時は含める」「含めない」どちらでも構いません(一覧画面の鉛筆を押したときだけは年齢を編集できるようにしておいても面白いですね)。


最終的な設定はこのようになります。「kintoneアプリへ登録」して動きを確認してみてください。

追加画面と編集画面で、年齢が入力できなくなり、日付を入れて保存すると年齢が計算されていることが確認できるかと思います。


もう少し改良してみましょう

これでおおよそ良さそうなのですが、最後にもう少しだけ改良してみましょう。

今の状態では、レコードを保存しないと年齢が計算されませんが、これを生年月日が入力されたらすぐに計算させるようにしてみましょう。


さて、このカスタマイズはどのように実現すればよいでしょうか?

しばらく考えていただいたあと、以下の解説をお読みいただければと思います。

はい、それでは解説します。

ここではシンプルに年齢を計算する時の条件を、「フィールドの値を編集して値が変わった時」に変更することで、実現できるかと思います。

  • 「条件」の「レコードを保存する直前」をクリックして「フィールドの値を編集して値が変わった時」を選択し直します
  • 「フィールド」には「先方担当者生年月日」を選択します
  • 「一覧画面の鉛筆を押した時」はデフォルトの「一覧画面の鉛筆を押した時は含める」「含めない」どちらでも構いません

「一覧画面の鉛筆を押した時は含める」にしておくと、一覧で生年月日を編集しても年齢が計算されます(あまりないユースケースとは思いますが、一応このような動作も可能です)。


最終的な設定はこのようになります。「kintoneアプリへ登録」して動きを確認してみてください。

生年月日を入力すると、すぐに年齢が計算されていると思います。


まとめ

年齢のカスタマイズは以上になります。少しずつ「確実に動くカスタマイズ」を作ってそれを改良し、少しずつやりたいカスタマイズに近づけていくCustomineのコツを掴んで頂ければ幸いです。

ご紹介しましたとおり、同じやりたいことでも条件によっていろいろな局面に対応できるところが、Customineの面白いところです。


また今回はご紹介しませんでしたが、例えばボタンを配置してそのボタンを押したときに年齢を計算するといったことや、年齢が一定の範囲外であればエラーを出す、といったことも簡単に実現できます。アイデアの組み合わせで色々便利なカスタマイズが出来ますので、ぜひお試しください。


このカスタマイズでは年齢をフィールドに保存していましたが、例えば詳細画面を開いた際に、常に現在の日付で年齢を表示したい場合はどうすればいいでしょうか?

こちらは皆さんへの宿題としたいと思います!