テーブル内のフィールドデータを別のフィールドへコピーしたい(日付)

自力でもうまくいかず・・・こちらの類似投稿内容でもやってみましたがダメでした。

〇行いたいこと〇

「利用内容」テーブルの中にある「値引終了日」フィールドをコピーして

テーブル外の『基準日』フィールドに表示したいです。

 

フィールド名とフィールドコードは同じものです。

 

お力添えお願いいたします。

 

 

値引終了日をコピーして基準日~とのことなので、app.record.create.change~とapp.record.edit.change~の後ろが.基準日になってるので、.値引終了日に変えてあげればそちらの変更にまずは反応しますね。

あと、コードは画像でなく、コード自体を張り付けてコード選択してコードブロック(こちらの編集時のアイコンにある)で投稿した方がより良いです!

nabe様、ご連絡ありがとうございます。

画像ではなく・・・

承知しました。何分初めて利用させていただくもので正しく使えておらず申し訳ございません。

ご指摘のところの変更を行ったものでございます。

あっておりますでしょうか?

(function () {
"use strict";
kintone.events.on(['app.record.create.change.値引終了日', 'app.record.edit.change.値引終了日'], function (event) {

var rec = event.record;

if(!rec.値引終了日.value) {
rec.値引終了日.value = rec.Table.value[0].value.基準日.value;
} else {
for(var i = 0; i < rec.Table.value.length; i++) {
if(rec.値引終了日.value < rec.Table.value[i].value.基準日.value) {
rec.値引終了日.value = rec.Table.value[i].value.基準日.value;
}
}
}
return event;
});
})();

changeイベント部分はこちらで大丈夫だと思います。

値引終了日が変化したときに外にある基準日フィールドに最大値を入れたいのかと思いますが、

ちなみにこの基準日は単体の日付フィールドでしょうか?それとも別のテーブル内に入っている?ということでしょうかね?

nabe様

ありがとうございます。

そうです。値引終了日が変化した際、基準日フィールドに同期したものを表示したいです。

 

また、単体の日付フィールドとなっております。

下記のような形でいかがでしょうか。

changeのeventでevent.changes.row.value[“値引終了日”].valueという形でサブテーブルの変更した内容が把握できるので、その値と比較させて大きければ等で処理してみました。

(function () {
    "use strict";
    kintone.events.on(['app.record.create.change.値引終了日', 'app.record.edit.change.値引終了日'], function (event) {
        const record = event.record
        // 変更した値引の終了日
        const date = new Date(event.changes.row.value["値引終了日"].value)
        const targetDate = new Date(record["基準日"].value)
        // 変更後値引終了日入ってなかったら終了
      if (!date) { return }
        // 基準日に値が入ってるか
        if (targetDate) {
            // 値引終了日が基準日より大きかったら書き換え
            if (date > targetDate) {
                record["基準日"].value = event.changes.row.value["値引終了日"].value
            }
        } else {
            // 基準日に値が入っていなければ値引終了日の日付を入れる
            record["基準日"].value = event.changes.row.value["値引終了日"].value

        }

        return event;
    });
})();

nabe様

私のやり方が間違っているのでしょうか?

やはりうまく作動しません。

何か正しいやり方があるのでしょうか?ご教示ください。

よろしくお願いいたします。

エラー内容を確認したいのですが、コンソール上のエラーはどのようになってますでしょうか?

また、各フィールド名は正しく設定されてますでしょうか?

あの、横からすみません。

もしかして、そのままコピペして、「セミコロンがない・・・」とかではないでしょうか?

失礼しました(汗)

nabe様

遅くなってしまい申し訳ございません。

コンソールでは

「Unchecked runtime.lastError: The message port closed before a response was received.」と出ております。

chromeの拡張機能を無効化したところ消えました。

また、「This XML file does not appear to have any style information associated with it. The document tree is shown below.」と問題とは出ておりますがあまり気にしなくていいような感じですが気に留めたほうがいいでしょうか?

 

 

 

らいと様

ありがとうございます。

確かにJSEdit four kintoneではセミコロンがないといった表示も出ております。