kintoneのレコード一覧画面で一括更新


![スクリーンショット 2023-05-13 3.34.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3341719/4d4061e9-ceeb-e151-2c90-8899d7e77fc4.png)

#### チェックONボタンを押すことで一括でチェックを入れることができます。

#### 今回は絞り込んだ結果に一括更新を行なってみます。
![スクリーンショット 2023-05-13 3.39.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3341719/81ddbcc0-0d4e-9af5-f26a-0c3634ee3902.png)
山田さんのデータが絞り込まれました。![スクリーンショット 2023-05-13 3.44.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3341719/9deaa8e7-1d8c-c1c9-cba6-51d8f45dcc54.png)
チェックONを押して山田さんのcheckBoxのみに値を入れます
![スクリーンショット 2023-05-13 3.45.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3341719/9a92ae51-c8e0-0f8d-ba6a-42c4ae2888c7.png)
![スクリーンショット 2023-05-13 3.48.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3341719/f680ecc8-21ab-002e-e684-3435ba2c7249.png)

##### 山田さんのCheckBoxにのみ確認が入りました。


##### 次はチェックを一括で消してみます。
##### チェックOFFボタンを押します。
![スクリーンショット 2023-05-13 3.51.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3341719/d368042e-9514-fd28-4c79-44e66c87b623.png)



![スクリーンショット 2023-05-13 3.56.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3341719/dc065c79-c3d5-4ddf-f16a-38e89c58e16d.png)

一括で消すことができました。
##

```JavaScript:一括更新.js
(function() {
  'use strict';
  const getquery = function() {
    const appNo = kintone.app.getId()
    const OnBtnUpdate = document.createElement('button');
    OnBtnUpdate.innerText = 'チェックON';
    OnBtnUpdate.id = 'ONDateButton';

    const OFFBtnUpdate = document.createElement('button');
    OFFBtnUpdate.innerText = 'チェックOFF';
    OFFBtnUpdate.id = 'OFFDateButton';

    // ボタン増殖防止
    if (document.getElementById('ONDateButton') !== null) {
      return;
    }
    // ボタン増殖防止
    if (document.getElementById('OFFDateButton') !== null) {
      return;
    }

    // 絞り込み条件取得
    const queryCondition = kintone.app.getQueryCondition();

    // ONボタンクリック後の処理
    OnBtnUpdate.onclick = function() {
      const client = new KintoneRestAPIClient();
      const getnoparams = {
        app: appNo,
        query: '' + queryCondition + '',
        fields: ['$id', 'checkBox']
      };

      const checkOnRecords = [];

      client.record.getAllRecordsWithCursor(getnoparams).then((resp) => {

        // レコードの数でループ
        for (let i = 0; i < resp.length; i++) {
          checkOnRecords[i] = {
            'id': resp[i].$id.value,
            'record': {
              'checkBox': {
                'value': ['確認']
              }
            }
          };
        }
        const putrecords = {
          app: appNo,
          records: checkOnRecords
        };

        client.record.updateAllRecords(putrecords).then(() => {
          alert('一括でチェックしました。');
          location.reload();
        }).catch((error) => {
          alert('一括チェックに失敗しました。');
        });
      });
    };

    // OFFボタンクリック後の処理
    OFFBtnUpdate.onclick = function() {
      const client = new KintoneRestAPIClient();
      const getnoparams = {
        app: appNo,
        query: '' + queryCondition + '',
        fields: ['$id', 'checkBox']
      };

      const checkOffRecords = [];

      client.record.getAllRecordsWithCursor(getnoparams).then((resp) => {

        // レコードの数でループ
        for (let i = 0; i < resp.length; i++) {
          checkOffRecords[i] = {
            'id': resp[i].$id.value,
            'record': {
              'checkBox': {
                'value': []
              }
            }
          };
        }
        const putrecords = {
          app: appNo,
          records: checkOffRecords
        };

        client.record.updateAllRecords(putrecords).then((resp2) => {
          alert('一括でチェックを外しました。');
          location.reload();
        }).catch((error) => {
          alert('更新に失敗しました。');
        });
      });
    };
    // ボタン設置
    kintone.app.getHeaderMenuSpaceElement().appendChild(OnBtnUpdate);
    kintone.app.getHeaderMenuSpaceElement().appendChild(OFFBtnUpdate);
  }
  const eventlist = [
    'app.record.index.show'
  ];
  kintone.events.on(eventlist, getquery);
})();

```

#### プラグインを使わずに無料でできますので、よかったら試してみてください。