何を実現したいのかを書きましょう
テーブル内のレコードをカテゴリ別に合計し、カテゴリ別のフィールドに合計値を入れたいと思っています
第6回 テーブルの値を利用する(条件付きでデータを集計) – cybozu developer network (zendesk.com)
を参考にコードを書いてみました
「テーブル」というテーブル内に「区分」という文字列フィールドと「小計」という数値フィールドがあります
「区分」の値が「A」であれば、テーブル外のフィールド「A合計」という数値フィールドに区分Aのときの小計の合計値を
「区分」の値が「B」であれば、テーブル外のフィールド「B合計」という数値フィールドに区分Bのときの小計の合計値を
・・・・
「区分」の値が「F」であれば、テーブル外のフィールド「F合計」という数値フィールドに区分Fのときの小計の合計値を
それぞれ詳細画面を表示したときに代入したい
発生した問題やエラーメッセージを具体的に書きましょう
console.log(event)
を実行すると
undefined
になります
consoleでevent.record[‘テーブル’].value
を実行すると
VM1184:1 Uncaught TypeError: Cannot read properties of undefined (reading ‘record’)
at :1:7
になります
実行したコードをコピー&ペーストしましょう
(function() {
'use strict';
kintone.events.on('app.record.detail.show', function(event) {
const subTotals = {};
const tableRecords = event.record['テーブル'].value;
// テーブル内の各レコードを所属部署名ごとに集計する
for (let i = 0; i < tableRecords.length; i++) {
const department = tableRecords[i].value['区分'].value;
if (!subTotals[department]) {
subTotals[department] = 0;
}
const workCost = parseFloat(tableRecords[i].value['小計'].value);
subTotals[department] += workCost;
}
// 集計結果を指定のフィールドに表示する
const record = kintone.app.record.get();
record.record['A合計'].value = subTotals['A'] || 0;
record.record['B合計'].value = subTotals['B'] || 0;
record.record['C合計'].value = subTotals['C'] || 0;
record.record['D合計'].value = subTotals['D'] || 0;
record.record['E合計'].value = subTotals['E'] || 0;
record.record['F合計'].value = subTotals['F'] || 0;
kintone.app.record.set(record);
});
})();
どうして動作されないのかわからなく、アドバイスいただきたいです
よろしくお願いします