プラグインのフィールド値合計行表示への対応

一覧表に合計値を表示させるために「フィールド値合計表示」プラグインを取り込みましたが。数値フィールドの設定が必要です。計算フィールドで設定していたフォームを数値に変えたところ、計算式が設定できないため下記のようにJsを組んでみましたが反応しません。どなたかアドバイスいただけませんか。

※手数料を入力すると販売価格に税込+手数料の合計値が入るつもりで作成しました。

よろしくお願いいたします。

(function() {
    “use strict”;

 // 登録・編集・詳細表示イベント
 var events = ['app.record.create.change.手数料,‘app.record.edit.change.手数料’];
            
 kintone.events.on(events, function (event) {  

var rec = event.record;

  rec[‘販売価格’][‘value’] = Number(rec[‘税込’][‘value’])+Number(rec[‘手数料’][‘value’]);
  return event;
 });

})();

工藤 淳様

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

「app.record.create.change.手数料」の閉じのクォーテーションがありませんがそれが原因ではないでしょうか?

江田様

お世話になります。

御指示の修正後、チャレンジしましたが、思うように動きません。

再度掲示致します。アドバイス頂ければ助かりますので、よろしくお願いいたします。

(function() {
    “use strict”;

 // 登録・編集・詳細表示イベント
 var events = [‘app.record.create.change.手数料’,‘app.record.edit.change.手数料’];
            
 kintone.events.on(events, function (event) {
  var rec = event.record;

  rec[‘販売価格’][‘value’] = Number(rec[‘税込’][‘value’])+Number(rec[‘手数料’][‘value’]);
  return event;
 });

})();

工藤さん

> ※手数料を入力すると販売価格に税込+手数料の合計値が入るつもりで作成しました。

手数料を手入力したタイミングでは値がレコードに保存されていないため、rec[‘手数料’][‘value’]がundefinedなのではないでしょうか?

kintone.app.record.get()で手入力した値を取得してあげる必要がありそうに思います。

 

高田様

お世話になります。

Number(rec[‘手数料’][‘value’]);のフィールドを確認しましたが計算式ですぐに数字が反映される仕組みにしておりました。

ほかにお気づきの点があればご教示ください。

工藤さん

> Number(rec[‘手数料’][‘value’]);のフィールドを確認しましたが計算式ですぐに数字が反映される仕組みにしておりました。

情報が不足しているので確認したいのですが、ここで出てくる’手数料’は計算フィールドでしょうか?

計算フィールドである場合、changeイベントの対象外となります。対象にできるフィールド詳細は下記ページの「フィールドコードに指定可能なフィールド」をご参照ください。

https://developer.cybozu.io/hc/ja/articles/201941984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%BF%BD%E5%8A%A0%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88 

高田様

お世話になります。手数料=計算、販売価格=計算、税込=計算の設定でした。

基本がわかっていない部分があり、色々なブログやサイボウズサイトを参考に見よう見まねで展開しているため、十分理解できていないこともあり、やり取りがピンボケになることご勘弁ください。changeイベントに置き換えてチャレンジしてみます。

工藤さん

私の方こそ、言葉足らずで申し訳ありません。もう一度だけ今回の課題と状況を整理してみましょう。

現在のやり取りで判明しているのは下記の認識です。

1.「フィールド値合計表示」プラグインを取り込みたいが、計算フィールドで設定しているフォームでは合計表示ができない。

2. 合計表示に対応するため、計算フィールドで設定していたフォームを数値に変更。計算用にJsを組んでみたが反応しない。

3. アプリ内には「手数料・販売価格・税込」のフィールドがあり、現在は計算フィールド(?)である。

 

項目2の文面を見て、「手数料・販売価格・税込」は計算フィールドではなく数値である、と判断した次第でした。

恐らくですが上記3フィールドを数値フィールドにしてあげるとJsが動作しない件は解決するかと思います。

(私の環境では3フィールドとも数値フィールドに変更後、手数料を入力すると掲載のJsが動作することを確認できております。)

高田様

改めてアドバイスをもとに見直しましたが、数値フィールドでは計算式が設定できないため、手数料・税込を数値フィールドに変えると

手数料・税込の計算結果が消えるため、そもそも成り立たなくなってしまいます。手数料・税込もJsで計算させるイメージで組み直しを考えるべきでしょうか。

御辛抱いただければ、あと一つでもアドバイスいただきたく。

よろしくお願いいたします。

工藤さん

・計算フィールドに対してはchangeイベントが使用できない。

・計算フィールドに対してはJsによる値取得は可能だが、値の変更ができない。

・計算フィールドではプラグインによる合計表示ができない。

上記仕様を踏まえ、工藤さんの仰る通り手数料・税込も数値フィールド化しておくことで今後のカスタマイズが柔軟に対応できるかと思います。

月並みな回答で恐縮ですが、参考になりますと幸いです。

高田様

ありがとうございました。身に付けるべくチャレンジしてみます。