いつも大変お世話になっております。
①契約:する のとき⇒契約区分&媒体&請求が必須
②さらに契約区分:特別なとき⇒特別料金&特別料金詳細が必須
③契約区分:時別以外⇒特別料金&特別料金詳細が非表示(一覧の画面では特別以外は特別料金&特別料金詳細がグレーで編集できない状態)
な動きをしたいです。コードを以下のようにしました。
(function() {
“use strict”;
//レコードの追加、編集、詳細画面で適用する
var events = [‘app.record.detail.show’,
‘app.record.create.show’,
‘app.record.create.submit’,
‘app.record.index.edit.submit’,
‘app.record.index.edit.show’,
‘app.record.index.edit.submit’,
‘app.record.index.edit.change.契約’,
‘app.record.index.edit.change.契約区分’,
‘app.record.index.edit.change.媒体’,
‘app.record.index.edit.change.請求’,
‘app.record.create.change.契約’,
‘app.record.create.change.契約区分’,
‘app.record.create.change.媒体’,
‘app.record.create.change.請求’,
‘app.record.edit.show’,
‘app.record.edit.submit’,
‘app.record.edit.change.契約’,
‘app.record.edit.change.契約区分’,
‘app.record.edit.change.媒体’,
‘app.record.edit.change.請求’,
];
kintone.events.on(events, function(event) {
var record =event.record;
var past = record.契約.value;
var past1 = record.契約区分.value;
if (past === ‘する’) {
if (!event.record.契約区分.value) {
event.record.契約区分.error = ‘契約区分を選択してください!’;
}
if (!event.record.媒体.value) {
event.record.媒体.error = ‘媒体を選択してください!’;
}
if (!event.record.請求.value) {
event.record.請求.error = ‘請求を選択してください!’;
}
}else{
record.契約区分.error = null;
record.媒体.error = null;
record.請求.error = null;
}
//フィールドの表示、非表示を切り替える
if (past1 === ‘特別’) {
kintone.app.record.setFieldShown(‘特別料金詳細’, true);
kintone.app.record.setFieldShown(‘特別料金’, true);
record.特別料金.disabled = false;
record.特別料金詳細.disabled = false;
if (!event.record.特別料金.value) {
event.record.特別料金.error = ‘特別料金を入力してください!’;
}
}else{
//特別以外を選択した場合は非表示
kintone.app.record.setFieldShown(‘特別料金’, false);
kintone.app.record.setFieldShown(‘特別料金詳細’, false);
record.特別料金詳細.value = “”;//非表示の時にvalueを空にする
record.特別料金.value = “”;
record.特別料金.disabled = true;
record.特別料金詳細.disabled = true;
}
return event;
});
})();
これで発生する問題は
①別料金&特別料金詳細が編集できない。
②一覧で編集するときも同じです。
問題は
if (past1 === ‘特別’) {
kintone.app.record.setFieldShown(‘特別料金詳細’, true);
kintone.app.record.setFieldShown(‘特別料金’, true);
record.特別料金.disabled = false;
record.特別料金詳細.disabled = false;
if (!event.record.特別料金.value) {
event.record.特別料金.error = ‘特別料金を入力してください!’;
}
の
if (!event.record.特別料金.value) {
event.record.特別料金.error = ‘特別料金を入力してください!’;
}
の部分が入ることによるみたいですが、この設定はいれたいですが、どんなふうにどこに入れればよろしいかぜひコードのご指導いただきたいです。
どうぞよろしくお願い致します。