2012-08-17 4 views
6

Ho più modelli di report di SSRS 2008 che contengono immagini incorporate e sono attualmente visibili come previsto in qualsiasi anteprima di gestore di report (utilizzando l'estensione di rendering HTML 4.0). Tuttavia, ho bisogno che questi report vengano inviati come e-mail HTML.Come includere immagini in linea (non collegate) nei report di posta elettronica SSRS?

Credo che la tecnica di base/più semplice sia quella di collegare le immagini come stringa inline base ai tag immagine nell'HTML. C'è un modo per farlo automaticamente in SSRS o in alternativa quale è la migliore pratica per ottenere questo o un risultato simile (ad esempio immagini come allegati risultanti in MHTML non troppo interoperabili invece di puro HTML)?

L'e-mail deve essere visualizzata così com'è senza connettersi a qualsiasi archivio esterno (vale a dire che non è possibile ospitare le immagini dal mittente). Inoltre, non utilizzeremo SSRS per inviare le e-mail/e-mail risultanti, quindi qualsiasi restrizione di tale natura non è motivo di preoccupazione.

Esempio di Base64 linea pensavo:

<img src="data:image/png;base64,xxxxxxxx==" alt="Some Image"> 
+0

Ho capito correttamente che stai creando il tuo servizio .NET che invia periodicamente messaggi e desideri utilizzare il rapporto html reso per il corpo? – Jeroen

+0

Sì, i contenuti del report devono essere forniti come array di byte per alcuni componenti di terze parti che effettivamente faranno l'invio dei messaggi. Il componente fa alcune cose di fantasia, il che significa che le funzioni e-mail di SSRS non devono essere utilizzate. – allu

risposta

2

Sembra che il modo più semplice per raggiungere questo obiettivo è quello di modificare o estendere l'estensione per il rendering solo un po ', come descritto nel MSDN documentation:

di scrittura personalizzati estensioni per il rendering

Prima di decidere di creare un'estensione per il rendering personalizzato, y ou dovrebbe valutare alternative più semplici. È possibile:

  1. Creare una versione modificata di un'estensione di rendering esistente.
  2. Personalizza l'output renderizzato specificando le impostazioni delle informazioni sul dispositivo per le estensioni esistenti.
  3. Aggiungere funzionalità di formattazione e presentazione personalizzate combinando XSL Transformations (XSLT) con l'output di nel formato di rendering XML.

Scrivi estensione per il rendering personalizzato è difficile da fare così come per imparare .. Un estensione per il rendering deve tipicamente supportare tutte le possibili combinazioni di elementi del report. Il modello di oggetto del report è esteso (classi, interfacce, metodi, e proprietà che è necessario implementare il numero in centinaia) e la documentazione e gli esempi non sono ancora ad un livello che può supportare attraverso un progetto di sviluppo impegnativo .

Se è necessario eseguire il rendering di un report in un formato non incluso in Reporting Services, è possibile scrivere l'implementazione del codice gestito di un'estensione per il rendering. Il codice di estensione del rendering deve implementare l'interfaccia IRenderingExtension , richiesta dal server di report . Ciascuna estensione di rendering implementata da Microsoft e fornita con Reporting Services utilizza un insieme comune di interfacce. Questo assicura che ogni estensione implementa funzionalità comparabili e riduce la complessità del codice di rendering nel core del server di report .

+1

sei riuscito a farlo funzionare? –

+0

non direttamente no. l'approccio più semplice qui è quello di modificare l'HTML dopo che la trasformazione è avvenuta (il che significa che tali immagini non sono visibili nelle anteprime dei report) o semplicemente scrivere l'estensione di rendering personalizzata che essenzialmente fa lo stesso. – allu