新規投稿
フォローする

設定日2週間前の日付を自動入力

いつもお世話になっております。
設定日の2週間前の日付を、別の日付フィールドに自動入力されるようにカスタマイズしたいです。
書いてみましたが、うまく動作せず。
恐らく event.record['リミット']['value'] = limit;
の部分がおかしいのだと思います。
お忙しいところ恐れ入りますが、ご教示の程お願いいたします。

(function() {
"use strict";
var events = ['app.record.edit.submit','app.record.create.submit','app.record.index.edit.submit'];
kintone.events.on(events, function(event) {
var record = event.record;

//予定の2週間前の日付を取得
var limit = record['予定']['value'] - (24*60*60*14);

event.record['リミット']['value'] = limit;
return event;
});
})();

0

2件のコメント

Avatar
たけちょ

natsuki さん

デバッグしてみると、どこがうまくいっていないのか分かると思います。
動かない?そんな時はデバッグをしてみよう!入門編

natsuki さんの記載してくださったコードを見てみました。

10行目で「リミット」フィールドに書き換えたい変数「limit」の中身が「limit = NaN」になっていて、ここがうまくいっていないみたいです。
なので、変数「limit」を定義している8行目を修正する必要があります。

kintoneの日付の計算は「Moment.js」というライブラリを使うとカスタマイズしやすくなります。
Moment.js を利用して、日時フィールドのフォーマットをカスタマイズする
moment.js の使い方

以下のような感じでうまくいくと思います。

https://js.cybozu.com/momentjs/2.24.0/moment.min.js を追加するの忘れないようにしてください

(function() {
    "use strict";
    var events = ['app.record.edit.submit', 'app.record.create.submit', 'app.record.index.edit.submit'];
    kintone.events.on(events, function(event) {
        var record = event.record;    

        // 予定の日付を取得
        var date = record['予定'].value;     

        // Moment.jsを使って2週間前を計算、日付をフォーマット
        var limit =moment(date).subtract(14, 'day').format("YYYY-MM-DD");

        // リミットの日付をセットする
        record['リミット']['value'] = limit;
        return event;
    });
})();
たけちょにより編集されました
1
Avatar
なつ

たけちよ様

分かりやすくご丁寧な回答ありがとうございます。お礼が遅くなってしまいすみません。

教えていただいた通り、Moment.jsを使うことで動作しました。

たけちよ様のおかげです。大変助かりました。ありがとうございます。

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