テーブルを編集不可に設定する

先日こちらで質問させていただき、ほとんど完成したのですが

1点だけクリアできない問題がありご質問させていただきました。

特定のステータスの時に、編集不可にするのですが、その中にテーブルも

あります。

行指定では出来たのですが、何行になっているか分からないテーブルを

全て編集不可にしたいです。

やり方が分からず、どなたかアドバイス頂ければ幸いです。

(function () {
“use strict”;

// レコード登録/編集画面の表示時
var eventsCreateShow = [‘app.record.create.show’, ‘app.record.index.create.show’,
‘app.record.edit.show’, ‘app.record.index.edit.show’];
kintone.events.on(eventsCreateShow, function(event){
var record = event.record;
var record_t = event.record[‘サブテーブル名’].value;
var status = record[‘ステータス’].value;

// ステータス変更時の自動記録する項目を設定する
switch(status){
case “case1”:
record[‘フィールドA’][‘disabled’] = true;
record[‘フィールドB’][‘disabled’] = true; 
record_t[i].value[‘フィールドC’][‘disabled’] = true;
}
return event;
});

})();

kintoneのフィールドをリードオンリーにする

テーブルの編集不可設定について

サブテーブルデータ編集不可設定したい

上記記事をご参考下さい。

西達彦 様

 

チェックボックスでテーブルの編集制御をおこなう方法

 

こちらの記事も参考になりますでしょうか?
私もサブテーブルの行数を指定せずにforEachで回す方法を教えて頂きました。

ありがとうございます!

おかげさまで編集不可に出来ました。

ただ1つ問題が発生したのですが、編集するときに+ボタンで行が追加でき

その行に対して編集が出来てしまいました。

保存後はその行の編集は不可になったのですが、追加の行自体をさせないようにするか

追加しても入力できないようにするか処理を入れる方法が分かりません。

こんにちは。

フィールド値変更時イベントで、テーブルを指定すれば、追加・削除ボタンを押したタイミングでイベントが発火します。

追加された行も取得できますので、ここで制御してみてはいかがでしょうか?

https://developer.cybozu.io/hc/ja/articles/202166270#step3

松田様

毎回コメントありがとうございます。

見落としていました。。。

record_t.forEach(function(row){
row.value[‘フィールド’][‘disabled’] = true;

これで実装できました。

1つ疑問なのですが、フィールドを1個しか指定していないのですが

そのテーブルごと編集不可になりました。

動きとしてはこれでいいのですが、理屈が分からず。。。

(テーブル内にあるすべてのフィールドを指定しようと思っていたので、手間が省けていいのですが)