詳細画面で日付項目に自動設定したい

計算項目において、発生日から何日経過しているかを算出したいので、本日日付を設定して、経過日数を表示したい。

ネットにあったサンプルを元に、以下のスクリプトを作成しましたが、追加画面及び編集画面では、設定することはできたが、一覧から詳細画面の時点では、設定できなかった。項目が編集状態でないと設定できないんだろうと、一旦諦めましたが、このような事を実現する方法はありませんでしょうか?

参考コード

(function() {
	'use strict';
	kintone.events.on(['app.record.detail.show','app.record.create.show','app.record.edit.show'], function(event) {
		const record = event.record;
		const d = new Date();
		const formatDate = (d) => {
			const formatd = d.getFullYear() + "-" + String(d.getMonth() + 1).padStart(2,'0') + "-" + d.getDate();
			return formatd;
		}
		record['本日']['value'] = formatDate(d);
		return event;
	});
})();```

そういうのは要件次第でやる事が変わってきます。

表示のみでいいのか。
データを保持する必要があるなら、自動更新するのか、手動更新するのか。

説明不足で申し訳ありません。
やりたいことは、一覧から詳細画面を開いた際に、本日を自動更新して、本日に関連する計算項目が更新できれば大丈夫です。

これでできました。

(() => {
    'use strict';

    // レコードを更新する関数
    const updateRecord = (event) => {
        const record = event.record;
        const today = new Date().toISOString().split('T')[0];

        // 本日の値が今日の日付じゃなかったら今日にする
        if (record['本日'].value !== today) {
            record['本日'].value = today;
            const body = {
                app: kintone.app.getId(),
                id: record.$id.value,
                record: {
                    '本日': {
                        value: today
                    }
                }
            };

            // レコードを更新するAPIを呼び出し、成功したらページをリロード
            return kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body)
                .then(() => {
                    location.reload();
                })
                .catch((error) => {
                    console.error(error);
                });
        }

        return event;
    };

    // レコード詳細画面が表示されたときに関数を実行
    kintone.events.on('app.record.detail.show', updateRecord);
})();

ありがとうございます。確かに更新されて、計算項目も更新されました。
ただ、本日が今日で無い場合は、ちらつきがありましたので、完了日があれば更新しない等の仕様を追加して、必要以上のちらつきが出ないように工夫してみます。
大変助かりました。頂いた内容もノウハウとして勉強させていただきます。

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