4

ストアドプロシージャからデータをフェッチするSSRSレポートに単一のタブリックがあります。

「**このレポートのデータはありません*」と言って、データが存在しないときにユーザーにメッセージを表示しようとしていますtablixの**NoRowsMessageプロパティでこのメッセージを指定することで、これを簡単に行うことができます。しかし、このメッセージと一緒にTablixのヘッダーを表示したいと思います。

NoRowsMessageプロパティを設定しないと、ヘッダーは表示されますがメッセージは表示されませんが、設定すると、メッセージは表示されますがヘッダーは表示されません。

これについては助けが必要です。

注:私はSSRS2008を使用しています。

編集:

また、タブリックスの下に関連するテキストメッセージを含むテキストボックスを配置し、タブリックスに行が含まれていない場合にのみ表示するように設定することもできます。しかし、テキストボックスのVisibility式から、tablixに行が含まれているかどうかを確認する方法を理解できません。

4

1 に答える 1

6

Tablix オブジェクトは基になるデータセットに関連付けられているため、データがない場合、出力にテーブルはありません。

NowRowsMessageプロパティを使用する以外に、これを強制するために考えられる唯一の方法は、行が返されたときにクエリが空の値のプレースホルダーを返すようにすることです。このようにして、本質的に単一のデータ行が得られます。

次に、テーブル (つまり、詳細行の Visibility プロパティ) に条件式を追加して、プレースホルダーを含む行が表示されないようにすることができます。

したがって、クエリでは次のようにすることができます。

IF (@@ROWCOUNT= 0)
BEGIN

SELECT 
'[IAMEMPTY]' as [Col1]
,'[IAMEMPTY]' as [Col2]
,'[IAMEMPTY]' as [Col3]

END

次に、テーブルの詳細行の Visibility プロパティで:

=Iif(Fields!Col1.Value = "[IAMEMPTY]",True,False)

編集: または、SSRS で DataSet が空であるかどうかを確認し、メッセージ/ヘッダーを含む四角形を表示するには (TooSik のコメントで述べたように)、Visibility 式でこれを使用して四角形を設定できます。

=Iif(Rownumber("Dataset_Name")=0, False,True)
于 2012-04-25T15:59:09.330 に答える