新規投稿
フォローする

サブテーブル内の集計について

お世話になっております。

前の投稿について質問がございます。↓

小数点(1桁)をつけて計算したいです。

例:70+2-0=72

       72+0.5-0=72.5

       72.5+1-0=73.5

小数点がついてないものには、小数点がつかないようにしたいです。

参考のソースコード等があればお教えください。

宜しくお願いいたします。

エラー情報

 小数点(1桁)をつけて計算した場合、小数点が反映されません。

利用したソースコード

(function () {
'use strict';
var events = ['app.record.create.change.倉庫1入', 'app.record.edit.change.倉庫1入', 'app.record.create.change.倉庫1出', 'app.record.edit.change.倉庫1出'];
kintone.events.on(events, function (event) {
var record = event.record;
// テーブルの行数が1だったら上段を見ない
if (record['テーブル']['value'].length == 1) {
record['テーブル']['value'][0]['value']['合計1']['value'] = parseInt(record['テーブル']['value'][0]['value']['倉庫1入']['value']) - parseInt(record['テーブル']['value'][0]['value']['倉庫1出']['value']);
} else {
for (var i = 1; i < record['テーブル']['value'].length; i++) {
record['テーブル']['value'][i]['value']['合計1']['value'] = parseInt(record['テーブル']['value'][i - 1]['value']['合計1']['value']) + parseInt(record['テーブル']['value'][i]['value']['倉庫1入']['value']) - parseInt(record['テーブル']['value'][i]['value']['倉庫1出']['value']);
}
}
return event;
});
})();

(function () {
'use strict';
var events = ['app.record.create.change.倉庫2入', 'app.record.edit.change.倉庫2入', 'app.record.create.change.倉庫2出', 'app.record.edit.change.倉庫2出'];
kintone.events.on(events, function (event) {
var record = event.record;
// テーブルの行数が1だったら上段を見ない
if (record['テーブル']['value'].length == 1) {
record['テーブル']['value'][0]['value']['合計2']['value'] = parseInt(record['テーブル']['value'][0]['value']['倉庫2入']['value']) - parseInt(record['テーブル']['value'][0]['value']['倉庫2出']['value']);
} else {
for (var i = 1; i < record['テーブル']['value'].length; i++) {
record['テーブル']['value'][i]['value']['合計2']['value'] = parseInt(record['テーブル']['value'][i - 1]['value']['合計2']['value']) + parseInt(record['テーブル']['value'][i]['value']['倉庫2入']['value']) - parseInt(record['テーブル']['value'][i]['value']['倉庫2出']['value']);
}
}
return event;
});
})();
0

4件のコメント

Avatar
Ryoji

parseIntは小数点以下を切り捨てますのでparseFloatを使えば良いかと思います。
1点質問ですが、計算をkintone標準機能ではなくカスタマイズで実装されたのはどのような意図があるのでしょうか。

1
Avatar
金城碧海

Ryoji 様

早速のご返信ありがとうございます。

parseIntをparseFloatに変更するだけでよろしいでしょうか?

 

月ごとに月末時点での在庫をExcel表にまとめております。

kintoneの標準機能だけですとトータルで集計されてしまいますので月ごとにいちいち計算するのが大変な為です。

0
Avatar
Ryoji

parseFloatに変更するだけで動くはずです。parseFloatの挙動については以下のサイトにわかりやすく書かれていますので、ご参照ください。
https://www.javadrive.jp/javascript/global_function/index2.html

今回の件ですとテーブルの行にそれぞれ計算項目を追加すれば良いのではと思いましたが、集計される際に都合が悪いということですね。

1
Avatar
金城碧海

Ryoji 様

計算できました。

ご迅速なご対応ありがたく御礼申し上げます。

0
サインインしてコメントを残してください。