Использование CSS для управления форматированием в dbmail

Я написал запрос, и в настоящее время у меня есть задание, которое запускается и отправляет электронное письмо с использованием sp_send_dbmail в отформатированную таблицу, если выполняются определенные условия. Я использую таблицы стилей для управления форматом, и это прекрасно работает для всех столбцов, возвращенных с использованием стиля для td, но мне нужно контролировать формат только отдельных столбцов данных, т.е. управлять выравниванием текста, типом данных, цветом и т. Д. данных столбца значения независимо от заголовка столбца. Я хотел бы отформатировать отдельные столбцы ниже в валюте, если это возможно, и правильно их обосновать. Даже если я не могу отформатировать в валюту, если бы я мог отформатировать в числовой формат со значением через запятую (XX,XXX), я могу объединить знак $. Я приложил фрагмент вывода таблицы, а также код.

Позвольте мне также заранее извиниться за то, что код css отображается на этой веб-странице в моем коде.

К вашему сведению, под сводной таблицей, показанной здесь, есть еще одна таблица, но я ее не отправлял. Во многом схожий по природе, мне просто нужно руководство по внедрению таблицы стилей в работу.

Во время поиска в Интернете я обнаружил запрос, почти идентичный моему, с той же проблемой, и ответ был следующим: Примечание: создайте классы css для каждого вышеупомянутого td.

CAST 
(( SELECT
[td/@class]='anyclassname1', td = [Column Name 1], "*"='',
[td/@class]='anyclassname2', td = [Column Name 2], "*"='', etc.

Я попытался это и заменил [td/@class]='text-align: right', и не могу заставить его работать. Любая помощь будет принята с благодарностью.

DECLARE @bodyMsg nvarchar(max)
DECLARE @subject nvarchar(max)
DECLARE @tableSummary nvarchar(max)

SET @subject = 'Matter Alert for 189274' 



SET @tableSummary = 
N'<style type="text/css">
#box-table
{
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
font-size: 12px;
text-align: left;
border-collapse: collapse;
border-top: 7px solid #9baff1;
border-bottom: 7px solid #9baff1;
}
#box-table th
{
padding: 5px;
font-size: 13px;
font-weight: normal;
background: #b9c9fe;
border-right: 2px solid #9baff1;
border-left: 2px solid #9baff1;
border-bottom: 2px solid #9baff1;
color: #039;
}
#box-table td
{
padding: 5px;
border-right: 1px solid #aabcfe;
border-left: 1px solid #aabcfe;
border-bottom: 1px solid #aabcfe;
color: #669;
}
tr:nth-child(odd) { background-color:#eee; }
tr:nth-child(even) { background-color:#fff; } 
</style>'+ 
N'<H3><font color="Red">Matter Management Alert</H3>' +
N'<table id="box-table" >' +
N'<tr><font color="Green">
<th>Base Rate Value (B)</th>
<th>Value at A Rate</th>
<th>Value at C Rate</th>
<th>Value at $125/Hr</th>
<th>Threshold</th>
</tr>' +
CAST ( ( 

SELECT 
td = cast(sum(itdr.[Base Amt]) as numeric(25,2)),'',
td = cast(sum(itdr.[A Rate Value]) as numeric(25,2)),'',
td = cast(sum(itdr.[C Rate Value]) as numeric(25,2)),'',
td = cast( sum(
CASE WHEN itdr.[Employee Code] = 'TLW'
THEN (itdr.[Base Hrs] * 125)
ELSE (itdr.[Base Amt])
END
) as numeric(25,2)),'',
td = '5000'
FROM Intl_Tax_Data_Run itdr
where itdr.[Matter Code] = '189274'
FOR XML PATH('tr'), TYPE 
) AS NVARCHAR(MAX) ) +

N'</table>' 

declare @nbody varchar(max)


set @nbody = @tableSummary




EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'ProfileName',
@recipients='stevesmith@abcco.com',
@from_address = 'stevesmith@abcco.com',
@subject = @subject,
@body = @nbody,
@body_format = 'HTML' ;

Пример таблицы

0 ответов

Другие вопросы по тегам