2017-07-06 13 views
0

私のレポートには2つの必須パラメータ(Source; Locationと2つのオプションのものAccess Type; Access Complication)があります。私はクエリをテストし、正しく動作することを証明できます。このレポートは、すべてのパラメータを入力すると機能します。複数のオプションのレポート

合併症パラメートがなければ、すべての合併症は戻らなければなりませんが、患者はありません。アクセスタイプのみが選択された場合、選択されたアクセスタイプに割り当てられたすべての合併症を持つ患者のリストを取得する必要があります。しかし、いずれかのパラメータが省略された場合、にはレコードがあります。

私は選択エキスパートのアクセスタイプのための新しい式を設定した場合、私はどちらその後、上記hasvalue式で、次にアクセス合併症のため、無駄

(not hasValue({?AccessType}) OR {Command.AccessType} = {?AccessType}) 
and 
(not hasValue({?AccessComplication) OR {Command.AccessComplication} <= {?AccessComplication}) 

に、選択エキスパートでこのhasvalue式を試してみました1つは私が最初に上書きすることです。彼らはお互いに並んで存在することはできないようです。

答えて

2

オプションで使用するパラメータは、必須パラメータになります。物語の終わり。

同様のことを実現するには、allまたは*(SQLのすべてのレコードを意味します)というパラメータを送信します。すべてのデータを選択する前に、「オプションの」パラメータ値を確認し、allまたは*の場合は、これらのパラメータを含まない選択式を記述します。しかし、私は、すべてが必須paramsは作ることが容易だと思うレポートの複雑さを与えられたユーザーだけで選択することができます -

if param3 = "all" or param4 = "all" 
    if param3 = "all" and param4 = "all" select data only with param1 and param 2 
    else 
     if param3 = "all" select data without param3 
     if param4 = "all" select data without param4 
else select data with all params 
+0

おかげKuKeC:

擬似コードは必須と2つのオプションのparams 2のために、次のようになります

必要なものがあればすべての値。 –

+0

それは最高の結果になるので、すべてのパラメータの値を調べる必要はありません。すべてのパラメータ値を常に選択してください。 – KuKeC

+0

これは役に立ちました。ありがとうございました。 –

関連する問題