お世話になっております。
タイトルの件について、以下の2つの記事を参考に
サイボウズkintoneでプラグインを使わずに複数枚の帳票を一度に印刷する
カスタマイズビューで100件以上のレコードの表示をしたいと考えております。
現在、下記コードで設定しているのですが、100件までのレコードの表示は
出来ていますが、「さらに表示」のボタンを押下しても、何も変化が起こりません。
(function () {
"use strict";
kintone.events.on('app.record.index.show', function (event) {
if (event.viewName != 'テスト') return;
var button = document.createElement('input');
button.id = 'button_more';
button.type = 'submit'
button.value = 'さらに表示';
var label = document.createElement('div');
label.id = 'label'
label.appendChild(button);
kintone.app.getHeaderMenuSpaceElement().appendChild(label);
document.getElementById("button_more").onclick = showMoreRecordsEvent;
destroyTableRecords();
showMoreRecordsEvent();
var AppMain_ID = kintone.app.getId();
for (var i = 0; i < event.records.length; i++) {
var record = event.records[i];
$("#area").loadTemplate($("#template"),{
t01: record['レコード番号'].value,
t02: record['ドロップダウン'].value,
t03: record['文字列1行'].value,
t04: "¥" + String( record['数値'].value ).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,' ),
t05: (record['ユーザー選択'].value.length > 0) ? record['ユーザー選択'].value[0].name: "",
t06: '<span id="file_' + record.$id.value + '"></span>',
},{append:true});
kintone.api('/k/v1/record', 'GET', {app: AppMain_ID, id: record.$id.value}, function(resp){
var record = resp.record;
var fileKey = record['添付ファイル']['value'][0]['fileKey'];
filedownload(fileKey, record.$id.value);
});
}
});
function filedownload(filekey, id){
var apiurl = '/k/v1/file.json?fileKey=' + filekey;
var xhr = new XMLHttpRequest();
xhr.open('GET', apiurl, true);
xhr.setRequestHeader('X-Requested-With' , 'XMLHttpRequest');
xhr.responseType = "blob";
var blob = xhr.responseType;
xhr.onload = function() {
var blob = xhr.response;
var url = window.URL || window.webkitURL;
var image = url.createObjectURL(blob);
$('#file_' + id).replaceWith('<a><img src="' + image + '" width="130px" /></a>');
};
xhr.send();
}
var showMoreRecordsEvent = function() {
var tb = document.getElementById("area");
var offset = tb.rows.length;
var limit = 100;
var appId = kintone.app.getId();
var currentQuery = kintone.app.getQueryCondition();
kintone.api('/k/v1/records', 'GET', {
app: appId,
query: currentQuery + " limit " + limit + " offset " + offset
}, function(response) {
createTableRecords(response.records);
});
};
var createTableRecords = function(records) {
var tb = document.getElementById("area");
var len = records.length;
for (var i = 0 ; i < len; i++) {
var record = records[i];
var row = tb.insertRow(tb.rows.length);
}
};
var destroyTableRecords = function() {
document.getElementById("area").innerHTML = "";
};
})();
jquery.loadTemplate.min.jsを使用したテーブルで100件以上のレコード表示が出来ればと考えています。
何が間違っているかわかれば、ご教授いただければ幸いです。
よろしくお願いいたします。