自動計算してフィールドに値を入れたい

kintoneとjavascript どちらも超初心者の者です。

入力した値を元に計算してフィールドに値を入れたいだけなのですが、全く動かずエラーもなくて困っています。

①数値フィールド・・・フィールドコード 「heritage」(総額)

②数値フィールド・・・フィールドコード 「common」(人数)

③数値フィールド・・・フィールドコード 「basic」(基本報酬)

見積書を作成するのが目的のもので、①に入力された数値に応じて計算式を少し変えて、③に出力したいと考えています。

初歩的なところから間違えているかもしれませんが、どうぞご教授よろしくお願いいたします。

現在試しているソースコードが下記の通りです。

(function() {
      ‘use strict’;

       var events = [‘app.record.create.submit’, 

                             ‘app.record.edit.submit’];

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

     var record = event.record;

     var a = record.heritage.value;
     var b = record.common.value;

if(a < 36000000){

  record.basic.value = 200000 + 200000 * 0.1 * b;

  }else if(36000000 <= a <54000000){

  record.basic.value = 300000 + 300000 * 0.1 * b;

  }else if(54000000 <= a <100000000){

  record.basic.value = 400000 + 400000 * 0.1 * b;

  }else if(100000000 <= a <200000000){

  record.basic.value = 700000 + 700000 * 0.1 * b;

  }else if(200000000 <= a <300000000){

  record.basic.value = 100000 + 1000000 * 0.1 * b;

  }else if(300000000 <= a <500000000){

  record.basic.value = 1500000 + 1500000 * 0.1 * b;

  }else if(500000000 <= a <700000000){

  record.basic.value = 200000 + 2000000 * 0.1 * b;

  }else if(700000000 <= a <1000000000){

  record.basic.value = 2500000 + 2500000 * 0.1 * b;

  }else{

  record.basic.value = ‘手入力’;
  }
   return event;
  });
})();

 

 

 

 

event.recordからとった値はString型なので、Number型にする必要があります。

var a = parseInt(record.heritage.value, 10);
var b = parseInt(record.common.value, 10);

TK様

早速コメントしていただきありがとうございます。

とても勉強になります。

ご指摘いただいた訂正箇所を修正し、実行してみましたが変わらず全く反応がなくエラーも立たない状態です。。。

他にも誤りがありましたら、ぜひ引き続きご指摘よろしくお願いいたします。

すみません見落としありました。

if文の条件式なのですが、↓のように書かないとだめですね。

// } else if (36000000 <= a < 54000000) {
} else if (36000000 <= a && a < 54000000)

あと、最後のelseでrecord.basic.valueに文字入れていますが、数値フィールドに文字入れるとエラーになるので

文字列フィールドに変えたほうがいいですね!

TK様

コメントいただきありがとうございます。

基本報酬は数値フィールドから文字列フィールドに変更して、コードも修正して実行してみましたが、やはり反応がありません。。。

まだ間違えている箇所はありそうでしょうか?

何度も何度も申し訳ないです(T_T)

 

下記、現時点のソースコードです。

(function() {
‘use strict’;

var events = [‘app.record.create.submit’,
‘app.record.edit.submit’];

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

var record = event.record;

var a = parseInt(record.heritage.value,10);
var b = parseInt(record.common.value,10);

if(a < 36000000){

record.basic.value = 200000 + 200000 * 0.1 * b;

}else if(36000000 <= a && a <54000000){

record.basic.value = 300000 + 300000 * 0.1 * b;

}else if(54000000 <= a && a <100000000){

record.basic.value = 400000 + 400000 * 0.1 * b;

}else if(100000000 <= a && a <200000000){

record.basic.value = 700000 + 700000 * 0.1 * b;

}else if(200000000 <= a && a <300000000){

record.basic.value = 100000 + 1000000 * 0.1 * b;

}else if(300000000 <= a && a <500000000){

record.basic.value = 1500000 + 1500000 * 0.1 * b;

}else if(500000000 <= a && a <700000000){

record.basic.value = 200000 + 2000000 * 0.1 * b;

}else if(700000000 <= a && a <1000000000){

record.basic.value = 2500000 + 2500000 * 0.1 * b;

}else{

record.basic.value = ‘手入力’;
}
return event;
});
})();

あーここですねw

文字列になってますね!

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

できましたーーーー!!!!!

心より感謝申し上げます!!

勉強しなおします!

 

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

今後ともどうぞよろしくお願いいたします。