いつもお世話になっております。
設定日の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;
});
})();
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;
});
})();
たけちよ様
分かりやすくご丁寧な回答ありがとうございます。お礼が遅くなってしまいすみません。
教えていただいた通り、Moment.jsを使うことで動作しました。
たけちよ様のおかげです。大変助かりました。ありがとうございます。