2つの日付を比較して、新しい方の日付を、別の日付フィールドに入れたい

 AとBの日付フィールドがあり、新しい方の日付をCの日付フィールドで表示したいと考えております。

Cを計算フィールドで、IF(A>B,A,B)の計算式で「日付」形式で出す形ですと、意図した表示になりますが、Cのフィールドを絞り込みの条件とした場合、数値扱いになり、日付フィールドの条件が出てきません。

(上記は日付フィールドのときの絞り込み条件)

Cのフィールドを日付フィールドのまま、比較した日付を代入することは可能でしょうか。ご教示いただけますと幸いです。
jsに明るくないため、可能であれば、サンプルコードをいただければ大変助かります。

 

こんにちは!

一つ文字列(1行)フィールドを追加して、自動計算の計算式で

DATE_FORMAT(C, “YYYY年MM月dd日”, “Asia/Tokyo”)

のようにとして、絞り込みは文字列(1行)フィールドの方で行うのはいかがでしょうか!?

 

↓こんな感じで・・・

 

juridonさま、計算式や、画面まで分かりやすく返信いただき
誠にありがとうございます!

文字列(1行)フィールドの自動計算の計算式でも、試してはみたのですが、日付として扱われないため、断念した経緯があります。(手間を取らせて、申し訳ございませんでした)

日付フィールドですと、上記のように、いろんな日付の指定で絞り込みができ、様々な条件を追加して、データを扱えると考えています。

 

なるほどです!そういうことでしたか!

JavaScriptですとこんな感じが良いのでは!?思います!
changeイベントで(サンプルは編集時のchangeイベント)でAかBの値が変わったら
AとBを比較して大きい方をCに入れるみたいなコードにするといいと思います。

参考:https://developer.cybozu.io/hc/ja/articles/201941984#step3

kintone.events.on(["app.record.edit.change.A", "app.record.edit.change.B"],(event) => {
  const record = event.record;
  if (record.A.value > record.B.value) {
    record.C.value = record.A.value;
  } else {
    ~~~~
  }
  return event;
}

juridonさま JavaScriptのサンプルありがとうございます!

以下のコードで今のところ、思っていた動きになって、大変うれしく思います!
既存レコードの一括更新もあるので、タイミングをレコードの編集時にして、
AとBが空の場合もあるので、空の場合の条件文も追加いたしました。

(function() {
"use strict";
kintone.events.on(["app.record.edit.submit"],(event) => {
const record = event.record;
if (record.A.value > record.B.value) {
record.C.value = record.A.value;
} else {
record.C.value = record.B.value;
}
if (record.A.value == undefined ) {
record.C.value = record.B.value;
}
if (record.B.value == undefined ) {
record.C.value = record.A.value;
}
return event;
});
})();

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