新規投稿
フォローする

一覧表示を、最初からフィルタ状態で表示する方法について

おせわになります。

ある住所録(氏名、都道府県、住所、年齢、emailが記載)がkintoneのアプリ
https://hogehoge.cybozu.com/k/10/
としてある場合に
この住所録を最初から「都道府県=埼玉県」でフィルタした状態で表示することは可能でしょうか?
また、その時に必要なクエリストリング
例)https://hogehoge.cybozu.com/k/10/?pref='埼玉県' のような表現
がわかりましたらご教授いただけないでしょうか。

0

4件のコメント

Avatar
落合 雄一

sfckura様
cstapの落合です。

アプリの設定からご指定の検索条件で一覧の追加を行い、デフォルトで表示したい一覧を並び替えで一番上にもってくると、ご希望の状態になるかと思います。

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

0
Avatar
sfckura

落合様
ご回答ありがとうございます。
本件の方法だと確かに最初に表示することが出来ました。

この方法でも良いのですが
47都道府県分あるのでおなじような一覧を47回作る必要があります。
最悪この方法で対応いたします。

ただ、
https://hogehoge.cybozu.com/k/10/?pref='埼玉県'
のように、クエリストリングで動的に設定できるほうほうがありますと、
47回も作らなくて済むので助かります。

0
Avatar
落合 雄一

レコード一覧のメニューの右側の空白部分に都道府県のセレクトを表示して選択するとページが移動する感じでどうでしょう?

以下サンプルです。

/**
 * 都道府県:pref(文字列フィールド)
 */

(function () {
  "use strict";

  var prefList = [
    '北海道','青森県' // 全都道府県を指定してください
  ];

  // イベント
  kintone.events.on("app.record.index.show", function (event) {
    var $select = document.createElement('select');
    $select.id = "pref_select";
    $select.onchange = function () {
      var pref = this.options[this.options.selectedIndex].value;
      document.location = location.origin + location.pathname + '?query=pref = "' + pref + '"'
    };

    for (var i = 0, l = prefList.length; i < l; i++) {
      var $option = document.createElement('option');
      var pref = prefList[i];
      $option.value = pref;
      $option.innerHTML = pref;
      var queryPref = decodeURI(location.search).replace('?query=pref = "', '').replace('"', '');
      if (pref === queryPref) {
        $option.selected = true;
      }
      $select.appendChild($option);
    }

    kintone.app.getHeaderMenuSpaceElement().appendChild($select);

    return event;
  });

})();
0
Avatar
新妻正夫

落合さん、さすがのコードですね。
補足ですが、URLにqueryを指定することで、フィルタした状態で一覧を表示することもできます。
詳しくは、こちらを
https://cybozudev.zendesk.com/hc/ja/articles/202388664-URL内のクエリで-表示するレコードの条件を指定

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