Tipsの『関連レコードの項目を条件付きで集計』
https://cybozudev.zendesk.com/hc/ja/articles/203030394
を参考に、同一アプリ内での関連レコードを集計しようと試みていますが
集計がうまくできません。
同一アプリ内の関連レコードを集計させる場合は
Tipsをどのように書き換えたらよろしいのでしょうか?
●関連レコードのフィールドコード・・・‘売上履歴’
●関連レコードの表示する条件・・・‘目標ID’
●さらに絞り込む条件・・・・・・・・・・なし
●集計したいフィールドコード・・・・・‘売上小計’
初歩的な質問ですみませんが、アドバイスをお願いいたします。
すみません。
Tipsとトピックを参考にして
やりたいことが実現できました。
queryの設定がおかしかったようです。
鈴木様
「同一アプリ内での関連レコードを集計」したく覗いていましたところ、このスレッドを発見しました。ご自身で解決されたようですが、ヒントをいただけませんか。
工藤様
コメントありがとうございます。
少しでも解決のヒントになれば嬉しいですが、なにぶん当方も初心者な故、コードを理解するのに苦戦しながら、なんとか思い通りに動かせた感じなので、あまりお勧めは出来ません
(結構前の書込みだったので当時の変更をどうやったか中々思い出せませんでした。。。)
●当時やった事
・「日報アプリ」を作成し日別個人別の『売上小計』を記入してもらう
・日報日付から当月の1日の日付を取得し格納し『目標日付』とする(例:12/28→12/1)
・目標日付とユーザー名を連結し『目標ID』とする
・目標IDで関連レコードを集計し、当月の『売上履歴』を表示させる
・売上履歴の売上小計から、当月の『累計売上』を計算する
こんな感じで進めました。
以下はサンプルの変更点のみですがよろしいでしょうか?
①サンプル11行目の変更点
var client_rank = record['目標ID']['value'];
var related = kintone.app.getRelatedRecordsTargetAppId('売上履歴');
※売上履歴は関連レコードのフィールドコードです。
②サンプル17行目
var query = encodeURIComponent('目標ID = "' + client_rank + '"' + ' limit 100 offset ' + offset);
var appUrl = kintone.api.url('/k/v1/records') + '?app='+ related + '&query=' + query;
サンプルのままではうまく動かなかったため、個人的に理解しやすくするために整理。
③サンプル42行目以降
var amount = 0;
for (var i = 0; i < records.length; i++) {
amount = amount + parseFloat(records[i].売上小計.value);
}
record['累計売上']['value'] = amount;
if(record['累計売上']['value'] == NaN){
record['累計売上']['value'] = "";
}
return event;
サンプルはスペースでの表示でしたが、グラフで表示させたかったので数値フィールドに格納するために
上記のように変更しました。
こんなので参考になりますでしょうか?
鈴木様
ご回答いただきありがとうございました。さっそくチャレンジしてみます。