一覧画面でのボタン操作について

お世話になっております。

 

レコード一覧画面に作成したボタンを押し、一覧に表示されているレコードの情報を取得したいと考えております。

 

 

以下のURLのサンプル「レコード一覧で条件書式を設定する」のように

繰り返し文を使用し、レコード情報を記載するのだと思うのですが、うまくいきません。

https://cybozudev.zendesk.com/hc/ja/articles/202341944-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E3%81%A7%E6%9D%A1%E4%BB%B6%E6%9B%B8%E5%BC%8F%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B

 

 

取得したい情報は【レコード番号】(フィールドコード:レコード番号)です。

現状は以下のようなコードとなっております。

===================================================================

(``function``() {

 

``"use strict"``;

``` kintone.events.on(‘app.record.index.show’, function``(event) {`

 

// メニュ右側の空白部分にボタンを設置
var MenuButton = document.createElement(‘button’);
MenuButton.id = ‘Menu_Button’;
MenuButton.innerHTML = ‘ボタン’;

MenuButton.onclick = function () {

 

``var elNo = kintone.app.getFieldElements(``'レコード番号'``);

`` 

``for (``var i = 0; i < elNo.length; i++) {

``var record = event.records[i];

 

window.alert(elNo[i])``; 

````` ``}`

 

}

 

 

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

 

``});

 

})();

===================================================================

 

やりたいこととしては、

ボタンを押して表示されているレコード番号を順にアラートで表示することです。

 

コンソールで確認したところ、「var record = event.records[i];」の部分に``エラーが出ており、

おそらくレコード一覧表示時とボタン押下時のレコード取得方法が違うのだと思いますが、

どのように記載すればよいかわかりません。

 

お手数ではございますが、ご教示いただけますでしょうか。

y-kishiさん

 

eventオブジェクトはkintone.events.on() のコールバックで得られるので、

 

> おそらくレコード一覧表示時とボタン押下時のレコード取得方法が違うのだと思いますが、

 

の通りです。ボタンクリックもイベントの定義ですので、そのような際のレコード取得は 表示中のクエリ でレコード取得のAPIをコールすることになります。

Ryu Yamashita 様

 

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

ご回答いただきありがとうございます。

 

kintone.app.getQuery() という便利な関数があったのですね。

おかげさまで希望どおりの動作ができました。

 

最終的には以下のようなコードになりました。

========================================================

(function() {

“use strict”;
kintone.events.on(‘app.record.index.show’, function(event) {

// メニュ右側の空白部分にボタンを設置
var MenuButton = document.createElement(‘button’);
MenuButton.id = ‘Menu_Button’;
MenuButton.innerHTML = ‘ボタン’;

MenuButton.onclick = function () {

var query= kintone.app.getQuery();

kintone.api(
kintone.api.url(‘/k/v1/records’, true),
‘GET’, {
app: 217,
query: query
},
function(resp) {

var resplen = resp.records.length;

// レコード番号を繰り返しアラート表示
for (var i=0; i < resplen ; i+=1){

var recno = resp.records[i].レコード番号.value;
window.alert(recno);

} //for終了

}); //GET終了

} //onclickイベント終了

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

});
})();

========================================================

 

ボタンを押した際に、表示されているレコード番号を順にアラート表示するだけのコードですが、

取得するフィールドを変更すれば、他にいろいろ活用できそうです。

 

ありがとうございます。