Frage

Ich habe mich gefragt, ob es möglich ist, die Excel-Tabelle nicht anzuhängen, wenn sie leer ist, und vielleicht einen anderen Kommentar in die E-Mail zu schreiben, wenn sie leer ist.

Wenn ich zu den Berichtszustellungsoptionen gehe, gibt es keine solche Konfiguration.

Bearbeiten:Ich verwende SQL Server Reporting Services 2005.

Einige mögliche Problemumgehungen sind unten aufgeführt:

MSDN:Reporting Services-Erweiterungen

NoRows- und NoRowsMessage-Eigenschaften

Ich sollte mir diese Dinge ansehen.

War es hilfreich?

Lösung

Ich glaube, die Antwort lautet nein, zumindest nicht aus der Box. Es sollte nicht schwierig sein, Ihre eigene Lieferverlängerung zu schreiben, da die in Rs enthaltene Probe für Drucklieferungsverlängerung enthalten ist.

Andere Tipps

Ja, ich denke nicht, dass das möglich ist. Sie könnten die Eigenschaft "Norows" Ihrer Tabelle verwenden, um eine Nachricht anzuzeigen, wenn keine Daten zurückgegeben werden. Dies würde jedoch nicht verhindern, dass der Bericht beigefügt wird. Zumindest als sie die Excel -Datei öffneten, konnte sie Ihre benutzerdefinierte Nachricht anstelle eines leeren Dokuments ausdrucken.

Habe das woanders gefunden...

Ich habe eine saubere Lösung für dieses Problem. Der einzige Nachteil besteht darin, dass ein Systemadministrator den Zeitplan erstellen und verwalten muss.Probieren Sie diese Schritte aus:

  1. Erstellen Sie ein Abonnement für den Bericht mit allen erforderlichen Empfängern.

  2. Legen Sie fest, dass das Abonnement wöchentlich am gestrigen Tag ausgeführt wird (z. B. wenn heute Dienstag ist, wählen Sie Montag aus), wobei der Zeitplan am heutigen Datum beginnt und am heutigen Datum endet.Im Wesentlichen wird dieser Zeitplan niemals ausgeführt.

  3. Öffnen Sie den neu erstellten Job in SQL Management Studio, gehen Sie zu den Schritten und kopieren Sie die SQL-Zeile (sie sieht etwa so aus:EXEC ReportServer.dbo.AddEvent @EventType='TimedSubscription', @EventData='1c2d9808-aa22-4597-6191-f152d7503fff')

  4. Erstellen Sie Ihren eigenen Job in SQL mit dem tatsächlichen Zeitplan und verwenden Sie etwas wie:

WENN EXISTIERT (WÄHLEN Sie Ihre Testkriterien aus...)

BEGINNEN

EXEC ReportServer.dbo.AddEvent @EventType=...usw.

ENDE

Ich habe Erfolg mit der Verwendung eines datengesteuerten Abonnements und einer Tabelle, die meine Abonnenten enthält, mit der datengesteuerten Abonnementabfrage wie folgt:

SELECT * FROM REPORT_SUBSCRIBERS WHERE EXISTS (SELECT QUERY_FROM_YOUR_REPORT)

In den Liefereinstellungen ist der Empfänger die Datenspalte, die meine E -Mail -Adressen enthält.
Wenn die innere Abfrage keine Zeilen zurückgibt, werden keine E -Mails gesendet.


Für Ihre Zwecke können Sie die Bereitstellungseinstellungen "Bericht" und "Kommentar" nutzen.
Ich stelle mir vor, dass eine datengesteuerte Abonnementabfrage für Sie für Sie funktioniert:

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

Verwenden Sie dann diese Spalten in den entsprechenden Feldern, wenn Sie die Liefereinstellungen für das Abonnement konfigurieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top