□問題点
①番の保存回数を可変させるjsが単体だと動くが、複数登録したアプリに入れるとedit.showの時に動かない。
②番を削除したときに動いたので、競合していると思うのですが、原因特定に至りませんでした。
お力添え頂けますと幸いです。
①
(() => {
'use strict';
// レコード再利用ボタンで新規or再利用画面表示後、適用する
kintone.events.on('app.record.create.show', (event) => {
event.record["保存回数"]["value"] = 1;//レコード追加(新規)の場合は保存回数を1回に
return event;
});
})();
(() => {
'use strict';
kintone.events.on('app.record.edit.show', (event) => {
let field_save = event.record["保存回数"]["value"];
if (!field_save) {
event.record["保存回数"]["value"] = 2;//編集画面で空白の場合は保存回数を2回
}
else {
let counter = (event.record["保存回数"]["value"]) ? parseInt(event.record["保存回数"]["value"]) : 0; //三項演算子(条件式?trueの場合の処理:falseの場合の処理)
counter++;
event.record["保存回数"]["value"] = counter;
}
return event;
});
})();
②
(function () {
"use strict";
kintone.events.on(['app.record.edit.show', 'app.record.edit.change.契約明細TB', 'app.record.edit.change.発注明細TB'], function (event) { // レコード編集画面が表示された時、テーブルが操作された時
let a;
const loginuser = kintone.getLoginUser().name;
if (loginuser !== "〇〇〇") { //ログインユーザーが〇〇〇さんの時を除く
for (a = 0; a < 100; a++) {
document.getElementsByClassName('remove-row-image-gaia')[a].style.display = 'none'; //テーブルの削除ボタンを非表示に
}
}
return event;
});
})();
2件のコメント
競合ではなく、ここでエラーになってるためかと思います(この部分がエラーで停止するため、同様にedit.showのカスタマイズが停止します)。
ループが100回実行するものになっているので、仮にサブテーブルが必ず100行以上なら問題なく動くと思いますが、そうでない場合、例として10行のサブテーブルの11行目にある削除ボタン(存在しないもの)のスタイルにアクセスすることになり、エラーで動作が停止します。
ループの回数を工夫する(要素と同じ数のループを実行)、ループ中に続きの処理を行うか判定させる(要素が存在するか判定)等の工夫が必要です。
mls-hashimoto様
アドバイスありがとうございます。
試してみます。