Cognosで単数指定のテキストのプロンプトにカンマ区切りで入力した値で複数絞込みを行う
はじめに
単数選択で指定しているテキストのプロンプトにカンマ区切りで値を入力し、複数の項目で絞り込むためのフィルタ式の紹介です。
IBM Supportから公開されている文書にすべて記載されているのですが、よくある要件であることやクエリマクロの使用例として改めて紹介したいと思います。
How to filter a report using a comma-separated string entered in a text box
実行結果
テキストのプロンプトにカンマ区切りで入力した、「991」と「992」の製品ラインコードでリストが見事に絞り込まれています、
実現方法
リストのクエリーに追加するフィルター式の記述方法が肝となります。
2つのパターンで紹介されているので、ここでも2パターン紹介します。
※検証時のレポートでは下記のように指定しています。環境に合わせて置換してください。
フィルター対象のデータアイテム = [製品ラインコード]
テキストのプロンプトのパラメータ名 = pLineCD
パターン1
[製品ラインコード] in (#csv( split(',', prompt('pLineCD', 'token') ) )#)
パターン2
((#sq(prompt('pLineCD', 'token', 'testValue'))# <> 'testValue') and
[製品ライン コード] in (#csv( split(',', substitute(' ','', prompt('pLineCD', 'token')) ) )#) )
or ((#sq(prompt('pLineCD', 'token', 'testValue'))# = 'testValue'))
クエリマクロを使用してプロンプトから渡された値をカンマで区切って式に渡しているのがポイントです。
プロンプトが単数で指定されているのに対して、フィルター式内では、IN句を使って複数絞込みで受けているところもポイントです。
最後に
パターン1とパターン2が紹介されていますが、パターン1の式だと","の後に空白スペースが入っているとレポート実行エラーとなってしまいます。
入力したい値にもよりますが個人的にはパターン2がオススメかとも思います。
Author And Source
この問題について(Cognosで単数指定のテキストのプロンプトにカンマ区切りで入力した値で複数絞込みを行う), 我々は、より多くの情報をここで見つけました https://qiita.com/hayatoshi/items/09b97c5d77111b87edd3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .