2012-02-01 11 views
3

レポートにサブレポートを追加しました。サブレポートにデータがない場合は、サブレポートを非表示にするだけです。SSRS2008 R2の空のサブレポートを非表示

NoRowsプロパティはthis thread on Microsoft forumsに記載されていましたが、かなり古いものとしてSSRS 2005のスレッドと思われます。

データがない場合、サブレポートを非表示にする明確な方法はありませんか?サブレポート自体にタブリックスを隠すこともできますが、サブレポートが配置されている行を非表示にする必要もあります。これを行うには、サブレポートにメインレポートにデータがあるかどうかを示す必要があります。

これを整理する手掛かりはありますか?

答えて

5

私は1年ほど前に同様の問題がありました。

デフォルトの動作では、サブレポートのデータセットに行がない場合、SSRSはサブレポートを表示しませんでした。これはあなたが望むものの半分を達成しますが、サブレポート領域を非表示にするかどうかを親レポートに知らせることはできません。 IIRCでは、NoRowsプロパティはこの場合に表示される内容のみを制御しますが、実行時に他のプロパティを簡単にチェックすることはできません。

私の最終的な解決策は、サブレポートに行があるかどうかを示す、親レポート内の削除されたクエリを作成することでした。私は行とサブレポートの可視性を制御するためにこれを使用しました。私はよりエレガントな答えがあります疑う

...

こんにちは

+0

私は、http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/前にMSDNフォーラムから同様の回答を得ました糸/ 3e2d45aa-a9b4-4c6c-b43a-e7e4d5222196。私はあなたの答えを答えとして受け入れるでしょう。ありがとう。 – AnarchistGeek

0

AnarchistGeek、

私は自分自身この問題に遭遇していました。 "エラー:サブレポートを表示できませんでした"という行に沿った醜いエラーは本当に迷惑だった。

ソリューション: これを解決するには、サブレポートを矩形内にネストし、その矩形の可視性に関する式を使用しました。

ex。 = IIF(フィールド!Field1.Valueが偽の真の何も、ありません)
(私の場合はフィールド1が親レポートから返されたデータ列でした。)

に応じて変更を行います:)

0

私は終わりましたサブレポートが何も返さない場合は、その下の四角形がセルの外観を制御します - 私の場合、サブレポートが何も返さない場合、セルをグレーアウトする必要がありました。

このスレッドは私に考えを与えましたHow to supress empty subreports in SSRS 2008しかし、デフォルトでは、SSRSは何も返さないとサブレポートをレンダリングしないので、式を使用する必要はありませんでした。

0

私はこの問題に遭遇しましたが、答えがどれも私のために働いていませんでした。私の場合は、Crystal ReportをSSRSレポートに変換していて、すべてのグループで発生するサブレポートを使用していました。空のセクションをチェックボックスで非表示にすることができたので、これはCrystal Reportsでかなり簡単でした。

SSRSで私にとってうまくいったことは、サブレポートデータに存在する行数をカウントしたメインレポートクエリにサブクエリ/ CTEを追加することでした。例:

SELECT CommonCriteria, Count(*) [RowCount] 
FROM TableUsedInSubReport 
GROUP BY CommonCriteria 

次に、このサブクエリ/ CTEを共通基準のメインクエリに結合します。これを済ませたら、タブリックスの行の一番左を右クリックし、行の視認性を選択するだけで非常に簡単です。その後、式を使用し、そのような

=IIF(Sum(Fields!RowCount.Value) > 0, false, true) 

そのように、それは彼らが表示され、サブレポートに行がなければ、それはそれを隠すとしません、サブレポートに表示するすべての行がある場合...など空白を残す。

1

サブレポートを独自の行に配置しました。次に、テキストエディタでrdlファイルを編集し、行の高さを0に設定しました(デザイナーはこれをやらせません)。

行の高さが0の場合、サブレポートがデータを取得するまで、行は実質的に非表示になります。その時点で、サブレポートは行の高さを決定し、すべて正常に見えます。

rdlを編集する代わりに、コードの行の高さを設定することもできますが、私はそれを検討していません。

0

より簡単な解決策は以下のとおりです。

Sanjay Kumar Rajarao responded on 16 Oct 2013 12:15 AM Access sub report properties - visibility - show based on expression. Enter this code:

=IIF(RowNumber(Nothing)>0,False,True)

https://community.dynamics.com/gp/f/32/t/114129

関連する問題