お世話になっております。
レコード一覧画面に作成したボタンを押し、一覧に表示されているレコードの情報を取得したいと考えております。
以下の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);
});
})();
========================================================
ボタンを押した際に、表示されているレコード番号を順にアラート表示するだけのコードですが、
取得するフィールドを変更すれば、他にいろいろ活用できそうです。
ありがとうございます。