サブテーブルに行を追加した時の時刻自動計算がたまに違う

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

ボタン押下でテーブルに行を追加したいのですが、数回に1回の頻度で自動計算の結果が計算式と異なる結果になります。

テーブル名:Table

開始時刻:時刻フィールド

終了時刻:時刻フィールド

作業時間:計算フィールド(終了時刻-開始時刻)

【例】以下の行を追加すると作業時間が3時間になる時がある

開始時刻:09:00

終了時刻:10:00

作業時間:0←自動計算で1時間になる

  kintone.events.on('app.record.create.show', (event) => {
    if (document.getElementById('button') !== null) return event;
    const button = document.createElement('button');
    button.id = 'button';
    button.innerText = 'ボタン';
    button.onclick = () => {
      setTable();
    };
    kintone.app.record.getSpaceElement('btn_space').appendChild(button);
    return event;
  });
  function setTable() {
    const rec = kintone.app.record.get();
    rec.record.Table.value.push({
      id: null,
      value: {
        '開始時刻': {
          type: 'TIME',
          value: '09:00'
        },
        '終了時刻': {
          type: 'TIME',
          value: '10:00'
        },
        '作業時間': {
          type: 'CALC',
          value: 0
        }
      }
    });
    kintone.app.record.set({record: rec.record});
  }

異なる計算結果の行が追加された後に「手動」でテーブルの行追加等を行うと、作業時間は正しい時間(1時間)に再計算されます。

ブラウザの問題かと思いGoogleChromeとEdgeで試しましたが両方とも同じ現象が発生します。

この現象の解決方法などありましたらご教授いただけないでしょうか?

manadigi さん

試してみたところ、

フォームにて開始時刻フィールドと終了時刻フィールドの初期値を09:00、10:00に設定すると

正しく計算されるらしいです。

おそらく計算タイミングによって、初期値をみて計算する場合もあると思います。

 

akika様

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

登録値をフィールドの初期値に設定したら現象が発生しなくなりました。

計算タイミングによって、初期値を参照して計算するのは仕様なのでしょうね。

検証して頂きありがとうございます。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。