[実現したい内容]
テーブル内の数値を科目ごとに集計してフィールドに入れたい
こちらのQAを見ながら、テーブル内の数値を科目ごとに集計して同じアプリ内の数値フィールドに反映することができました。
これの応用で、集計した数値を別のアプリ内の数値フィールドに反映したいです。
[課題]
こちらのQA通りにしたところ、一旦同じアプリ内に数値フィールドが表示されるので、それをルックアップして別のアプリに反映することができると思います。
ですが、運用上、同じアプリ内に数値フィールドを増やしたくありません。
どのようにすればこちらは実装できるでしょうか。
[現在使用しているJavascriptコード]
(function() {
“use strict”;
var fields = ['所属コード', '残業時間', 'テーブル'];
var kamokuInfos = {
'15555': '_15555残業時間合計',
'14688': '_14688残業時間合計',
}
var events = ["app.record.edit.show", "app.record.create.show"];
fields.forEach(function(field) {
events.push("app.record.edit.change." + field);
events.push("app.record.create.change." + field);
})
var totalFields = [];
Object.keys(kamokuInfos).forEach(function(kamoku) {
var tcode = kamokuInfos[kamoku];
if (totalFields.indexOf(tcode) < 0) {
totalFields.push(tcode);
}
});
kintone.events.on(events, function(event) {
var record = event.record;
totalFields.forEach(function(tcode) {
record[tcode].value = 0;
record[tcode].disabled = true;
});
var subTable = record['テーブル'].value;
subTable.forEach(function(rows) {
var kamoku = rows.value['所属コード'].value;
if (Object.keys(kamokuInfos).indexOf(kamoku) >= 0) {
var tcode = kamokuInfos[kamoku];
if (rows.value['残業時間'].value) {
record[tcode].value += Number(rows.value['残業時間'].value);
}
}
});
return event;
});
})();