今回は一覧画面で条件に合うレコードの背景色やフィールドの文字色を変更することで、注目すべき部分をわかりやすくするカスタマイズをご紹介します。


また、条件に合致するレコードを集計し、その結果をダイアログに表示することで現在の状況を簡潔に知らせることができます。


これを利用して「問い合わせ管理」アプリで自分が担当している問い合わせや、対応期限が迫っている問い合わせをわかりやすく表示してみましょう!



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


アプリのフォーム

今回のカスタマイズでは、kintone アプリストア にある「問い合わせ管理」を使用しますが、このアプリをアプリストアから入手した状態だと、各フィールドのフィールドコードとフィールド名が異なる値で設定されているため、フィールドコードをフィールド名と同じものに変更します。


次のように変更いただくとカスタマイズの際にわかりやすくなります。

  • 「顧客名」フィールドのフィールドコードを「Customer」から「顧客名」に

  • 「ご担当者名」フィールドのフィールドコードを「文字列__1行__0」から「ご担当者名」に

  • 「対応担当者」フィールドのフィールドコードを「Person」から「対応担当者」に


やりたいこと

今回のカスタマイズで実現したいことを書き出すと次のようになります。


  • 「対応担当者」にログインユーザーが含まれているレコードは背景色を水色に変更する

  • 「対応状況」が「完了」以外で、「期限」が今日よりも前のレコードは、「期限」の文字色を赤色に変更する

  • 「対応状況」が「完了」以外で、「期限」が今日よりも後で、今日から五日以内のレコードは、「期限」の文字色を青色に変更する

  • 「対応状況」が「完了」以外で、「対応担当者」にログインユーザーが含まれていて、「期限」が今日よりも前のレコードを集計し、その結果をダイアログに表示する


上記を実現したのが記事の最初で示した画像になります(改めて再掲します)。

※当記事で使用するログインユーザーは右上の赤枠で囲っているユーザーの「千葉 道生」とします

※基準となる「今日」の日付は「2024-10-29」とします


Customineの設定

必要なカスタマイズの全体像は以下の様になります。


アクションを実行する順番は「他のアクションの実行が完了した時」によりコントロールしています。各アクションが実行される順番を図で表すと以下の通りです。


ここから各アクションの設定を解説していきます。


「対応担当者」にログインユーザーが含まれているレコードは背景色を水色に変更する

ユーザー選択フィールド「対応担当者」にログインユーザーが含まれている場合、そのレコードの指定したフィールドの背景色を水色に変更します。


ここでは、やること「フィールド背景色を変更する」、条件「一覧画面を表示した時」「ログインユーザーが指定のユーザーならば」を使用します。


ログインユーザーが指定のユーザーならば」では「= 対応担当者.code」を設定します。

これにより、各レコードの「対応担当者」にログインユーザーが含まれているかを判定しています。


どのような色を設定するのかは「フィールド背景色を変更する」のパラメーター「色」にて、こちらの画像の設定画面で自由に選択できます。


ちなみに、このアクションを一覧画面の特定の一覧でのみ実行したい場合は、条件「現在の一覧が指定の一覧ならば」を使って実行する一覧を限定することもできます。

※この動きは、今回のカスタマイズで「やりたいこと」に含まれている内容ではないのですが、参考までにご紹介しました。


現在の日付を取得する

以下を実現するには、全ての条件にアクション実行時の日付の情報が必要なので、「今日」の日付を先に取得しておきます。


  • 「対応状況」が「完了」以外で、「期限」が今日よりも前のレコードは、「期限」の文字色を赤色に変更する

  • 「対応状況」が「完了」以外で、「期限」が今日よりも後で、今日から五日後以内のレコードは、「期限」の文字色を青色に変更する

  • 「対応状況」が「完了」以外で、「対応担当者」にログインユーザーが含まれていて、「期限」が今日よりも前のレコードを集計し、ダイアログに表示する


ここでは、やること「特定の日付を取得する」、条件「一覧画面を表示した時」を使用します。取得する「日付の種類」は「今日」です。


「対応状況」が「完了」以外で「期限」が今日よりも前のレコードは、「期限」の文字色を赤色に変更する

「対応状況」が「完了」以外で、「期限」が今日よりも前のレコードは、「期限」の文字色を赤色に変更します。


