imukaさん
cstapの瀧ヶ平です。
意図している計算の処理やどのような実装をしているかはわかりませんが、全レコードを取得して開発者コンソールに表示するのであれば以下のようなコードになります。
レコードの更新に関してはこちらを参考に、レコード取得後の処理の中に実装すれば可能です。
/**
* 全レコード取得
*
* @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;
})();
})();