イベントのタイミング

kintone初心者、javaScript初心者の吉田と言います。

始めてのJSコードを作成して試行錯誤中ですが困っております。

ご教授願います。

ラジオボタンの選択により税額の計算結果を表示するコードを作成し

一応動く事に成功しました。

しかし、現時点でラジオボタンを変更した時のみしかイベントが発動しません。

出来れば金額が変更、もしくは追加入力等された場合にもイベント発動させたいのですが金額を編集中は小計が#N/A!になっているせいかと思っているのですが現時点のコードでは税額がNaNになってしまいます。

このような場合、レコードの保存前に税額を計算させるイベントはどのようなものになるのでしょうか?

よろしくお願いします。

 

/**

* q:ラジオボタン:消費税有無(消費税込、消費税別)

* a:数値フィールド:小計

* B:数値フィールド:税率(規定値0.08)

*/

(function() {

“use strict”;

// 登録、編集画面表示時の処理

kintone.events.on([“app.record.edit.show”, “app.record.create.show”], function(event) {

// 税額を編集不可にする

event.record.税額.disabled=true;

returnevent;

});

// ラジオボタン消費税有無をクリックした時の処理、小計の値が変更になった時

var events = [‘app.record.create.change.消費税有無’,‘app.record.edit.change.消費税有無’,‘app.record.edit.change.金額’]

kintone.events.on(events,function(event) {

varrecord=event.record;

//

// 消費税有無 = 消費税有無のデータ q

// 小計 = 小計の値 a

varq=record.消費税有無.value;

vara=parseFloat(record.小計.value);

varb=parseFloat(record.税率.value);

// 消費税有無

if (q==“消費税別”) {

record.税額.value=parseInt(a*b);

} else {

record.税額.value=0;

}

returnevent;

});

})();

吉田さん、こんにちは。

保存実行前のイベントは、以下の2つになります。

  • app.record.create.submit 新規レコード追加からの保存実行前
  • app.record.edit.submit レコード編集画面からの保存実行前

今回のようなケースでは、入力中に結果を確認しながら編集したい箇所にレコードの値変更イベントを最低限使って、
保存実行前イベントですべての計算を実行する、でもいいかもしれませんね。

 

なお、イベントについてはこちらのページにまとまっていますので、ぜひ参考にしてみてください。

https://developer.cybozu.io/hc/ja/articles/360000361686

 

松田さん、返信ありがとうございます。

 リンクを貼っていただいた一覧を見るにテーブルのデータはイベント対応してないんですね。

松田さんのおすすめの方向で設計していこうと思います。

ありがとうございました。

吉田