Domanda

Mi chiedevo se è possibile non allegare il foglio Excel se è vuoto e forse scrivere un commento diverso nell'e-mail se vuoto.

Quando vado a segnalare le opzioni di consegna, non esiste tale configurazione.

Modifica : sto eseguendo SQL Server Reporting Services 2005.

Alcune possibili soluzioni alternative come indicato di seguito:

MSDN: Estensioni di Reporting Services

NoRows e Proprietà NoRowsMessage

Dovrei esaminare queste cose.

È stato utile?

Soluzione

Credo che la risposta sia no, almeno non pronta all'uso. Non dovrebbe essere difficile scrivere la propria estensione di consegna dato l'esempio di estensione di consegna di stampa incluso in RS.

Altri suggerimenti

Sì, non penso sia possibile. Puoi utilizzare il " NoRows " proprietà della tabella per visualizzare un messaggio quando non vengono restituiti dati, ma ciò non impedisce che il report venga allegato. Ma almeno quando hanno aperto il file Excel poteva stampare il tuo messaggio personalizzato anziché un documento vuoto.

Trovato da qualche altra parte ...

Ho una soluzione pulita a questo problema, l'unico lato negativo è che un amministratore di sistema deve creare e mantenere la pianificazione. Prova questi passaggi:

  1. Crea un abbonamento per il rapporto con tutti i destinatari richiesti.

  2. Imposta l'abbonamento per essere eseguito settimanalmente il giorno di ieri (ovvero se oggi è martedì, seleziona lunedì) con il programma che inizia alla data odierna e termina alla data odierna. In sostanza, questo programma non verrà mai eseguito.

  3. Apri il lavoro appena creato in SQL Management Studio, vai ai passaggi e copia la riga di SQL (sarà simile a questo: EXEC ReportServer.dbo.AddEvent @ EventType = 'TimedSubscription', @ EventData = '1c2d9808-aa22-4597-6191-f152d7503fff')

  4. Crea il tuo lavoro in SQL con la pianificazione effettiva e usa qualcosa come:

SE ESISTE (SELEZIONA i criteri del test ...)

BEGIN

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

FINE

Ho avuto successo con l'utilizzo di una sottoscrizione basata sui dati e di una tabella contenente i miei abbonati, con la query di sottoscrizione basata sui dati simile a questa:

SELECT * FROM REPORT_SUBSCRIBERS WHERE EXISTS (SELECT QUERY_FROM_YOUR_REPORT)

Nelle impostazioni di consegna, il destinatario è la colonna di dati contenente i miei indirizzi e-mail.
Se la query interna non restituisce righe, non verranno inviate e-mail.


Per i tuoi scopi, puoi usufruire del " Includi rapporto " e " Commento " impostazioni di consegna.
Immagino che una query di abbonamento basata sui dati come questa funzionerà per te:

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

Quindi utilizzare tali colonne nei campi appropriati durante la configurazione delle impostazioni di consegna per l'abbonamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top