【イベントカレンダープラグイン】全件取得しつつ、データをフィルタする方法

お世話になります。

イベントカレンダーを使用しており、フィルタをするために旧ファイルでパッケージングしなおしたのですが、やはり最新の100件のみでは不都合があり、全件取得しつつデータも絞り込みをしてカレンダー表示をしたいと思ってます。

こちらのコメントも読んでみたのですが、「絞り込み条件ごとに一覧を作成、レコード一覧画面表示イベントにて一覧名が●●だったら条件指定してレコード取得する。」というところはどこに記述すれば良いのでしょうか?

(customize.js 内の、全件取得関数の後に追記してパッケージングしなおすのでしょうか?)

 

具体的に絞り込みたい内容としては、フォーム内のグループフィールド(フィールドコード:group)が「A」「B」「C」の場合に、それぞれ「カレンダーA」「カレンダーB」「カレンダーC」を別途作成したいです。

カレンダーは、「カレンダーA」「カレンダーB」「カレンダーC」という名称で一覧には設定済みとなります。

 

こちらは、customize.jsを3パターン作成しなければならないのでしょうか・・・?

 

初心者には難しいかもしれませんが、この場合の記述方法を教えていただきたいです。

よろしくお願いいたします。

Maruさん

> customize.js 内の、全件取得関数の後に追記してパッケージングしなおすのでしょうか?

はい、ご認識通りです。全件取得関数の中で、レコードGETするためのparamsを定義している箇所があります。

        var params = {app: appId, query: query + ’ limit ’ + limit + ’ offset ’ + offset};

上記paramsの内容を一覧名によって変更するのです。

        if (event.viewName === ‘カレンダーA’) {
            var params = {
                ‘app’: kintone.app.getId(),
                ‘query’: ‘order by $id desc limit 500 offset 0’,
                ‘fields’: [‘取得したい値のフィールドコードを入れる’]
            };
        } else if (event.viewName === ‘カレンダーB’){

            var params = {
                ‘app’: kintone.app.getId(),
                ‘query’: ‘order by $id desc limit 500 offset 0’,
                ‘fields’: [‘取得したい値のフィールドコードを入れる’]
            };

        } else if (event.viewName === ‘カレンダーC’){

・・・・ここではカレンダーCの場合のparams定義ですね

 

↑各'query'項目にてフィルタ条件を指定してあげて下さい。

また、if文で処理を分ければcustomize.jsを3パターン作成する必要は特にありませんです。

queryの指定とか良く分からない場合は下記URLのレコード一括取得(クエリで条件を指定)を参考にしてみてください。

https://developer.cybozu.io/hc/ja/articles/202331474