0
0

【kintone】サブテーブルの行増減を禁止する方法

Posted at

結論

サブテーブルの行増減を禁止したい場合は以下の方法があります。
①カスタマイズにて実装する
②対応するプラグインを導入する

kintoneの標準機能では実装することができません。

①カスタマイズにて実装する

サブテーブルの+/-を非表示にするカスタマイズの例です。
以下のcustomize.jsを導入すれば編集時に最上部のサブテーブルの行増減を禁止します。

customize.js
(function () {
  // 編集表示時にevent実行
  kintone.events.on("app.record.edit.show", (event) => {
    // 対象サブテーブルのDOMを取得する。
    const subtable = document.getElementsByClassName("subtable-row-gaia")[0]

    // <tbody>DOMを取得する
    const tbody = subtable.getElementsByTagName("tbody")[0];

    // 対象サブテーブルのアクションボタンのDOMを取得する。
    const rows = tbody.getElementsByClassName("subtable-operation-gaia");

    // 一行ずつスタイルを変更してアクションボタンを非表示にする。
    for (let i = 0; i < rows.length; i++) {
      rows[i].style.display = "none";
    }
  });
})();

実行例

画面最上部のサブテーブルの行増減が禁止(+/-ボタンを非表示)にします。
行増減禁止例.PNG

【対象サブテーブルを変更する方法】
下記行の[0]の部分を変更することで対象サブテーブルを変更できます。
const subtable = document.getElementsByClassName("subtable-row-gaia")[0];

例)「document.getElementsByClassName("subtable-row-gaia")[1]」とする場合は上から2番目のテーブルを対象とすることができます。

②対応するプラグインを導入する

ステータス別サブテーブル制御プラグインを導入することで実現可能です。
本プラグインにより特定のステータス時にサブテーブルの行増減を禁止にすることができます。
特定の条件で行増減を禁止にする.PNG

留意事項

サブテーブルの行増減を禁止するにはDOM操作が必要になります。
DOM操作はkintoneのアップデートで予告なく変更される場合があります。
https://cybozu.dev/ja/id/6a3e8e4cfa544930dea12c84/#coding-id-class

プラグイン販売元

紹介したプラグインは以下にて購入できます。
ステータス別サブテーブル制御プラグイン

他にもプラグインを紹介していますので興味があればご確認ください。
イデペンショップ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0