2017-01-11 31 views
0

SSRSレポートのRDLファイルのコマンドテキストにRAISE ERRORを追加できますか?SSRS RDLファイル - コマンドテキスト - RAISE ERROR

私のレポートでは、DBにデータがないため、空のPDFファイルが作成されています。データをチェックしたいのですが、データが見つからない場合はエラーを発生させる必要があります。それは可能ですか?

またはレンダリングコールの後、ファイルのコンテンツデータをどのように確認できますか?それを行う方法はありますか?

私たちはSSRS-2008-R2バージョンを使用しています。 であり、C#.netアプリケーションを使用してレポートを実行しているため、レポートサービスのWebServicesを介してレポートを呼び出し、レポートの結果を表すバイト配列を返しますが、配列バイトは常にバイトを持ちます。したがって、バイトが発生します。

私はバイト配列をチェックしてpdfを生成するかどうかを決定する必要があります。

どうすればいいですか?

答えて

0

SSRSには、DataSetに行があるかどうかを確認できる組み込み関数があります。

=CountRows(“DataSet1”) 

いつでも確認して、適切な処置をとることができます。

私はTablixの/マトリックスのためのHiddenプロパティでこれを使用して、行数が0

=IIf(CountRows(“DataSet1”) = 0, True, False) 

また、私は単にレポートにテキストボックスを追加したいときにそれを隠すのが好き報告するデータがありません。次に、そのデータセットが非表示のプロパティを介して空の場合を示します。

=IIf(CountRows(“DataSet1”) <> 0, True, False) 

エラーを発生させる必要はありません。ちょっとした工夫で問題を処理する必要はありません。これはSSRSのすべてのバージョンで動作します。

EDIT:

それを行う別の方法は、データセットソースのストアドプロシージャを使用しています。そのすべての論理を扱う。テンポラリ/作業テーブルにデータを選択し、行数が0かどうかを確認し、必要な処理(電子メール、データ返送、またはその両方)を行います。

もう1つの方法は、データ駆動型のサブスクリプションです。これは、SSRSエンタープライズエディションを実行している場合に利用できます。次に、監視したいデータの異常を警告するレポートを取得することができます。

+0

CountRows()が0を返した場合、いくつかのメッセージを取得する必要があります。どのようにそれを行うことができますか? – Sahi

+0

メッセージを受け取るとどういう意味ですか? –

+0

私はmsmqでgenerate pdf要求をキューに入れ、レプリケーションDBからデータを読み込みます。 msmqが要求の処理を開始するまでに、複製は行われません。したがって、データセットは空になります。 データセットが空の場合は、ssrs RDLからメッセージまたは空のデータセットを返し、要求をmsmqに再度エンキューします。 – Sahi

関連する問題