【フォームブリッジ】経過日数の計算について

フィールドコード「起票日時」(日時項目)から処理日までの経過日数を、フィールドコード「経過日数」へ設定して表示させたいと考えております。

その際、フィールドコード「完了日」に値が入っているものについては計算しないかたちとしたいのですが、どのようなコードになりますでしょうか。

サンプルコードを頂けると助かります。

どうぞ、よろしくお願いいたします。

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

cstapの友利と申します。

経過日数のフィールドを文字列にして以下のコードを読み込むことで可能です。

(function() {

"use strict";

const start = '起票日時のフィールドコード';
const period = '経過日数(文字列)のフィールドコード';
const complete = '完了日のフィールドコード';

fb.events.fields[start].changed.push(function (state) {
        const now = new Date();
        if (state.record[complete].value) {
            state.record[period].value = '';
return state;
        }
        state.record[period].value = Math.floor((now - state.record[start].value) / 86400000);
        return state;
})

})();

cstap 友利様

ご回答いただき、ありがとうございます!

上記、試してみます。

トヨクモ 友利様

上記、想定通りの内容となりますたのですが、フォームブリッジを表示する際も同じように

計算をおこないたいと考えております。

以下の処理で同様の処理を追加しましたが、計算がされない状態で困っております。

fb.events.fields[start].created

fb.events.form.created

対処方法をご教示頂ければと思います。よろしくお願いいたします。

トヨクモ 友利様

上記、自己解決しました。

created処理での日時項目が、日付と認識されていなかったので

DATEのインスタンスを作成することで、算出がおこなえました。

 

const start = ‘起票日時のフィールドコード’;

var date2 = new Date(state.record[start].value)
state.record[period].value = Math.floor((now - date2) / 86400000);

 

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