Output SQL queries naar HTML

Onderstaande query toont de output van een aantal queries op de ESBException database in HTML. Dit maakt het makkelijk om snel een opgemaakte standaardrapportage aan te kunnen maken. In combinatie met mailfunctionaliteit kun je rapportage automatisch versturen (niet uitgeprobeerd):
EXEC master.dbo.xp_sendmail
@recipients=N’danw@Adventure-Works.com’,
@query = @body ;
GO

Query

Voor eenvoudig copiëren worden hieronder de sql statements nog eens getoond:

declare @body varchar(max)
declare @body2 varchar(max)

— Create the body
set @body = cast(
(
select td = cast( Datum as varchar(10) ) + ‘</td><td>’ + cast( Aantal as varchar(10) ) + ‘</td>’
from (
SELECT CONVERT(date, F.[DateTime], 113) As Datum,
COUNT(1) as Aantal
FROM Fault F WITH (NOLOCK)
WHERE F.FaultStatus in (0)
GROUP BY CONVERT(date, F.[DateTime], 113)
) as d
order by Datum ASC
for xml path( ‘tr’ ), type )
as varchar(max)
)

set @body2 = cast(
(
select td = Totaal + ‘</td><td>’ + cast( Aantal as varchar(10) ) + ‘</td>’
from (
SELECT ‘Totaal’ as Totaal, COUNT(*) as Aantal
FROM Fault F WITH (NOLOCK)
WHERE F.FaultStatus in (0)
) as d
for xml path( ‘tr’ ), type )
as varchar(max)
)

De @body variabele kan gevuld worden met onderstaande string. Let op het gebruikt van een interne style sheet en de links die binnen het document zijn gezet naar specifieke secties.

<head>
<style type=”text/css” media=”screen”>
         body { font-family:”Arial”; font-size:14px; }
         hd { background-color:yellow; }
         a { background-color:yellow; }
       </style>
</head>
<a href=”#FaultsPerDay”>FaultsPerDay</a>
<a name=”#Faults Per Day”>FaultsPerDay</a><BR><BR>
<table cellpadding=”2″ cellspacing=”2″ border=”1″>
  <tr><th>Datum</th><th>Aantal</th></tr>
  replace( replace( @body, ‘&lt;’, ‘<‘ ), ‘&gt;’, ‘>’ )
  replace( replace( @body2, ‘&lt;’, ‘<B><‘ ), ‘&gt;’, ‘></B>’ )
</table>
<BR><BR>

Leave a Reply

Your email address will not be published. Required fields are marked *