お世話になります。
大変恐れ入りますが
行き詰ってしまったので教えていただけると助かります。
現在、下記のような図書館アプリを作っております。
本は予め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 さま
お世話になります。
細かいところを確認して
とりあえず、動くようになりました。
これであっているのかわかりませんが、
ありがとうございました。
(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;
});
})();