gusuku Customineを使ったkintoneアプリのカスタマイズは、同じことを実現する場合でも条件の組み合わせによって、色々な実現方法があります。今回は年齢の計算を使ってそのあたりをご紹介してみようと思います。
カスタマインの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
利用想定シーン
年齢の自動計算ですので指定した日付フィールドを元に現在日時での年齢を計算し、別のフィールドに値をセットします。このシンプルなカスタマイズについて、色々な方法での実現のしかたをご紹介します。
kintoneアプリの準備
アプリは次のように設定してください。
※フィールド名とフィールドコードは同じものを指定
カスタマイズ
では、このアプリに対してカスタマイズをしてみましょう。手順は以下のとおりです。
やること「年齢を計算する」を選択します。
「誕生日」パラメータには「先方担当者生年月日」を選択します
「年齢をセットするフィールド」パラメータには「年齢」を選択します
「やること」の設定は以上です。
「条件」部分にはデフォルトで自動的に条件「レコードを保存する直前(削除時は除く)」が選択されていると思いますので、ひとまず「やること」の設定だけできていれば、カスタマイズが動きます。
※「年齢を計算する」の「基準日」はいつの時点での年齢を計算するのかを設定するパラメータです。省略した場合は実行した時点での年齢を計算するので、今回は入力は不要となります。
カスタマイズは次のようになります。
シンプルですが、カスタマインではこれだけで年齢計算が実現できます。
黄色の「kintoneアプリへ登録」をクリックして、kintoneアプリに反映させて動作を確認してください。日付を設定して保存すると、年齢が自動計算されていると思います!
ただ、これだけではなんとなく、使い勝手が今ひとつなカスタマイズですよね。
でも、ひとまず動くことはわかりましたので、ここからもう少しブラッシュアップしてましょう。
自動計算されるフィールドは入力できないようにしておく
まず、年齢のフィールドをユーザーが入力できないようにしておきましょう。
自動計算されるフィールドは、ユーザーが入力する必要はありませんので、このようにしておくのは定番のカスタマイズといえるかと思います。
別のアクションで、やること「フィールドを無効化する」を選択し、「フィールド」パラメータには「年齢」を選択しておきます。
また条件については、「やること」を選択するとデフォルトで選択されている「追加画面・編集画面を表示した時」で良いでしょう。
※一覧画面で動作する必要はありませんので、「一覧画面の鉛筆を押した時」は「一覧画面の鉛筆を押した時は含める」「含めない」どちらでも構いません(一覧画面の鉛筆を押したときだけは年齢を編集できるようにしておいても面白いですね)。
最終的な設定は次のようになります。同じ設定になっている事を確認できたら「kintoneアプリへ登録」して動きを確認してみてください。
このカスタマイズにより、追加画面と編集画面で、年齢が入力できなくなり、日付を入れて保存すると年齢が計算されていることが確認できるかと思います。
もう少し改良してみましょう
これでおおむね良さそうに見えますが、最後にもう少しだけ改良してみましょう。
今の状態では、レコードを保存しないと年齢が計算されませんが、これを改良し、生年月日が入力されたらすぐに年齢が計算されるように変更してみましょう。
さて、このカスタマイズはどのように実現すればよいでしょうか?
しばらく考えていただいたあと、次の解説をお読みいただければと思います。
はい、それでは解説します。
今回の様な場合、シンプルに年齢を計算する時の条件を条件「フィールドの値を編集して値が変わった時」に変更することで、実現する事ができます。
「条件」を条件「フィールドの値を編集して値が変わった時」に選択し直します
「フィールド」パラメータには「先方担当者生年月日」を選択します
「一覧画面の鉛筆を押した時」はデフォルトの「一覧画面の鉛筆を押した時は含める」「含めない」どちらでも構いません(下記の例では「含めない」としています)
※「一覧画面の鉛筆を押した時は含める」にしておくと、一覧で生年月日を編集しても年齢が計算されます(あまり必要のないユースケースですが、一応このような動作をさせる事もできます)。
最終的な設定は次のようになります。「kintoneアプリへ登録」して動きを確認してみてください。
生年月日を入力すると、すぐに年齢が計算されるようになります。
まとめ
この記事では、年齢計算のカスタマイズについてお伝えしました。
順を追って少しずつ「確実に動くカスタマイズ」を作ってそれを改良し、少しずつやりたいカスタマイズに近づけていく、カスタマインでのカスタマイズのコツを掴んで頂ければ幸いです。
またこの記事でもご紹介しましたが、同じやりたいことでも条件によっていろいろな局面に対応できるところが、カスタマインにおけるカスタマイズの面白いところです。
今回はご紹介しませんでしたが、例えばボタンを配置してそのボタンを押したときに年齢を計算するといったことや、年齢が一定の範囲外であればエラーを出す、といったことも簡単に実現できます。アイデアの組み合わせで色々便利なカスタマイズが出来ますので、ぜひお試しください。
なお、このカスタマイズは年齢をフィールドに保存する という内容でしたが、例えば詳細画面を開いた際に、常に現在の日付で年齢を表示したい場合はどうすればいいでしょうか?
こちらは皆さんへの宿題としたいと思います!
ご不明な点がございましたら、チャットでお問い合わせください。





