テーブルの項目のカウント

お世話になります。

JS初心者でつまずいてます。

いろいろ調べたのですが思い通り動作しません

是非ご教授頂ければ幸いです。

 

やりたいことは

テーブル内のドロップダウンリストで

選択した項目の各種の合計を

それぞれの数値フィールドに格納したいです。

 

フィールド名 フィールドタイプ フィールドコード 備考

テーブル テーブル テーブル

商品 ドロップダウン ドロップダウン アイテムとしてA,B,C

A合計個数 数値 数値_1

B合計個数 数値 数値_2

C合計個数 数値 数値_3

コード

(function(){
'use static';
var count = [
'app.record.create.change.ドロップダウン',
'app.record.edit.change.ドロップダウン'
];

kintone.events.on(count, function(event){
var record = event.record;
var count = record.テーブル.value.length;
var a = record['数値_1'].value;
var b = record['数値_2'].value;
var c = record['数値_3'].value;
var d = 1;
for( var i = 0; i < count; i++ ){
var commodity = record.テーブル.value[i].value.ドロップダウン.value;

switch(commodity){
case "A":
a = a + d;
break;
case "B":
b = b + d;
break;
case "C":
c = c + d;
break;
}
}
return event;
});
})();

現状は数値フィールドに値がなにも入りません。

宜しくお願い致します。

こんにちは!

return event の前に

record[“数値_1”].value = a;

 

をしないといけないと思います!

あと、

var a = record[‘数値_1’].value;

ここなのですが、数値_1が空白だと変な動きをすると思うので、

フィールドの初期値に0を入れておくとか、空白のときは0にしておく など工夫が必要かと思います。

 

それと

var a = record[‘数値_1’].value;

では文字列の数字がやってくると思うので、Number()で囲むなどして数値に変換しておくといいと思います。

 

もう一つなのですが、多分なのですが、

var a = record[‘数値_1’].value;

初期値がこれだと、ドロップダウンを変更するたび(Aを選び直すたび)にカウントアップしていくような気がします。

 

もしかしたら

数値_1がテーブル内にあるAの項目数ということでしたら、

var a = 0; としておくと良いのかもしれないです。

 

juridon様

ご教授ありがとう御座います。

無事理想の動きをする事が出来ました。

分かりやすく説明して頂きありがとう御座いました。