# ボタンで更新

**URL:** <https://community.cybozu.dev/t/topic/2128>\
**Category:** kintone 開発相談\
**Created:** [2015 年 9 月 14 日午後 11:49 UTC](https://community.cybozu.dev/t/topic/2128 "2015-09-14T23:49:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2150](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/32.png) [@Legacy\_Account2150](https://community.cybozu.dev/u/Legacy_Account2150)\
**Post date:** [2015 年 9 月 14 日午後 11:49 UTC](https://community.cybozu.dev/t/topic/2128/1 "2015-09-14T23:49:04Z")

</div>

いつもお世話になっています

一覧画面にてボタンを押したときに全レコードを読んでそこから計算をし、レコードの更新を行いたいのですがどうすればいいでしょうか？  
[https://cybozudev.zendesk.com/hc/ja/articles/201767270-%E7%AC%AC2%E5%9B%9E-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E3%81%AB%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E7%BD%AE%E3%81%84%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-とhttps://cybozudev.zendesk.com/hc/ja/articles/203702800-%E5%85%A8%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%8F%96%E5%BE%97%E6%96%B9%E6%B3%95を参考に組み合わせたのですがボタンを押した後TypeError:](https://cybozudev.zendesk.com/hc/ja/articles/201767270-%E7%AC%AC2%E5%9B%9E-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E3%81%AB%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E7%BD%AE%E3%81%84%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-%E3%81%A8https://cybozudev.zendesk.com/hc/ja/articles/203702800-%E5%85%A8%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%8F%96%E5%BE%97%E6%96%B9%E6%B3%95%E3%82%92%E5%8F%82%E8%80%83%E3%81%AB%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%81%9F%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8C%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E6%8A%BC%E3%81%97%E3%81%9F%E5%BE%8CTypeError:) KintoneRecordManager is not a functionと出てしまい動きません  
解決策があれば教えてください

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2150](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/32.png) [@Legacy\_Account2150](https://community.cybozu.dev/u/Legacy_Account2150)\
**Post date:** [2015 年 9 月 14 日午後 11:50 UTC](https://community.cybozu.dev/t/topic/2128/2 "2015-09-14T23:50:35Z")

</div>

[https://cybozudev.zendesk.com/hc/ja/articles/203702800-%E5%85%A8%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%8F%96%E5%BE%97%E6%96%B9%E6%B3%95](https://cybozudev.zendesk.com/hc/ja/articles/203702800-%E5%85%A8%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%8F%96%E5%BE%97%E6%96%B9%E6%B3%95)  
と  
[https://cybozudev.zendesk.com/hc/ja/articles/201767270-%E7%AC%AC2%E5%9B%9E-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E3%81%AB%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E7%BD%AE%E3%81%84%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-](https://cybozudev.zendesk.com/hc/ja/articles/201767270-%E7%AC%AC2%E5%9B%9E-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E3%81%AB%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E7%BD%AE%E3%81%84%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-) です  
くっつけてすいません

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2115](https://avatars.discourse-cdn.com/v4/letter/l/e9bcb4/32.png) [@Legacy\_Account2115](https://community.cybozu.dev/u/Legacy_Account2115)\
**Post date:** [2015 年 9 月 28 日午前 10:31 UTC](https://community.cybozu.dev/t/topic/2128/3 "2015-09-28T10:31:57Z")

</div>

imukaさん  
cstapの瀧ヶ平です。

意図している計算の処理やどのような実装をしているかはわかりませんが、全レコードを取得して開発者コンソールに表示するのであれば以下のようなコードになります。  
レコードの更新に関しては[こちら](https://cybozudev.zendesk.com/hc/ja/articles/201941784)を参考に、レコード取得後の処理の中に実装すれば可能です。

```
/**
 * 全レコード取得
 *
 * @author Yuichi Ochiai <ochiai@cstap.com>
 */
(function() {
  "use strict";

  // レコード一覧画面
  kintone.events.on('app.record.index.show', function(event) {
    var manager = new KintoneRecordManager;
    if (document.getElementById ('my_index_button') != null) {
        return;
    }

    var myIndexButton = document.createElement('button');
    myIndexButton.id = 'my_index_button';
    myIndexButton.innerHTML = '一覧のボタン';

    // ボタンクリック時の処理
    myIndexButton.onclick = manager.getRecords(function(records) {
      // レコード取得後の処理
      console.log(records);
    });

    kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton);

    return event;
  });

  /**
   * kintoneと通信を行うクラス
   */
  var KintoneRecordManager = (function() {
    KintoneRecordManager.prototype.records = []; // 取得したレコード
    KintoneRecordManager.prototype.appId = null; // アプリID
    KintoneRecordManager.prototype.query = ''; // 検索クエリ
    KintoneRecordManager.prototype.limit = 100; // 一回あたりの最大取得件数
    KintoneRecordManager.prototype.offset = 0; // オフセット

    function KintoneRecordManager() {
      this.appId = kintone.app.getId();
    }

    // すべてのレコード取得する
    KintoneRecordManager.prototype.getRecords = function(callback) {
      kintone.api(
        kintone.api.url('/k/v1/records', true),
        'GET',
        {
          app: this.appId,
          query: this.query + (' limit ' + this.limit + ' offset ' + this.offset)
        },
        (function(_this) {
          return function(res) {
            var len;
            Array.prototype.push.apply(_this.records, res.records);
            len = res.records.length;
            _this.offset += len;
            if (len < _this.limit) { // まだレコードがあるか？
              _this.ready = true;
                if (callback !== null) {
                  callback(_this.records); // レコード取得後のcallback
                }
            } else {
              _this.getRecords(callback); // 自分自身をコール
            }
          };
        })(this)
      );
    };
    return KintoneRecordManager;
  })();
})();

```
