# 関連レコードの項目を集計

**URL:** <https://community.cybozu.dev/t/topic/1015>\
**Category:** kintone 開発相談\
**Created:** [2017 年 12 月 26 日午前 1:50 UTC](https://community.cybozu.dev/t/topic/1015 "2017-12-26T01:50:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1798](https://avatars.discourse-cdn.com/v4/letter/l/ecae2f/32.png) [@Legacy\_Account1798](https://community.cybozu.dev/u/Legacy_Account1798)\
**Post date:** [2017 年 12 月 26 日午前 1:50 UTC](https://community.cybozu.dev/t/topic/1015/1 "2017-12-26T01:50:21Z")

</div>

お世話になっております。  
JavaScript超初心者にて恐縮ですが、はじめてこちらへ投稿させていただきます。

タイトルの通り、関連レコード内の「実績」項目を集計して表示させたいが、  
実績が入力されていても「￥0-」と表示されてうまく集計ができません。  
下記の記事を元に、条件は外した状態で行ないました。

[https://developer.cybozu.io/hc/ja/articles/203030394-%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%A0%85%E7%9B%AE%E3%82%92%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%81%A7%E9%9B%86%E8%A8%88](https://community.cybozu.dev/hc/ja/articles/203030394-%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%A0%85%E7%9B%AE%E3%82%92%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%81%A7%E9%9B%86%E8%A8%88%20)

コードは以下の通りです。

(function() {  
&nbsp;&nbsp;&nbsp; “use strict”;

&nbsp;&nbsp;&nbsp; //レコードの編集、詳細画面で適用する  
&nbsp;&nbsp;&nbsp; var events = [  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘app.record.detail.show’,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘app.record.edit.show’  
&nbsp;&nbsp;&nbsp; ]  
&nbsp;&nbsp;&nbsp; kintone.events.on(events, function(event) {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var record = event.record;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var client\_rid = event.recordId;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var related = kintone.app.getRelatedRecordsTargetAppId(‘関連レコード一覧A’);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var offset = 0;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var loop\_end\_flg = false;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var records = new Array();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(!loop\_end\_flg){  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var query = ‘案件番号="’ + client\_rid +  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘" limit 100 offset ’ + offset;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query = encodeURIComponent(query);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var appUrl = kintone.api.url(’/k/v1/records’) + ‘?app=’+ related + ‘&query=’ + query;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 同期リクエストを行う  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var xmlHttp = new XMLHttpRequest();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp.open(“GET”, appUrl, false);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp.send(null);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取得したレコードをArrayに格納  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var resp\_data = JSON.parse(xmlHttp.responseText);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(resp\_data.records.length \> 0){  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i = 0; resp\_data.records.length \> i; i++){  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; records.push(resp\_data.records[i]);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; offset += resp\_data.records.length;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loop\_end\_flg = true;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var amount = 0;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var i = 0; i \< records.length; i++) {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; amount = amount + parseFloat(records[i].A値.value);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var divTotalAmount = document.createElement(‘div’);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; divTotalAmount.style.fontWeight = ‘bold’;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; divTotalAmount.style.textAlign = ‘right’;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; divTotalAmount.style.fontSize = 12;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var wString = String(amount.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, ‘$1,’));  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; divTotalAmount.innerHTML = “\” + wString + “-”;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kintone.app.record.getSpaceElement(“TotalAmount”).appendChild(divTotalAmount);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return event;

&nbsp;&nbsp;&nbsp; });  
})();

フィールドコードは以下のとおり設定しています。

・集計対象の関連レコード：“関連レコード一覧A”  
・関連付けのキーとなるフィールド：“案件番号”  
・集計対象となる実績のフィールド(リンク先アプリ)：“A値”

うまく集計できない原因と方法を、どなたかご教示いただけないでしょうか。  
どうぞ宜しくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1896](https://avatars.discourse-cdn.com/v4/letter/l/f14d63/32.png) [@Legacy\_Account1896](https://community.cybozu.dev/u/Legacy_Account1896)\
**Post date:** [2017 年 12 月 27 日午前 6:09 UTC](https://community.cybozu.dev/t/topic/1015/2 "2017-12-27T06:09:23Z")

</div>

Suzukiさん

お疲れ様です。

&nbsp;

リンク先の記事通りにアプリを作成し、

提示していただいたコード、フィールドコードをアプリに設定したところ、

問題なく値の取得ができました。(条件を外した状態で値の取得に成功しました。）

&nbsp;

エラーの内容がわからないので、正確に答えられませんが、

関連付けのキーとなるフィールドはルックアップ先からコピーされるフィールドになっていますでしょうか？

&nbsp;

一度デバッグしていただき、エラーの内容を返信いただければ詳細にわかるかと思います。

デバッグは以下の記事が参考になると思います！

[https://developer.cybozu.io/hc/ja/articles/207613916](https://developer.cybozu.io/hc/ja/articles/207613916)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1798](https://avatars.discourse-cdn.com/v4/letter/l/ecae2f/32.png) [@Legacy\_Account1798](https://community.cybozu.dev/u/Legacy_Account1798)\
**Post date:** [2017 年 12 月 27 日午前 6:48 UTC](https://community.cybozu.dev/t/topic/1015/3 "2017-12-27T06:48:53Z")

</div>

HANSAさん

コメントいただきありがとうございます！  
エラーの確認方法までご案内いただき、大変助かりました。  
デバックを行なってみましたが、エラーは表示されませんでした。。  
また、関連付けのキーとなる"案件番号"フィールドは、ルックアップ先からコピーされるものではありません。

1つ気になっているのが、先の投稿で記載したリンク先の記事は  
「顧客ごとの自動採番（[https://developer.cybozu.io/hc/ja/articles/203236240](https://community.cybozu.dev/hc/ja/articles/203236240)）」の続編とのことなので  
自動採番の記事も読んでみたのですが、自動採番の必要はなく設定は不要だろうと判断しました。  
もしかして何らかの設定をしなければならなかったのでしょうか･･･？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1896](https://avatars.discourse-cdn.com/v4/letter/l/f14d63/32.png) [@Legacy\_Account1896](https://community.cybozu.dev/u/Legacy_Account1896)\
**Post date:** [2017 年 12 月 27 日午前 7:13 UTC](https://community.cybozu.dev/t/topic/1015/4 "2017-12-27T07:13:30Z")

</div>

Suzukiさん

&nbsp;

質問時に提示していただいた記事（[https://developer.cybozu.io/hc/ja/articles/203030394）](https://community.cybozu.dev/hc/ja/articles/203030394%EF%BC%89%E3%81%AE%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A0%85%E3%81%AB%E6%9B%B8%E3%81%84%E3%81%A6%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81)の注意事項に書いてありますが、

顧客情報レコード番号（Suzukiさん設定だと案件番号）は「顧客ごとの自動採番」の記事で使用していたフィールドを使用しているようです！

&nbsp;

このフィールドはルックアップ先からコピーされるフィールドになっているので、

&nbsp;

この設定をしていないと、

var client\_rid = event.recordId;

var query = ‘案件番号="’ + client\_rid + '" limit 100 offset ’ + offset;

この部分のクエリ条件がうまく設定できておらずレコードが取得できていない状況になっていると思います。

&nbsp;

記事では、ルックアップ先のレコード番号を顧客情報レコード番号にコピーしてきているようです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1798](https://avatars.discourse-cdn.com/v4/letter/l/ecae2f/32.png) [@Legacy\_Account1798](https://community.cybozu.dev/u/Legacy_Account1798)\
**Post date:** [2017 年 12 月 28 日午前 1:39 UTC](https://community.cybozu.dev/t/topic/1015/5 "2017-12-28T01:39:59Z")

</div>

HANSA さん

ご返信いただきありがとうございます！

コメントいただいたように顧客情報レコード番号が「顧客ごとの自動採番」の記事で

使用していたフィールドである事をふまえ、色々と試してみたのですがうまくいきませんでした。

コードのどの部分を、どのように修正すべきか？という初歩的な知識も持ち合わせていないため、

きちんと基本知識を得た上で改めて試してようと思います。

貴重なお時間いただき、ありがとうございました！
