miércoles, 14 de diciembre de 2011

Crear reporte con formato html en SQL SERVER 2008

Hay ocasiones en las cuales se solicita por parte del usuario el envió de alertas o reportes vía correo electrónico, por lo cual una opción rápida de desarrollar y sin tener que crearla del lado de la aplicación es mediante SQL SERVER, pero para esto creándolo con formato HTML y en este caso utilice una cuadricula para mostrar los resultados, pero pueden aplicar cualquier etiqueta deseada de html en el envió del correo.
Los pasos a seguir son:


1-declaramos una variable, la cual contendrá la información con las etiquetas html:
DECLARE @tablaHTML  NVARCHAR(MAX) ;

2-cargamos la variable con los datos a enviar:
SET @tablaHTML =
    N'<H1>Titulo deseado del reporte</H1>' +
    N'<table border="1">' +
    N'<tr><th>Columna1</th><th>columna2</th>' +
    N'<th>columna3</th>' +

    N'</tr>' +
    CAST ( ( SELECT td = Columna1,       '',
                    td = Columna2, '',
                    td = Columna3, ''
              From dbo.TablaDeDatosDeseados
             
              FOR XML PATH('tr'), TYPE
    ) AS NVARCHAR(MAX) ) +
    N'</table>' ;
   
3-Ejecutamos el procedimiento almacenado que envía el correo, con el cuerpo del mensaje pasando la variable que contiene nuestra consulta de la tabla

EXEC msdb.dbo.sp_send_dbmail @recipients='destinatario@tudominio.com',
    @profile_name = 'EmailPrueba',@subject = 'Reporte en HTML',
    @body = @tablaHTML,
    @body_format = 'HTML';

2 comentarios: