1

したがって、私が作成したレポートには、特定の値が過去に存在しない場合に、すべての可能なソリューションのデータを取得したかのようにレポートが処理する一連のパラメーターがあります。

例:パラメータとしてマシン名があり、パラメータに渡された特定のマシン名を入力していません。次に、データベース内のすべての可能なマシン名について返されたデータを取得します。私が話していることの例を以下に示します。

ここに画像の説明を入力してください

ただし、パラメータフィールドに値を入力しないと、レポートに値が表示されません。私が欲しいのは、空白として返されるのではなく、フィールドに「すべて」を表示することです。

だから私の質問は、パラメータに値が入力されていないときに赤い円が空白として表示されるのではなく、レポートの赤い円が表示されている場所に「すべて」を表示するにはどうすればよいですか?

ヘルプや提案は大歓迎です。ありがとうございました。

4

3 に答える 3

9

すでにレコード選択がソートされているようです。赤い丸の4つのフィールドは次のようになります。

if hasvalue({?param}) then
 {?param}
else
 'All';

それらのいずれかが文字列値でない場合は、次のことを行う必要があります。

if hasvalue({?param}) then
 cStr({?param})
else
 'All';
于 2012-04-27T20:22:36.733 に答える
2

オプションのパラメーターでは、hasvalue()関数を使用して、値が使用されていない場合をチェックする必要があります。だからあなたの場合、あなたが持っていたなら

{table.machine_name} = {?machine_name_param}

代わりに使用する必要があります

(not(hasvalue({?machine_name_param})) 
or {table.machine_name} = {?machine_name_param})

基本的には、他のデータベースフィールドの場合と同じようにnullチェックを実行するのと同じです。

于 2012-04-27T19:19:25.467 に答える
-1

パラメータがタイプ番号構文の場合のCrystal2008構文({?P#} = 0 OR {Command.p} = {?P#})

パラメータのタイプがSTRINGSYNTAXの場合(HasValue({?D}ではない)または{Command.d} = {?D})

于 2013-08-29T16:33:43.987 に答える