LoginSignup
1
0

More than 5 years have passed since last update.

Cognos テキストボックスのプロンプトのデフォルト値にデータアイテムの値を入れる

Posted at

概要

Cognos AnalyticsやCognos 10 BIで、テキストボックスのプロンプトを配置した時に、デフォルトの値をどっかのデータアイテムから取得できると便利ですよね。
011.JPG

JavaScriptで、本日の日付とかをデフォルト値で入力するのは、こちらのDeveloperWorksの記事にあり、よくお世話になっているやり方ですが、JavaScriptで生成できる値であればこのやり方で良いのですが、生成できない場合に、どこかのデータアイテムから取得したいよ、というパターンです。
Setting Dynamic Date Prompt Values within IBM Cognos 10.2 Report Studio
https://www.ibm.com/developerworks/library/ba-pp-reporting-scripting_techniques-page634/index.html

実装

本体ページにリストを置き、「製品ライン」と「数量」を置いてみます。
012.JPG

リストのクエリーはこんなイメージで、「数量」に対して、pFrom と pTo というパラメーターで、フィルターをかけています。
017.JPG

プロンプト・ページは2つあり、「ダミー・プロンプト・ページ」というのが、以下のイメージで、これがポイントです。
018.JPG

ダミー・プロンプト・ページで使用するクエリーは、以下のものを使用します。
つまり、「数量最大-10000」から「数量最大」の間の販売数量の製品にフィルターして、先ほどのリストに表示したいというシナリオです。
この「数量最大-10000」と「数量最大」のデータアイテムの値を、最初にお見せしたテキストボックスのプロンプトのデフォルト値として入力しようというものです。
013.JPG

右側の値のプロンプトの指定イメージです。
クエリー:製品数量、使用する値:数量最大、パラメーター:pToを指定しています。
また、値のプロンプトの名前を To に指定しています。
014.JPG

左側の値のプロンプトの指定イメージです。
クエリー:製品数量、使用する値:数量最大-10000、パラメーター:pFromを指定しています。
また、値のプロンプトの名前を From に指定しています。
015.JPG

左側のHTMLItemです。

<div  style = "Display:none">

右側のHTMLItemです。
これで、二つの値のプロンプトのデータアイテムの値を読み取って、pFromとpToのパラメーターにセットして、100msec後に「Next」で次のプロンプトページに遷移します。
「From」の部分と「To」の部分が、先ほどの値のプロンプトで名前を指定したところと一致させます。

</div>

<script language="javascript">


function setDefaultVaule()
{
    var form = getFormWarpRequest();
    form._oLstChoicesFrom.options[2].selected = true;
    form._oLstChoicesTo.options[2].selected = true;
    setTimeout("promptButtonNext();",100);
}

setDefaultVaule()

</script>

次のプロンプトページ、「プロンプト・ページ1」のイメージです。
左のテキストボックスのプロンプトのパラメーター:pFrom
右のテキストボックスのプロンプトのパラメーター:pTo
を指定しているのがポイントです。
これにより「ダミー・プロンプト・ページ」で設定されたパラメーターを受け取り、ここのテキストボックスのプロンプトに入力できます。
016.JPG

これで、レポートを実行すると、「ダミー・プロンプト・ページ」は、一瞬でスキップされ、この様にテキストボックスにデフォルト値が入った画面になります。
019.JPG

「終了」でレポート実行すると、製品の販売数量が指定の範囲で絞り込まれた結果が表示されます。
020.JPG

一瞬「ダミー・プロンプト・ページ」を経由するのは、あまり美しくない実装かも知れないですが、好きなデータアイテムの値を、テキストボックスのプロンプトのデフォルト値に入れれるのは、色々と応用範囲が広がる使える手だと思いますので、ご活用頂ければ幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0