お世話になっております。
関連レコード集計についてお教えいただければと思います。
関連レコードの取得PTの合計を関連レコード下のスペース(要素ID:a)に表示させたいです。
参考サイトをもとに色々試しましたができませんでした。参考サイトは下記URLです。
https://qiita.com/RyBB/items/49793a3f9eae3550f185
ご回答宜しくお願い致します。
(() => {
'use strict';
// フィールドコードとか
const common = {
app: kintone.app.getId(),
relatedRecordCode: 'アポ一覧',
spaceCode: 'a',
related_TotalFee: '取得PT'
};
// JS SDKのコネクションとか
const conn = new kintoneJSSDK.Connection();
const kintoneApp = new kintoneJSSDK.App(conn);
const kintoneRecord = new kintoneJSSDK.Record(conn);
// 詳細画面表示・編集画面表示イベントで発火
kintone.events.on(['app.record.detail.show', 'app.record.edit.show'], event => {
const promise = Promise.resolve();
promise.then(() => {
return kintoneApp.getFormFields(common.app, 'JA');
}).then(resp => {
return resp.properties[common.relatedRecordCode].referenceTable;
}).then(resp2 => {
const params = {
'app': resp2.relatedApp.app,
'query': resp2.condition.relatedField + '="' + event.record[resp2.condition.field].value
+ '" order by ' + resp2.sort + ' limit ' + resp2.size,
'fields': resp2.displayFields
};
return kintoneRecord.getRecords(params.app, params.query, params.fields, true);
}).then(resp3 => {
// 0件以下なら何もしない(計算いらない)
if (resp3.records.length < 0) {return; }
// 金額フィールドの値を配列に格納する
const numArray = resp3.records.map(index => {
return Number(index[common.related_TotalFee].value);
});
// 格納した配列の中身を集計する
const sum = numArray.reduce((pre, cur) => {
return pre + cur;
});
// カンマ区切り
const total = sum.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
// スペースフィールドに表示
kintone.app.record.getSpaceElement(common.spaceCode).textContent = total;
}).catch(err => {
console.log(err);
});
});
})();