1

sql-server にストアド プロシージャがあり、返されるパラメーターの 1 つは、クエリ パラメーターを含む文字列です。これらのクエリ パラメータをレポートの上部に表示します。何かが見つかった場合はうまく機能しますが、何も見つからなかった場合はそれほど効果がありません。

2 つのクエリ結果を返そうとしました。1 つはレポートを作成するデータ セット (クエリ パラメーターを含む)、もう 1 つはクエリ パラメーター文字列です。Crystal は最初のデータ セットのみを表示するように見えますが、この非常に古い議論 ( http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=42462 ) は、これは機能しないと述べています。しかし、それは 5 年以上前のことであり、状況が変わったことを願っています。

問題は、何も返されない場合、レポートが非常に空白になるため、ユーザーは使用したクエリ パラメーターさえわからないことです。何の結果も返さないものをクエリしたことを確認できれば、それは役に立ちます。

したがって、ストアド プロシージャの最後にある場合:

SELECT * FROM [#ResultSet]
select @SearchCriteria as SearchCriteria

#ResultSet に何もなくてもSearchCriteriaを表示できるようにしたいです。このバージョンの Crystal で実行できますか? これを行う別の方法はありますか?

4

2 に答える 2

1

最初の回答で述べられているように、あるプロシージャの結果に別のプロシージャの列数が同じでない限り(これにはタイプが含まれます)、その場合は、結果をUNIONまたはすべての結果(重複が必要な場合)を取得できます。結果の1つのセット。

タイプまたは列が同じでない場合、これを行うことはできません。実行できる他の唯一のオプションは、関連するすべてのデータを一時テーブルにマージしてから、その一時テーブルから結果を返すことです(SELECT * FROM #temp

于 2011-10-03T17:26:03.707 に答える
0

現在、結果が見つかったときにどのようにパラメーターを表示できますか?

環境でCrystal Reportをどのように使用しているかについては言及していません。

通常、Crystal Report にパラメータを Report Parameters として渡し、それらをフィールドで使用することにより、条件の表示を行いました。これは、何らかの方法でクライアント アプリケーションから呼び出していることを前提としています。

別のオプションは、結果をクライアントのデータテーブルにロードし、それにデータソースとしてバインドすることです。複数の結果セットをそのように処理することは確かに可能です。

于 2011-10-03T17:36:16.303 に答える