今回は複数の条件を指定してレコードを取得する方法をご紹介します!


これまで何度かTipsで、クエリによって複雑な条件を指定することができる「クエリで条件を指定してレコードを取得する」の使い方をご紹介してきました。


でも、クエリの書き方は難しいし、ちゃんと動くか不安・・・(・・;)


そんな方にお勧めしたいのが「取得したレコードを絞り込む」です!


こちらは「全レコードを取得する」や「キーを指定してレコードを取得する」で取得したレコードを、「フィールド値が特定の値ならば」のように条件を指定して絞り込むことができます。


また絞り込んだレコードを「取得したレコードを絞り込む」でさらに絞り込むこともできます!


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


使用例紹介

売上管理アプリの一覧に自分が担当者になっている同じ月のレコードを種別ごとに集計したいとします。


完成イメージ


カスタマイズの方針

レコード取得のアクションは対象となるレコードが多ければ多いほど、処理に時間がかかってしまいます。

全レコードを取得する」はレコードが多くなることを考えてなるべく使わないことにし、最初のレコード取得で出来るだけ大きく絞り込めるようにしましょう。


今回の例では、まずは自分が担当者のレコードに絞り込むと大きく絞り込めそうです。

ですが、「キーを指定してレコードを取得する」はユーザー選択フィールドに対応していません。


そこで、自分が担当者のレコードのみを表示する一覧を用意しておき、「一覧の条件でレコードを全件取得する」を使ってレコードを取得し、その後日付で絞り込み、種別でさらに絞り込み、集計して表示する、という流れを採用します。


アプリのフォーム



フィールドタイプ

フィールド名

フィールドコード

備考

日付

日付

日付

初期値:レコード登録時の日付

ユーザー選択

担当者

担当者

初期値:ログインユーザー

文字列(1行)

顧客名

顧客名

なし

数値

売り上げ

売り上げ

桁区切りあり

入力必須

初期値:0

単位:¥

ラジオボタン

売上種別

売上種別

選択肢:A , B


また、「自担当レコード」という一覧を追加します。



Customineの設定


一覧の条件でレコードを取得する



やること

一覧の条件でレコードを全件取得する」を使います。


条件

一覧画面の中でも「自担当レコード」の一覧のみで表示させたいので、「一覧画面を表示した時」に「現在の一覧が指定の一覧ならば」を加えて、「自担当レコード」を指定します。


今月の月初を計算する(絞り込みの準備)


「今月のレコード」とは今月の1日以降のレコードということです。そこで、先に絞り込むのに必要な今月の月初の日付を取得します。



やること

特定の日付を取得する」を使います。「日付の種類」は「今月月初」を選択します。


条件

他のアクションの実行が完了した時」で11番の直後に実行されるようにします。

また、レコードが取得できなかった場合は計算できないので、「レコード件数が1件以上ならば」を追加し、レコードが取得できた場合だけ処理を進めるようにします。


※レコードが取得できなかった場合の処理は後述します。



今月のレコードのみに絞り込む



やること

取得したレコードを絞り込む」を使います。11番で取得したレコードを日付が12番で計算した今月の月初以降のレコードを取得したいので、「絞り込む前のレコード」は「11」、「条件になるフィールド」は「日付」、「条件」は「大きいか等しい」、「比較値」は「=$12」と入力します。


条件

「他のアクションの実行が完了した時」で12番の直後に実行されるようにします。


「売上種別」が「A」のものにさらに絞り込む



やること

「取得したレコードを絞り込む」を使います。14番で絞り込んだレコードをさらに「売上種別」が「A」のものだけに絞り込みます。「絞り込む前のレコード」は「13」、「条件になるフィールド」は「売上種別」、「条件」は「等しい」、「比較値」は「A」と入力します。


条件

「他のアクションの実行が完了した時」で13番の直後に実行されるようにします。

また、「レコード件数が1件以上ならば」を追加し、レコードが取得できた場合だけ処理を進めるようにします。


※レコードが取得できなかった場合の処理は後述します。


売り上げの合計を計算する


やること

レコード中のフィールド合計値を計算する」を使います。取得したレコードの指定したフィールドの合計値を計算します。「レコード選択アクション」は「14」、「計算するフィールド」は「売り上げ」を選択します。


条件

「他のアクションの実行が完了した時」で14番の直後に実行されるようにします。

また、「レコード件数が1件以上ならば」を追加し、レコードが取得できた場合だけ処理を進めるようにします。


※レコードが取得できなかった場合の処理は後述します。


合計を一覧の上に表示する



やること

メニュー位置に文字を表示する」を使って15番で計算した合計値を一覧の上に表示します。「場所」は「一覧画面のメニューの右側」を選択します。

「表示するテキスト」は「今月の売り上げ(Aタイプ):¥${$15}」です。


条件

「他のアクションの実行が完了した時」で15番の直後に実行されるようにします。


レコードが取得できなかったときは「¥0」と表示する



やること

今度も「メニュー位置に文字を表示する」を使います。「場所」は「一覧画面のメニューの右側」を選択します。

「表示するテキスト」は「今月の売り上げ(Aタイプ):¥0」です。


条件

「他のアクションの実行が完了した時」で各アクションの直後に実行されるようにします。

また、レコードが0件になった場合のみの処理なので「レコード件数が0件ならば」を追加します。


これで必要な設定はすべてです。

設定が完了したら、「kintoneアプリへ登録」し、動作チェックしてみましょう。


終わりに

今回は売り上げの金額を必須項目にしましたが、空にしたい場合もあるかもしれません。空だと計算できない場合もありますが、「 取得したレコードを絞り込む」で金額が空でないレコードだけに絞り込むこともできます!


取得したレコードを絞り込む」は非常に汎用性が高く、「クエリで条件を指定してレコードを取得する」の代わりになるだけでなく、カスタマイズの自由度を大幅に上げてくれるでしょう!驚くような機能が実現できるかも!


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