ここでは、やること「フィールド文字色を変更する」と条件「他のアクションの実行が完了した時」、「フィールド値が特定の値ならば」を二つ使用します。


なお、

  1. 「対応状況」が「完了」以外で、

  2. 「期限」が今日よりも前

というように二つの条件で限定したレコードに対してアクションを実行したいので、「フィールド値が特定の値ならば」を二つ設定しています。


また、「フィールド値が特定の値ならば」は日付の前後も判断できるので、「日付のフィールド値が比較値より前」というような判定を行いたい場合は、「条件」を「小さい(<)」にすることで実現できます。


「対応状況」が「完了」以外で、「期限」が今日よりも後で、今日から五日以内のレコードは、「期限」の文字色を青に

「対応状況」が「完了」以外で、「期限」が今日よりも後で、今日から五日以内のレコードは、「期限」の文字色を青色に変更します。


「「期限」が「今日」から五日後以内」の条件判定のためには「今日」の日付に加えて「今日」から五日後の日付も必要なので、アクション2で取得した「今日」の日付から五日後の日付を計算します。

ここでは、やること「日付を計算する」、条件「他のアクションの実行が完了した時」を使用します。


また、その次のアクションでは、やること「フィールド文字色を変更する」と条件「他のアクションの実行が完了した時」、「フィールド値が特定の値ならば」を三つ使用します。


先ほどと同様に、

  1. 「対応状況」が「完了」以外で、

  2. 「期限」が今日よりも後で、

  3. 「期限」が今日から五日後以内

というような三つの条件で限定したレコードに対してアクションを実行したいので、「フィールド値が特定の値ならば」を三つ設定します。


「対応状況」が「完了」以外で、「対応担当者」にログインユーザーが含まれていて、「期限」が今日よりも前のレコードを集計し、ダイアログに表示

「対応状況」が「完了」以外で、「対応担当者」にログインユーザーが含まれていて、「期限」が今日よりも前のレコードを集計し、ダイアログに表示します。


これを実現するには以下の段階を踏む必要があります。

  1. 足りない情報を取得(ログインユーザーの情報)

  2. 条件を組み立ててレコードを取得

  3. レコード数の計算

  4. ダイアログに表示


順番に解説していきます。


1.足りない情報を取得(ログインユーザーの情報)

まず、「対応状況」が「完了」以外で、「対応担当者」にログインユーザーが含まれていて、「期限」が「今日」よりも前のレコードを取得するには、ログインユーザーの情報が足りないので、まずはログインユーザーを取得します。


ここでは、やること「ログインユーザーを取得する」、「他のアクションの実行が完了した時」を使用します。


2.条件を組み立ててレコードを取得

次に、レコード取得に必要な情報がそろったのでレコードを取得します。今回は条件が複数なので、「キーを指定してレコードを取得する」ではなく、「条件を組み立ててレコードを取得する」でレコードを取得します。


やること「条件を組み立ててレコードを取得する」、「他のアクションの実行が完了した時」を使用します。


「検索条件」には次のように設定します。


3.レコード数の計算

続いて、情報ダイアログに表示するため、アクション7で取得したレコードの件数を計算します。ただし、取得したレコードが0件の場合はダイアログを表示しなくてよいので、1件以上の場合のみ件数をカウントするようにします。


やること「レコード行数をカウントする」、条件「他のアクションの実行が完了した時」、「レコード件数が1件以上ならば」を使用します。


4.ダイアログに表示

最後に、ダイアログに表示するすべての情報がそろったので、取得した情報を入力したダイアログを表示しましょう。


ここでは、やること「情報ダイアログを表示する」、条件「他のアクションの実行が完了した時」を使用します。


「メッセージ入力」には以下のように入力します。


期限が切れている ${$6.name} さんのレコードが ${$8}件あります。


なお、${$6.name} はアクション6で取得したログインユーザーの表示名に、${$8} はアクション8で計算したレコード数に、それぞれ置き換えられます。


終わりに

一覧画面で注目すべきフィールドやレコードの色を変えることで、現在の状況を把握しやすくすることができます。これでやるべきことを忘れなくて済みますね!

色々設定してどんどん便利なアプリにしてください!


ご不明点等ございましたら、チャットにてご質問ください!

Customineドキュメントサポートページもぜひご活用ください。