新規投稿
フォローする

【フォームブリッジ】サブテーブルの日付項目連動について

フォームブリッジのサブテーブルに2つの日付フィールド(開始日と終了日)があり、開始日を指定すると終了日に2年後の日付が表示されるように致したく下記の通りjavascriptを設定してみましたが
2行目以降が期待した動作になりません。

(function() {
"use strict";
fb.events.fields.receipts.fields.SP_STT_DAY.changed = [function (state, params) {
if (params.index === 0) {
var date = params.value;
var limit = moment(date).subtract(-2, 'year').format("YYYY-MM-DD");
state.record.receipts.value[0].value.SP_END_DAY.value = limit;
}
return state;
}];
})();

kintoneで同様のことを行う場合は、下記コードで実現できているのですが、同様のことをフォームブリッジで行う場合どの様にjavascriptを書けばよいかご教示頂けると助かります。
(kintoneで実現する場合)

(function() {
"use strict";
var events = ['app.record.create.change.SP_STT_DATE','app.record.edit.change.SP_STT_DATE'];
kintone.events.on(events, function(event) {
var changes = event.changes;
var date = changes['row'].value['SP_STT_DATE'].value;
var limit = moment(date).subtract(-2, 'year').format("YYYY-MM-DD");
changes['row'].value['SP_END_DATE'].value = limit;
return event;
});
})();
0

2件のコメント

Avatar
友利優希

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

トヨクモの友利と申します。

 

以下のjsのコードで実現可能です。

(function() {

"use strict";
const table = 'table' //サブテーブルのフィールドコード
const start = 'start' //開始日のフィールドコード
const end = 'end' //終了日のフィールドコード
fb.events.fields['table'].fields[start].changed = [function (state, params) {
const date = new Date(params.value)
const endDate = new Date(date.setFullYear(date.getFullYear()+2))
state.record[table].value[params.index].value[end].value = endDate
return state;
}];
})();
0
Avatar
uto

友利様

お世話になっております。アドバイス頂いたコードに下記の修正を加え、やりたいことが実現できました。

fb.events.fields['table'].fields[start].changed = [function (state, params) {

fb.events.fields[table].fields[start].changed = [function (state, params) {

有難うございました。

0
ログインしてコメントを残してください。