テーブル内の日付けが入力されたら、テーブル外のラジオボタンの値を変更したい

お世話になります。

大変恐れ入りますが

行き詰ってしまったので教えていただけると助かります。

現在、下記のような図書館アプリを作っております。

本は予め1レコード1冊単位で管理し、レコード内で貸し借りの共有をするために貸出日、返却日などテーブルで履歴を作っていく方法をとりました。

この時、貸出日に日付が入ったら、貸し出し状況のラジオボタンを

貸出中にし、返却日に日付が入ったら在庫(返却済)としたいです。

お分かりになれば、ぜひご教授願います。

 

 

(function() {
“use strict”;
var events = [‘app.record.create.change.ラジオボタン’,‘app.record.edit.ラジオボタン’,‘app.record.create.change.日付’,‘app.record.edit.日付’];

kintone.events.on(events, function(event) {
var record = event.record;
//要素取得
if (record[‘日付’][‘value’]) { // 値が設定されている場合
process = “貸出中”;
}else {
process = “在庫(返却済)”;
}
record[‘ラジオボタン’][‘value’] = process;

return event;

});
})();

Riorioさん、こんにちは。プロジェクト・アスノートの松田です。

 

まず、カスタマイズで実現する方法ですが、

イベントはテーブル内の両日付フィールドの変更時イベント(新規追加、編集)ですね。

そして、値変更時イベントのドキュメントにあるように、changes.row やchangesで、変更した

フィールドの情報、テーブルの場合は変更した行の情報が取れますので、

それを使って、値が入ったことを判断し、ラジオボタンの値を変更する、という流れですね。

あと、記載されているコードが全文だとすると、processという変数が定義されていません。

 

あと、カスタマイズを行わずに作る方法としては、プロセス管理を使うというやり方があると思います。

ステータスを、在庫(返却済)、貸出中 を定義して、2つのステータスを交互に動くようにプロセスを設定。

履歴データについては、「プロセス管理履歴記録プラグイン」を使ってテーブルに記録するという方法もあると

思います。この場合、部署名は入りませんが、貸し出し/返却時の利用者の操作としてはシンプルになりますね。

https://caryncolabo.com/kintone_plugin/statuslogging/

 

 

Shotaro Matsuda さま

 

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

プロセス管理を使うこともできるのですね。

現在、js制作中です。

アドバイスを基にもう少し進めてみます。

誠にありがとうございます!!

Shotaro Matsuda さま

お世話になります。

細かいところを確認して

とりあえず、動くようになりました。

これであっているのかわかりませんが、

ありがとうございました。

(function() {
“use strict”;
var events = [‘app.record.create.change.貸出日’,
‘app.record.edit.change.貸出日’,
‘app.record.create.change.返却日’,
‘app.record.edit.change.返却日’];

kintone.events.on(events, function(event) {

switch (event.type) {
case ‘app.record.create.change.貸出日’:
case ‘app.record.edit.change.貸出日’:
var changeRowDate = event.changes.row.value[‘貸出日’].value;
var record = event.record;
var process = record[‘ラジオボタン’][‘value’];
//要素取得
if (changeRowDate) { // 値が設定されている場合
process = “貸出中”;
}else{
process = “在庫(返却済)”;
}
record[‘ラジオボタン’][‘value’] = process;

break;

case ‘app.record.create.change.返却日’:
case ‘app.record.edit.change.返却日’:

var record = event.record;
var process = record[‘ラジオボタン’][‘value’];
var changeRowDate2 = event.changes.row.value[‘返却日’].value;
//要素取得
if (changeRowDate2) { // 値が設定されている場合
process = “在庫(返却済)”;
}else{
process = “貸出中”;
}
record[‘ラジオボタン’][‘value’] = process;

break;
}

return event;

});
})();