こちらの通常フィールド版の応用編となります。以前は、Kintoneにおける、通常フィールドを編集不可(非活性)の状態にするためのJavaScriptカスタマイズをご紹介いたしましたが、今回は、その対象がサブテーブル内フィールドとなります。
テーブル内フィールドへの処理となるため、少しだけコードが長くなりますが、特に難しいポイントはありません。
<サンプルコードの仕様>
・コード内の"テーブルのフィールドコード"の箇所を、対象とするサブテーブル自体のフィールドコードに差し替えてください。
・コード内の"非活性にしたいフィールドコード"の箇所を、対象とするテーブル内のフィールドコードに差し替えてください。
・row.value ~~ disabled = true; と event.record ~~ true; の行を必要分用意することで、複数のフィールドを非活性にすることが可能です。
サンプルコードを環境に合わせてご変更いただければ、かなり便利なスクリプトになるかと思いますので、ご自由にお使いください!
※ご質問にはお答えできませんので予めご承知おきくださいませ。
コード
(function () {
"use strict";
const events = ["app.record.create.show", "app.record.edit.show", "app.record.index.edit.show"];
kintone.events.on(events, function (event) {
if (event.record.テーブルのフィールドコード.value) {
for (const row of event.record.テーブルのフィールドコード.value) {
row.value.非活性にしたいフィールドコード.disabled = true;
}
}
return event;
});
const events2 = ["app.record.create.change.テーブルのフィールドコード", "app.record.edit.change.テーブルのフィールドコード"];
kintone.events.on(events2, function (event) {
if (event.changes.row) {
event.changes.row.value.非活性にしたいフィールドコード.disabled = true;
}
return event;
});
})();