SQL Server Reporting Services 2005-空のレポートを処理する方法
-
03-07-2019 - |
質問
Excelシートが空の場合は添付せず、空の場合は電子メールに別のコメントを書くことは可能かどうか疑問に思っていました。
レポート配信オプションにアクセスすると、そのような構成はありません。
編集:SQL Server Reporting Services 2005を実行しています。
以下に記載されているいくつかの可能な回避策:
これらのことを調べる必要があります。
解決
答えは「いいえ」で、少なくとも箱から出していないと思います。 RSに含まれる印刷配信拡張機能のサンプルを考えると、独自の配信拡張機能を書くことは難しくありません。
他のヒント
ええ、それは可能だとは思いません。 " NoRows"を使用できます。データが返されないときにメッセージを表示するためにテーブルのプロパティを使用しますが、それによってレポートの添付が妨げられることはありません。ただし、少なくともExcelファイルを開いたときには、空のドキュメントの代わりにカスタムメッセージを印刷できます。
別の場所でこれを見つけました...
この問題に対する明確な解決策がありますが、唯一の欠点は、システム管理者がスケジュールを作成して維持する必要があることです。次の手順を試してください:
-
必要なすべての受信者を含むレポートのサブスクリプションを作成します。
-
サブスクリプションを昨日の曜日に毎週実行するように設定します(つまり、今日が火曜日の場合は月曜日を選択します)。基本的に、このスケジュールは実行されません。
-
SQL Management Studioで新しく作成されたジョブを開き、ステップに進み、SQLの行をコピーします(次のようになります。 '1c2d9808-aa22-4597-6191-f152d7503fff')
-
実際のスケジュールを使用してSQLで独自のジョブを作成し、次のようなものを使用します。
存在する場合(テスト条件を選択...)
開始
EXEC ReportServer.dbo.AddEvent @EventType = ...など。
END
データドリブンサブスクリプションとサブスクライバーを含むテーブルの使用に成功しました。データドリブンサブスクリプションクエリは次のようになります。
SELECT * FROM REPORT_SUBSCRIBERS WHERE EXISTS (SELECT QUERY_FROM_YOUR_REPORT)
配信設定では、受信者は私のメールアドレスを含むデータ列です。
内部クエリが行を返さない場合、メールは送信されません。
目的に応じて、「レポートを含める」を利用できます。および「コメント」配信設定。
このようなデータドリブンサブスクリプションクエリが機能すると思います。
SELECT 'person1@domain.com; person2@domain.com' AS RECIPIENTS,
CASE WHEN EXISTS (REPORT_QUERY) THEN 'TRUE' ELSE 'FALSE' END AS INCLUDE_REPORT,
CASE WHEN EXISTS (REPORT_QUERY) THEN 'The report is attached' ELSE 'There was no data in this report' END AS COMMENT
次に、サブスクリプションの配信設定を構成するときに、適切なフィールドでこれらの列を使用します。