お世話になっております。
JavaScript超初心者にて恐縮ですが、はじめてこちらへ投稿させていただきます。
タイトルの通り、関連レコード内の「実績」項目を集計して表示させたいが、
実績が入力されていても「¥0-」と表示されてうまく集計ができません。
下記の記事を元に、条件は外した状態で行ないました。
コードは以下の通りです。
(function() {
“use strict”;
//レコードの編集、詳細画面で適用する
var events = [
‘app.record.detail.show’,
‘app.record.edit.show’
]
kintone.events.on(events, function(event) {
var record = event.record;
var client_rid = event.recordId;
var related = kintone.app.getRelatedRecordsTargetAppId(‘関連レコード一覧A’);
var offset = 0;
var loop_end_flg = false;
var records = new Array();
while(!loop_end_flg){
var query = ‘案件番号="’ + client_rid +
‘" limit 100 offset ’ + offset;
query = encodeURIComponent(query);
var appUrl = kintone.api.url(’/k/v1/records’) + ‘?app=’+ related + ‘&query=’ + query;
// 同期リクエストを行う
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(“GET”, appUrl, false);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.send(null);
//取得したレコードをArrayに格納
var resp_data = JSON.parse(xmlHttp.responseText);
if(resp_data.records.length > 0){
for(var i = 0; resp_data.records.length > i; i++){
records.push(resp_data.records[i]);
}
offset += resp_data.records.length;
}else{
loop_end_flg = true;
}
}
var amount = 0;
for (var i = 0; i < records.length; i++) {
amount = amount + parseFloat(records[i].A値.value);
}
var divTotalAmount = document.createElement(‘div’);
divTotalAmount.style.fontWeight = ‘bold’;
divTotalAmount.style.textAlign = ‘right’;
divTotalAmount.style.fontSize = 12;
var wString = String(amount.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, ‘$1,’));
divTotalAmount.innerHTML = “\” + wString + “-”;
kintone.app.record.getSpaceElement(“TotalAmount”).appendChild(divTotalAmount);
return event;
});
})();
フィールドコードは以下のとおり設定しています。
・集計対象の関連レコード:“関連レコード一覧A”
・関連付けのキーとなるフィールド:“案件番号”
・集計対象となる実績のフィールド(リンク先アプリ):“A値”
うまく集計できない原因と方法を、どなたかご教示いただけないでしょうか。
どうぞ宜しくお願いいたします。