ルックアップフィールド含めた合計について

 いつも大変お世話になっております。

(function () {
“use strict”;
kintone.events.on([‘app.record.create.submit’, ‘app.record.edit.submit’], function (event){
var record = event.record;
var 料金A = Number(record[‘料金A’].value);
var 料金B = Number(record[‘料金B’].value);
var 料金C = Number(record[‘料金C’].value);
var 値引き = Number(record[‘値引き’].value);
var 小計 =record[‘小計’].value;

if (料金A !== “undefined” && 料金B !== “undefined” && 料金C !== “undefined” && 小計 !== “undefined” ||料金A == “undefined” || 料金B == “undefined” || 料金C == “undefined” || 小計 == “undefined” ) {
小計 = Math.floor(料金A + 料金B + 料金C - 値引き) ;
}
record[‘小計’].value = 小計;
return event;
});

kintone.events.on([‘app.record.edit.show’, ‘app.record.create.show’], function (event) {
event.record[‘小計’].disabled = true;

return event;
});
})();

初心者で大変恐れ入ります。以下の2点について、可能かどうか、可能であればぜひご教授いただきたく投稿させていただきました。どうぞよろしくお願い致します。

①ルックアップフィールドや数値フィールドが空の場合⇒小計がエラーになる。

②すべて項目を埋めた場合、保存後に小計が計算されて、表示する⇒保存前に計算結果を表示させる

 

篠原 麗様

お世話になっております。
cstapの江田です。

①ルックアップフィールドや数値フィールドが空の場合は保存できないようにする。
②すべて項目を埋めた時に小計の計算値を表示する。
の2点を実装するという解釈で宜しかったでしょうか?

もしそのようでしたら、JavaScriptを使用せずに、
1.料金A,料金B,料金C,値引きを必須項目に設定する。
2.小計を計算フィールドにする。
という形で実装できるかと思います。

ルックアップフィールドのchangeイベントは取得できないので、JavaScriptでリアルタイムに計算するのは困難かと思います。
https://developer.cybozu.io/hc/ja/articles/201941984#step3

江田 様

いつもお世話になっております。

いつもアドバイスいただき、本当にありがとうございます。

とても勉強になりました。