画面表示のカスタマイズを行い、他のアプリ(マスタ)から読み込んだものを表示するコンボボックスと絞り込みを行うための表示ボタンを追加したアプリを作りました。
一覧表示をした後に、URLを使って選択されたコンボボックスの内容で絞り込みを行いたいのですが、
(例)?view=5540959&query=FairNM%20in%20(“フェアの名称”)
一覧の条件が無視され、クエリに記載した条件でのみ絞り込みが行われてしまいます。
欲しい結果にならないのですが、クエリに一覧の条件も記載しておく必要があるのでしょうか。
ユーザで一覧が作れるので、viewの条件を記載しておく必要があるのであれば、その都度jsを書き直す必要があるので方法を考え直したいのですが、思い込みが正しいのかも含めて知恵をお借りしたく投稿いたしました。
よろしくお願いいたします。
処理条件などはわかりませんが、以下の対応でいかがでしょうか?
ページ移動の際は無限ループにご注意ください。
一覧のクエリを取得後、絞り込み条件と並び替えの詳細を分割して、
絞り込み条件を追記後、再度結合。
(function() {
"use strict";
kintone.events.on(["app.record.index.show"], (event) => {
const viewId = 'xxxxxx';//テストで設けただけです。
if(event.viewId == viewId)return;
//ここから
//一覧のクエリーを取得
let query = kintone.app.getQuery();
//orderでクエリを分割
let splitedQuery = query.split('order');
//前後に半角スペースと追記のクエリ文
splitedQuery[0] += ' and レコード番号 = "2" ';
//最後にorderでクエリーオプションとソートオプションを結合
const organizedQuery = splitedQuery.join('order');
//encodeURI
console.log(encodeURI(organizedQuery));
console.log(`${location.origin}${location.pathname}?view=${viewId}&query=${encodeURI(organizedQuery)}`);
//ここまで
});
})();
岡崎 光輝様
ご返答いただきありがとうございます。
kintone.app.getQuery()で得たクエリに追加したい条件を差し込む感じですね。
なんだかできそうな気がします。試してみます!助かりました!