一覧を作成する時、日付を含む複雑な条件設定がしたい!
以前、「一覧を作成する際、複雑な条件設定ができずに困った事はありませんか?」という記事で、
「一覧の設定では『すべての条件を満たす』と『いずれかの条件を満たす』のどちらかしか選べない。だったらIF式で表示制御用のフラグを作っちゃおう!」
という方法をご紹介しました。
しかし、IF式でTODAY関数を使えないため、「日時を含む条件(例:「翌日以降」)やステータスを利用した条件は、計算式では使用できません。」というのがネックでした。
今回はこの二つの条件を満たす一覧を作成します。
①フィールド1が「ほげほげ」を含む
②日付が空欄、もしくは本日以降
まず、この条件を一覧で設定します。


(当然この時点では「データがありません」と表示されます。)
ここでURLをチェックします。

注目すべきは「q=」の後ろから「#sort」の間です。
ここに3つの条件が入っています。URLエンコードされているので、
%20 → 半角スペース
%3D → =
に読み替えます。すると、次のような式が見えてきます。
① f13328955 like "ほげほげ"
② f13328954 = ""
③ f13328954 >= TODAY()
この3条件がandで結合されていますね。
「f13328955」がフィールド1、「f13328954」が日付フィールドである事も分かります。
作りたいのは次の条件式です。
f13328955 like "ほげほげ" and (f13328954 = "" or f13328954 >= TODAY())
なので、元のURLの「q=」の後ろ部分を書き換えます。
https:// sample.cybozu.com/k/735/?view=20&q= f13328955 like "ほげほげ" and (f13328954 = "" or f13328954 >= TODAY())#sort_0=f13328787&order_0=desc&size=20
これで条件を満たすURLは完成です!
このURLをブラウザに貼り付けると、確かに条件を満たすものだけが表示されている事が分かります。

毎回作るのは大変なので、ポータルやアプリの説明欄にリンクを貼り付けておくのがお勧めです。(自分だけが使うなら、ブックマークでもいいですね。)
また、「ほげほげ」部分が可変なら、「他のアプリの一覧を、絞り込んだ状態で開けるURLを自動作成する方法」を応用して別アプリから開けるようにするのも便利ですよ。
ミュートしたユーザーの投稿です。
投稿を表示前回に続いて、これも目からウロコでした!
さっそくデモ環境で試してみたんですが、パラメータを q= ではなく query= にすると、内部フィールドIDではなくフィールドコードのまま書けました。
https://sample.cybozu.com/k/123/?query=フィールド1 like "ほげほげ" and (日付 = "" or 日付 >= TODAY())
日本語のままアドレスバーに貼れば、エンコードはブラウザがやってくれます。
ただ、こっちにも弱点がありました。
フィールドコードを変更すると400エラーで切れます。
内部フィールドIDのほうは変わらないので、記事の q= で作ったリンクはそのまま生き残るんですね。
読みやすさを取るか、壊れにくさを取るかの使い分けかなと思います。
あと、日付の空欄の扱いが非対称なのも面白かったです。
毎回いい気づきをいただいてます。ありがとうございます!