# 関連レコードの集計について

**URL:** <https://community.cybozu.dev/t/topic/5471>\
**Category:** kintone 開発相談\
**Created:** [2021 年 11 月 17 日午前 2:59 UTC](https://community.cybozu.dev/t/topic/5471 "2021-11-17T02:59:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2822](https://avatars.discourse-cdn.com/v4/letter/l/d6d6ee/32.png) [@Legacy\_Account2822](https://community.cybozu.dev/u/Legacy_Account2822)\
**Post date:** [2021 年 11 月 17 日午前 2:59 UTC](https://community.cybozu.dev/t/topic/5471/1 "2021-11-17T02:59:39Z")

</div>

3つのアプリを使い、関連レコードを使用し計算をしています。

コチラを参照しています。

**アプリA** ：科目管理

｜ ルックアップ

**アプリB** ：発注詳細（301件(928行)）

｜ テーブル－商品／数量×単価=小計 → 合計(SUM(小計))

**アプリC** ：受注書（178件）

```
関連レコード(order)

```

①アプリBでアプリAの科目をルックアップで参照。

テーブルに商品が複数行あり、小計から合計算出。

②アプリCは案件ごとの詳細で、アプリBを関連レコード表示。

その関連レコードの合計を合計させたく、コードを作成してみましたが、

結果は関連レコードの表示があっても”0円”となってしまいます。

自分なりにルックアップを使わない条件にしたり、limitなども試してみましたがうまくいかず・・・。

説明もしづらく分かりにくい内容で申し訳ありません。

以下コードを貼ります。

どうぞご教授願います。

```
(function() {
'use strict';
var events = [
'app.record.detail.show',
'app.record.edit.show'
];
kintone.events.on(events, function(event) {
var clientRecordId = event.recordId;
var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('order');
var query = '工番="' + clientRecordId +
'" and 科目名 = "材料仕入高"';
var outputFields = ['合計'];
var appUrl = kintone.api.url('/k/v1/records'); var elementId = 'totalAmount';
kintone.api(appUrl, 'GET', params, function(resp) {
var amount = 0;
for (var i = 0; i < resp.records.length; i++) {
amount += parseFloat(resp.records[i].合計.value);
}
var divTotalAmount = document.createElement('div');
var wString = String(amount.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'));
divTotalAmount.style.fontWeight = 'bold';
divTotalAmount.style.textAlign = 'right';
divTotalAmount.style.fontSize = 12;
divTotalAmount.innerHTML = '\\' + wString + '-';
kintone.app.record.getSpaceElement(elementId).appendChild(divTotalAmount);
return event;
});
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1177](https://avatars.discourse-cdn.com/v4/letter/l/77aa72/32.png) [@Legacy\_Account1177](https://community.cybozu.dev/u/Legacy_Account1177)\
**Post date:** [2021 年 11 月 21 日午前 8:25 UTC](https://community.cybozu.dev/t/topic/5471/2 "2021-11-21T08:25:47Z")

</div>

見た限りだと、params（APIのリクエストボディ）が宣言されていないようです

```
(function() {
'use strict';

var events = [
'app.record.detail.show', 'app.record.edit.show'
];

kintone.events.on(events, function(event) {
var clientRecordId = event.recordId;
var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('order');
var query = '工番="' + clientRecordId + '" and 科目名 = "材料仕入高"';
var outputFields = ['合計'];
var appUrl = kintone.api.url('/k/v1/records', true);
var elementId = 'totalAmount';

var params = {
'app': relatedAppId,
'query': query
};

kintone.api(appUrl, 'GET', params, function(resp) {
var amount = 0;

for (var i = 0; i < resp.records.length; i++) {
amount += parseFloat(resp.records[i].合計.value);
}

var divTotalAmount = document.createElement('div');
var wString = String(amount.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'));

divTotalAmount.style.fontWeight = 'bold';
divTotalAmount.style.textAlign = 'right';
divTotalAmount.style.fontSize = 12;
divTotalAmount.innerHTML = '\\' + wString + '-';

kintone.app.record.getSpaceElement(elementId).appendChild(divTotalAmount);

return event;
});
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2822](https://avatars.discourse-cdn.com/v4/letter/l/d6d6ee/32.png) [@Legacy\_Account2822](https://community.cybozu.dev/u/Legacy_Account2822)\
**Post date:** [2021 年 11 月 24 日午前 5:29 UTC](https://community.cybozu.dev/t/topic/5471/3 "2021-11-24T05:29:37Z")

</div>

コメントありがとうございました。リンクがなかったり、コードの貼り付けも不慣れで見づらく失礼致しました。

試しながらparamsを消してしまっていたようですが、修正しても変わりありませんでした。
