2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Posted at

スクリーンショット 2023-05-13 3.34.08.png

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

今回は絞り込んだ結果に一括更新を行なってみます。

スクリーンショット 2023-05-13 3.39.47.png
山田さんのデータが絞り込まれました。スクリーンショット 2023-05-13 3.44.17.png
チェックONを押して山田さんのcheckBoxのみに値を入れます
スクリーンショット 2023-05-13 3.45.38.png
スクリーンショット 2023-05-13 3.48.21.png

山田さんのCheckBoxにのみ確認が入りました。
次はチェックを一括で消してみます。
チェックOFFボタンを押します。

スクリーンショット 2023-05-13 3.51.37.png

スクリーンショット 2023-05-13 3.56.14.png

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

一括更新.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);
})();

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

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?