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;
});
})();
system
(system)
クローズされました:
6
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。