一覧画面表示orボタンで、JS計算後の値で一括更新(入居期間を更新したい)

各レコードで入居日を入力すると「〇年〇ヶ月〇日」を文字列フィールドに代入させることは以下のコードで出来ました。

(function() {
'use strict';
kintone.events.on([
'app.record.detail.show',
'app.record.edit.change.入居日',
'app.record.index.edit.change.入居日'
], function(event) {
var record = event.record;

var diffY = (new Date(new Date() - new Date(record['入居日'].value))).getUTCFullYear() -1970;//なんかデフォの西暦が1970年だからマイナス1970
var diffM = (new Date(new Date() - new Date(record['入居日'].value))).getUTCMonth();
var diffD = (new Date(new Date() - new Date(record['入居日'].value))).getUTCDate();

var Keika = diffY +'年'+ diffM + 'ヵ月' + diffD + '日';

record['入居日数'].value = Keika;
 console.log(Keika);
 
 return event;
});
})();

が、レコードを都度開かないと期間が更新されないことが分かりました。

色々検索してみて上記コードを組み込んでみたりしましたが、以下のようなエラーが出てしまいます。

更新処理はできれば一覧表示した時、もしくは動作が重くなるようであれば都度ボタンで更新という形を取りたいです。

なにかご教示いただけると幸いです。よろしくお願いいたします。

上記のコード内でindexイベントがありますが、indexイベント内は
event.recordというオブジェクトではなく、
event.recordsが入っています。
エラーは定義されていないものを参照しようとしているためです、

レコード件数がどれほどかわかりませんが、ボタン押下でレコード全件取得を行った後に更新をかける方法が最適かと思います。
繰り返し処理の中に上記ご自身で作成された処理を行えば可能です。
全件処理はkintone JavaScript clientを利用すると容易にできます。

URL:https://unpkg.com/@kintone/rest-api-client@latest/umd/KintoneRestAPIClient.min.js

上記のURLをアプリのjsで読み込んで利用することができます。

 

>なにかご教授いただけると幸いです。

とありますが、どのレベルの回答を求めているのかわかりません、
例えば考え方であったり、具体的なソースをここまで書いてみたが、わからない
等であればもっと回答しやすいかと思います。

岡崎 様

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

record「s」の認識が理解しきれていませんでした…。

また、kintoneJavaScriptClientは知らなかったのでリンク参照して試してみます!

 

検索すると様々な書き方があって頭の中でゴチャゴチャしてしまい、

つい丸投げの形になってしまいました・・・質問の仕方まで気にかけていただきすみません。

また試してみて、解決する/しないに関わらず追記いたします。ありがとうございます!