Псевдоним строк с гиперссылками при отправке таблицы HTML через sp_send_dbmail - PullRequest
0 голосов
/ 30 ноября 2018

Я отправляю пользователям таблицу HTML по электронной почте, но из-за недостатка места хочу создать псевдоним гиперссылкиПожалуйста, посмотрите на изображение.

Вот Sample1 изображения:

Sample1

Пожалуйста, смотрите мой код ниже:

    DECLARE @bodyMsg nvarchar(max)
    DECLARE @subject nvarchar(max)
    DECLARE @tableHTML nvarchar(max)
    SET @subject = 'Query Results in HTML with CSS'
    DECLARE @email_to_notify nvarchar(256);
    SELECT @email_to_notify = 'bens@ioec.co.za' ;
    SET @tableHTML = 
    N'<style type="text/css">
...
</tr>' +
CAST ( ( 

SELECT 
td = y.Customer,'',
td = y.ContractNumber,'',
td = y.Description ,'',
td = y.Market ,'',
td = y.BDM ,'',
td = y.EC ,'',
td = y.Reason ,'',
td = y.Link 
FROM (SELECT  FileReference AS 'Reference', Name AS 'Customer' , 
        CASE WHEN ContractNumber IS NULL THEN '' ELSE ContractNumber END AS 'ContractNumber',           
        'http://gateway.ioec.co.za/#/trade/files/' + CONVERT(varchar(10),Gw_File.FileID) AS 'Link'
FROM Gw_File INNER JOIN ... ) y
FOR XML PATH('tr'), TYPE 
) AS NVARCHAR(MAX) ) +
N'</table>' 

EXEC msdb.dbo.sp_send_dbmail @recipients='rajivs@ioec.co.za',
@subject = @subject,
@body = @tableHTML,
@body_format = 'HTML' ;

Я также хотел бы выделить строки в зависимости от значения столбца причины.

1 Ответ

0 голосов
/ 30 ноября 2018

Кажется, что когда вы проходите разметку, вы не сохраняете ее тип.Специальные символы, такие как <, будут заменены строковым представлением, чтобы сохранить действительность xml.Например, < & &lt; и & & &amp;.

Если это просто символы > и <, вы можете использовать замену перед отправкой электронного письма:

SET @tableHTML = REPLACE(REPLACE(@tableHTML,'&gt;','<'),'&lt;','>');

Это, однако, означает, что у вас нет вложенного HTML.

...