2013-11-15 14 views
5

パラメータ 'Year_Parameter'を参照する値プロンプトと、同じパラメータを参照する1つの列(データ項目式)を持つリストがあります。このように値プロンプト:IBM Cognos Report Studio:プロンプト "default text"パラメータからの値プロンプトのデフォルト選択

#prompt('Year_Parameter')# 

値プロンプトは、いくつかの静的な選択肢があります。そこで2011年、2012年と2013年 、私は私のレポートを実行し、レポートの前にポップアップするプロンプトページに2012を入力したときページが表示されている場合、レポートページが表示されているときに2012の値プロンプトが選択肢リストから自動的に選択されています。

また、デフォルトの選択肢のリストに2012を入力すると、プロンプトページは表示されず、レポートが表示されるときに値プロンプトに対して2012が自動的に選択されるようになりました。私は、デフォルトの選択のリストから2012を削除し、これらの式のいずれかに私のデータ項目の表現を変更した場合

しかし、:

#prompt('Year_Parameter', 'token', '2012')# 
#prompt('Year_Parameter', 'token', 2012)# 
#prompt('Year_Parameter', 'string', 2012)# 
#prompt('Year_Parameter', 'string', '2012')# 

...何のプロンプトページは、2012年は次のように指定されたときのようにポップアップ表示しませんデフォルトの選択ですが、値プロンプトには値が自動的に選択されません。値プロンプトは、デフォルトのヘッダーテキストを示しています。 - :

プロンプト(prompt_name、データ型、defaultText、テキスト、queryItem、 trailing_text)

パラメータ名Year_Parameter」

プロンプト関数定義を忘れないでください

これがなぜ起こっているのかを知っている方、さらに重要なのは、値プロンプトのデフォルト選択をデータ項目式で指定する方法を解決する方法です。

これは、prompt()マクロはパラメータ 'Year_Parameter'の値を取得しようとしますが、それ自体がパラメータで値を入力しないためですか?パラメータは、何らかの値のプロンプト(プロンプトページまたはレポートページに埋め込まれている)によって指定する必要があります。

したがって、プロンプト関数のdefaultText引数は、パラメータそのものを埋めることはありませんが、パラメータに(有効な)値がない場合は、この特定のプロンプト関数によって返されます。

入力いただきありがとうございます。

編集:パラメータにデフォルト値を動的に割り当てる方法について説明しました。

http://cognosknowhow.blogspot.no/2013/04/how-to-dynamically-set-up-default-value.html

決勝:私は動的に選択値プロンプトに次のJavaScriptを使用して終了し、レポートを更新:

正確
<script type="text/javascript"> 
// This function updates the report dynamically for the current year 
// The function is wrapped inside a setTimeout call in order to avoid an error caused by too frequent requests 
setTimeout(function updatePrompt() { 
    var oCR = cognos.Report.getReport("_THIS_"); 
    var yearPrompt = oCR.prompt.getControlByName("YearPrompt"); 
    var selectedValue = yearPrompt.getValues()[0]; 

    if (typeof selectedValue === "undefined") { 
     currentYear = new Date().getFullYear(); 
     yearPrompt.setValues([{'use':currentYear}]); 
     // Update report 
     oCR.sendRequest(cognos.Report.Action.FINISH); 
    } 
}, 50); 
</script> 

答えて

4

、Skovlyプロンプトマクロはできない、と言っているよう値をパラメータに入力します。提供されたリンクから、javascipt(最初のオプション)を選択しますが、IBMが構文をバージョンごとに変更することを覚えておいてください。

(答えにコメントを投稿する方法はまだ分かりません。そうでなければ、プロンプトマクロではできないという意見をstregthenするために前のページに添付します)。

関連する問題