Cognos Analytics スライサーをオプションにする


スライサーをオプションにする

最近質問を受けたので、やり方を共有しておきます。
元ネタはこちらの記事です。
How to create optional slicers
http://cognosknowhow.blogspot.com/2013/08/how-to-create-optional-slicers.html

単一選択プロンプトでデフォルト値の指定が無い場合

プロンプトページの「値のプロンプト」が、「複数選択」が「いいえ」で、「デフォルトの選択肢」に指定がない場合のスライサーの書き方です。

クロス集計クエリー内容

スライサー記述
※[販売].[製品].[製品]は「階層」

#prompt('pPL','memberuniquename','rootMember([販売].[製品].[製品])')#

レポート実行時のプロンプト
プロンプトを選択していないが「終了」を選択できる。

単一選択プロンプトでデフォルト値の指定が有る場合

値のプロンプトにデフォルト値を指定したい場合、スライサーは以下の記載になります。

#prompt('pPL','memberuniquename','[販売].[製品].[製品].[製品ライン]->[Products].[991]')#

[Products].[991]は「キャンプ用品」の事ですが、このようにソースタブからメンバーとしての「キャンプ用品」にカーソルを合わせると表示されるので、こちらを記載します。

値のプロンプトの「デフォルトの選択肢」は以下の記載になります。

レポート実行時のプロンプト
「キャンプ用品」が選択された状態で表示される。

複数選択プロンプトでデフォルト値の指定が無い場合

値のプロンプトで「複数選択」を「はい」にして、「デフォルトの選択肢」を指定しない場合です。

スライサーは以下の記載になります。promptmanyにして、「'set(','',')'」を追加しています。

#promptmany('pPL','memberuniquename','rootMember([販売].[製品].[製品])','set(','',')')#

レポート実行時のプロンプト
プロンプトを選択していないが「終了」を選択できる。

複数選択プロンプトでデフォルト値の指定が有る場合

複数選択の値のプロンプトにデフォルト値を指定したい場合、スライサーは以下の記載になります。※[993]は個人装備です。

#promptmany('pPL','memberuniquename','set([販売].[製品].[製品].[製品ライン]->[Products].[991],[販売].[製品].[製品].[製品ライン]->[Products].[993])','set(','',')')#

「デフォルトの選択肢」は、以下のように「+」ボタンで複数指定してください。

レポート実行時のプロンプト
「キャンプ用品」「個人装備」が選択された状態で表示される。