お世話になっております。
以下の機能を実装できればと思うのですが、JSを作成しても上手く作動しません。
JSについて、誤っている箇所、修正点をご教示いただけますと幸いです。
何卒宜しくお願いいたします。
【機能】
フィールドコードが「業務委託料税抜」であるフィールドに数値を入力。
フィールドコードが「源泉徴収税率」であるラジオボタンで、「源泉徴収なし」「10.21%」「20.42%」のいずれかを選択。
フィールドコードが「源泉徴収税額」であるフィールドに、計算結果を表示。
・「源泉徴収なし」の場合、「源泉徴収税額」に0を表示
・「10.21%」の場合、「源泉徴収税額」に「業務委託料税抜」× 10.21%の計算結果を表示
・「20.42%」の場合、「源泉徴収税額」に「業務委託料税抜」× 20.42%の計算結果を表示
【作成したJS】
(function() {
‘use strict’;
kintone.events.on(‘app.record.create.change.源泉徴収税率’, function(event) {
var gyo = kintone.app.record.get(業務委託料税抜);
var genri = event.changes.field.value;
var genga = 0;
if (genri === “源泉徴収なし”) {
genga = 0;
} else if (genri === “10.21%”) {
genga = gyo * 0.1021;
} else if (genri === “20.42%”) {
genga = gyo * 0.2042;
}
event.record[“源泉徴収税額”].value = genga;
return event;
});
})();
マスダさん
5行目の kintone.app.record.get()ですが、イベントハンドラ内では実行できない仕様です。
この記事の注意事項のところに詳細が書いてありました!
なので、今回は
var gyo = kintone.app.record.get(業務委託料税抜);
ではなく
var gyo = event.record[‘業務委託料税抜’].value;
で実現できると思います!
HANSA様
お世話になっております。ご教示いただきまして、誠にありがとうございました。
if文の構文も少しおかしかった様なので、以下のとおり修正したのですが、
ラジオボタンを変更しても「源泉徴収税額」のフィールドには未だ何も表示されません。
大変恐縮ではございますが、考えられる原因や、構文の誤りをご教示いただけますと幸いです。
何卒宜しくお願いいたします。
【JS】
(function() {
‘use strict’;
kintone.events.on(‘app.record.edit.change.源泉徴収税率’, function(event) {
var gyo = event.record[‘業務委託料税抜’].value;
var genri = event.changes.field.value;
var genga = 0;
if (genri === ‘源泉徴収なし’) {
genga = 0;
} else if (genri === ‘10.21%’) {
genga = gyo * 0.1021;
} else if (genri === ‘20.42%’) {
genga = gyo * 0.2042;
}
event.record[‘源泉徴収税額’].value = genga;
return event;
});
})();
マスダさん
返信で提示していただいたレコードを、
先ほど作成したアプリに入れてみたところ、期待通りに動きました。
1つ目のコードと2つ目のコードでイベントが変わっていますが、
編集画面での検証はできていますでしょうか。
また、初歩的なミスですが、フィールドコードに間違いはないでしょうか。
一度こちらの記事を参考にデバッグしていただき、エラー内容を提示していただければ解決できるかもしれません。
https://developer.cybozu.io/hc/ja/articles/207613916
HANSA様
お世話になっております。
早速ご確認、ご返信いただきまして、大変ありがとうございます。
確認したところ、JSの文字コードの設定がUTF-8になっていなかったため、修正しました。
また、イベントについても、edit.changeだけでなく、create.changeも加えたところ、
レコード作成時、編集時共に動作するようになりました。
この度は詳細にご教示いただきまして、誠にありがとうございました。
今後ともどうぞ宜しくお願いいたします。