cybozu developer network

カテゴリー内の他の記事

一覧画面で条件に応じたレコード件数を取得するテクニック

(著者:落合 雄一

はじめに

一覧画面で現在のレコード件数を取得したいことがあるかと思います。例えば、以下のようにステータスが「処理中」のレコードの件数を常に表示させておきたい時などに便利です。

2022-11-22_17h19_45.png

デモ環境

デモ環境で実際に動作を確認できます。
https://dev-demo.cybozu.com/k/73/

ログイン情報は cybozu developer network デモ環境 で確認してください。

アプリの準備

下記フィールドをフォームに配置します。
今回使用する「ステータス」はラジオボタンフィールドです。プロセス管理のステータスではありません。

フィールドタイプ フィールド名 フィールドコード 備考
文字列(1行) タスクタイトル タスクタイトル  
文字列(複数行) 詳細 詳細  
ラジオボタン ステータス status 未処理
処理中
完了

ソース

kintone-rest-api-clientのgetAllRecordを呼び出しています。
kintone-rest-api-clientの使い方は以下を参照ください。

全レコードの取得方法

kintone JavaScript Client (@kintone/rest-api-client)

このTipsは、2022年11月版で確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
mikan

こちらですが、実装させていただいたところ、(すべて)の一覧表示でしか動作しなかったのですが、
任意で作成した一覧では動作しないような仕組みになっておりますでしょうか。

Avatar
落合 雄一

mikanさん
cstapの落合です。

通常の一覧であれば、動作する用になっているかと思います。
しかし現在は、REST API の records.json で totalCount を取得できるので、こちらを利用するほうが良いかと思います。

(function() {
  "use strict";

  // 一覧ページ
  kintone.events.on('app.record.index.show', function(event) {
    // 現在の検索条件&処理中のレコード取得
    var query = kintone.app.getQueryCondition();
    if (query === '') {
      query += ' status in ("処理中")';
    } else {
      query += ' and status in ("処理中")';
    }
    kintone.api('/k/v1/records', 'GET', {
      app: kintone.app.getId(),
      query: query,
      totalCount: true
    }, function(resp) {
      kintone.app.getHeaderMenuSpaceElement().innerHTML = '処理中のレコード件数:' + resp.totalCount;
    });
  });
})();

以上、参考になりますでしょうか?

Avatar
mikan

落合様

ありがとうございます。

バージョンアップか何かでTotalCountというものがサポートされるようになっているのですね。
参考にさせていただきます。

どうぞよろしくお願いいたします。

Avatar
よこい

ステータスが処理中のものと未処理のもの、両方のレコード件数を出力したい場合は

どのように変更すればよいでしょうか?

Avatar
cybozu Development team

よこい 様

こちらのコメント欄は直接的な記事のフィードバックを頂く場所となっております。

カスタマイズに関する質問に関してはcybozu developer コミュニティをご活用ください。

 

どうぞよろしくお願いいたします。

サインインしてコメントを残してください。