カテゴリー内の他の記事

関連レコードの項目を条件付きで集計

はじめに

今回のTipsは、顧客ごとの自動採番に続いて、サンプルアプリ「営業支援パック」の顧客管理アプリを利用します。
顧客管理アプリには、関連レコード一覧が設定されており、同パック内の案件管理アプリと紐付いています。
そのため、顧客管理アプリ内で、その顧客に関連した案件情報が参照できます。

before1.PNG

概要

アプリ内に配置されたテーブルの値は集計が可能ですが、関連レコード一覧の項目の集計は、標準機能ではできません。
そこでカスタマイズによって、関連レコード一覧の項目の集計を行います。
さらに、すべての関連レコードを集計するのではなく、「ある条件に合うもの」のみを集計します。
今回は、「Aプランを提案」した案件の、「合計費用」項目の値を集計します。
これでもう、参照元のアプリまで、集計結果を確認しに行く必要はありませんね!

aplan.PNG

表示するフィールドの設定

「顧客管理アプリの設定 > フォーム > 関連レコードフィールド[案件一覧]の設定 > 表示するフィールド」
において、顧客管理アプリに表示する、関連レコードのフィールドの項目と順序を設定します。

displayfield.PNG

 

そして、集計結果の表示領域として、スペースパーツを案件一覧パーツの下部に配置します。
要素IDは、「totalAmount」とします。

また、関連レコード一覧の合計費用の位置に合うよう、任意の幅のスペースパーツと、「Aプラン小計」と記載したラベルパーツも併せて配置します。

projectlist.PNG

サンプルコード

フォームの詳細画面、編集画面表示のタイミングで計算を行うサンプルです。
 

サンプルコードのポイント

関連レコードの仕組みを理解する

関連レコード一覧フィールドは、参照したいアプリの中で条件に一致したレコードを表示しているため、
現在表示しているレコード詳細画面自体には情報を持っていません。
そのため、関連レコード一覧フィールドに表示されている情報を取得するためには、
レコードを取得する kintone REST API を使用し、
関連レコード一覧フィールドの「表示するレコードの条件」を参考にして、レコードを取得する必要があります。

getRecordQuery.png

関連レコード一覧フィールドの「表示するレコードの条件」は、レコード取得 API 実行時の query パラメータを記載する際に利用します。
例えば、関連レコード一覧画面に相当するレコードを取得したい場合は、以下のようなクエリを記載します。

クエリのポイント

本記事では、関連レコード一覧フィールドに表示されているレコードの中から、さらに「A プランを提案した案件」に絞り込んでレコードを取得します。
そのため、先程記載したクエリに「A プラン」のみ取得できるようなクエリを書き足すと、以下のようなクエリが書けます。

集計の条件としている「提案プラン」はドロップダウンフィールドを用いているため、in句で検索します。
詳細は、こちらの記事をご確認ください。

注意事項

  • 関連レコード一覧フィールドに一度に表示する最大レコード数にかかわらず、条件に該当するすべてのレコードを集計対象とします。

デモ環境

※デモ環境についての説明はこちら

変更履歴

  • 2018/12/12
    • 現在提供されているサンプルアプリに対応
    • 同期リクエストから非同期リクエストへコードを変更

このTipsは、2018年12月版kintoneで確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
cybozu Development team

I.Hayashi 様

お世話になっております。cybozu developer network です。

エラーについては文字化けが影響していそうですね。

文字化けについては、メモ帳で保存するときの文字コードを「UTF-8」(BOMなし)で保存シ、それを再度アップロードしていたければ解決するかと思います。
https://developer.cybozu.io/hc/ja/articles/201755040

また頂いた画像ですが、I.Hayashi 様の cybozu.com 環境のURLが載っているので、
コメントの歯車マーク→編集から削除いただけないでしょうか?

よろしくお願いいたします。

Avatar
I.Hayashi

cybozu developer network 

ご担当者さま

 

お世話になります。

先ほど試させていただきました。

問題なく合計結果が出ました!

これをもとに頑張って変更していきたいと思います。

初歩的なところでお騒がせして申し訳ございませんでした。

ありがとうございました。

 

サインインしてコメントを残してください。