お世話になっております。
下図のように、テーブル内の計算フィールドの値をテーブル外の数値フィールドに転記したいと思っています。
テーブルの行は4行以上にはならない運用です。
テーブルの数値フィールドの数値を他の数値フィールドにコピー(転記)できますか?の記事を参考にして試行錯誤しましたが、転記元が計算フィールドのためかうまくいきませんでした。
計算フィールドの値を他の数値フィールドに転記することは可能なのでしょうか?
また、可能であれば、例となるようなコードをご教示いただけないでしょうか?
よろしくお願いいたします。
kirimin さん
こんにちは!
計算フィールドでは、changeイベントは対応していないみたいなので、
各数値フィールドの changeイベントで値を拾って、JavaScript内で計算を行った上で
別のフィールドに計算結果を渡すというのはいかがでしょうか。
テーブル化されている数値A、数値B に値が入力されている場合、
1行目の計算結果を移管先A、2行目の計算結果を移管先B…といった処理を書いてみました!
参考になれば嬉しいです。
(function () {
"use strict";
var events = [
'app.record.create.change.数値A',
'app.record.create.change.数値B',
'app.record.edit.change.数値A',
'app.record.edit.change.数値B'
];
kintone.events.on(events, function (event) {
var rec = event.record;
for(var i = 0; i < rec.Table.value.length; i++){
if(rec.Table.value[i].value.数値A.value && rec.Table.value[i].value.数値B.value){
switch(i) {
case 0 :
rec.移管先A.value = Number(rec.Table.value[i].value.数値A.value) + Number(rec.Table.value[i].value.数値B.value);
break;
case 1 :
rec.移管先B.value = Number(rec.Table.value[i].value.数値A.value) + Number(rec.Table.value[i].value.数値B.value);
break;
case 2 :
rec.移管先C.value = Number(rec.Table.value[i].value.数値A.value) + Number(rec.Table.value[i].value.数値B.value);
break;
}
}
}
return event;
});
})();
文系男さま
ご教示ありがとうございます!
計算フィールドはchangeイベントに対応していないのですね、知りませんでした。
コードの例示もありがとうございます、計算式の書き方などとても勉強になります。
いただいたコードをもとに、ぶじ希望通りの動作をさせることができました!
重ねてお礼申し上げます。
kirimin さん
無事、希望通りの動作をさせることができたとのこと、承知しました!
お役にたてたようで良かったです^^