新規投稿
フォローする

サブテーブル内の日付フィールドA、Bの差(期間)を、同じテーブル内の日付フィールドCに表示させたい

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

 

同じサブテーブル内の〈日付フィールドA〉〈日付フィールドB〉の差の期間を〈日付フィールドC〉に表示させたいです。

例)A【2023-01-01】/B【2023-12-31】/C【1年(または365日など)】

 

こちらの処理は実装可能でしょうか?

 

JavaScript初心者のため、自分でここまで書きましたが時間だけが過ぎるので質問させていただきました。

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

(function() {
  'use strict';
  
  //レコード作成時にA or Bフィールドを変更、レコード編集時にBフィールドを変更、インライン編集開始時に処理を実行
  kintone.events.on(['app.record.create.change.A', 'app.record.create.change.B', 'app.record.edit.change.B', 'app.record.index.edit.show'
  ], (event) => {
    
    //変数
    let record = event.record;
    
    //
  record['テーブル'].value['C'].value = record['テーブル'].value.B.value - record['テーブル'].value.A.value
    
  });
})();
0

2件のコメント

Avatar
mionix

javaScriptで記述するのではなく計算フィールドを使用しては如何でしょうか。

望む形式で出力されるはずです。

 

もしjavaScriptを使用しなければならないのでしたら「kintone luxon」で検索してみてください。

jsで日付を扱う場合に有効なライブラリです。

また、サブテーブルの値を取得、変更するにはテーブル行を指定してあげる必要があります。

const record = event.record;

for(let i = 0; i < record['テーブル']['value'].length; i++) {
const table = record['テーブル']['value'][i]['value'];
console.log(table['A']['value']); // Aの値をコンソールに出力
}

console.log()を使用して処理状態を確認しながら進めてみてください。

1
Avatar
Ayana Hara

mionix 様

ご回答ありがとうございます。

説明不足で申し訳ございません。

 

計算フィールドを使用したところ、エラーが出たため質問させていただいたのですが…
(CONTAINTS、SUMを使用してください。というような内容)

もう一度やり直したところ、正常に表示されました!

 

お騒がせして申し訳ございませんでした…これで先に進むことができます。

大変助かりました。ありがとうございました!

1
サインインしてコメントを残してください。