powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / оформление репорта в HTML
7 сообщений из 7, страница 1 из 1
оформление репорта в HTML
    #40024106
jevjem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется таблица вида:
col1col2col3col4id1***id1***id1***id2***id3***id3***id4***id4***id4***id4***id5***id5***

Использую sp_send_dbmail для отправки репорта в HTML формате, примитивно без оформления:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SET @xml = 
	CAST
	(
		(
			SELECT 
				[col1] AS 'td',''
				,[col2] AS 'td',''
				,[col3] AS 'td',''
				,[col4] AS 'td',''
			FROM #tbl_res
			FOR XML PATH('tr'), ELEMENTS 
		)
		AS NVARCHAR(MAX)
	)


Помогите советом - как оформить запрос, чтобы оформить HTML по принципу: группируем строки по значению [col1] и строки с каждым вторым по порядку значением оформляем другим цветом

col1col2col3col4id1***id1***id1***id2***id3***id3***id4***id4***id4***id4***id5***id5***

Использутеся SQL Server 2008 R2
...
Рейтинг: 0 / 0
оформление репорта в HTML
    #40024112
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jevjem
Помогите советом - как оформить запрос

Помогаю советом. Оформить SSRS и не забивать гвозди плоскогубцами.
...
Рейтинг: 0 / 0
оформление репорта в HTML
    #40024114
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бывает проще так, чем бежать за молотком.
fkthat
jevjem
Помогите советом - как оформить запрос

Помогаю советом. Оформить SSRS и не забивать гвозди плоскогубцами.
...
Рейтинг: 0 / 0
оформление репорта в HTML
    #40024133
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jevjem,

посмотри тут Оформление результата запроса в виде таблицы при отправке письма
функцию fnRawXMLToHTML

там, практически, то, что тебе нужно
только разный стиль для чётных/нечётных строк, сделанный через
Код: sql
1.
row_number()over(order by (select 1)) % 2


а у тебя будет
Код: sql
1.
dense_rank()over(order by col1) % 2
...
Рейтинг: 0 / 0
оформление репорта в HTML
    #40024147
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter
проще так, чем бежать за молотком.

Очень часто самый лютейший говнокод начинается именно с этих слов.
...
Рейтинг: 0 / 0
оформление репорта в HTML
    #40024158
jevjem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, иду копать :)

court
jevjem,

посмотри тут Оформление результата запроса в виде таблицы при отправке письма
функцию fnRawXMLToHTML

там, практически, то, что тебе нужно
только разный стиль для чётных/нечётных строк, сделанный через
Код: sql
1.
row_number()over(order by (select 1)) % 2


а у тебя будет
Код: sql
1.
dense_rank()over(order by col1) % 2

...
Рейтинг: 0 / 0
оформление репорта в HTML
    #40024489
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jevjem
Спасибо, иду копать :)

court
jevjem,

посмотри тут Оформление результата запроса в виде таблицы при отправке письма
функцию fnRawXMLToHTML

там, практически, то, что тебе нужно
только разный стиль для чётных/нечётных строк, сделанный через
Код: sql
1.
row_number()over(order by (select 1)) % 2



а у тебя будет
Код: sql
1.
dense_rank()over(order by col1) % 2


ТС, надеюсь, что разобрался
Но я, навсякий, поправлю себя )
Там, в функции, ничего менять НЕ нужно. В ней всё это уже "предусмотрено", "из коробки"
Нужно, просто, добавить в формируемый хмл создание поля trclass (оно в вывод не попадает), в котором будет создаваться ID класса, со стилем которого будет строка (и этих стилей, разумеется, может быть сколько угодно).
... а вот если это поле не формировать, тогда, по-умолчанию, стиль оформления и будет "для чётных/нечётных строк"

Типа такого
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
declare @query nvarchar(1000)='select top 20 *, dense_rank()over(order by [type]) % 2 as trclass from master..spt_values'
declare @xml xml
declare @HTML nvarchar(max) 
declare @StartTime datetime=getdate()

--
set @query=N'set @xml=('+@query+N' for xml raw, elements xsinil, type, xmlschema)'

exec sp_executesql @query, N'@xml xml out', @xml=@xml out 

set @HTML =
		N'<html>' +
		N'<head>'+
		N'  <style type="text/css">'+
		N'		th {background-color: #03A2B0;}'+
		N'		table {border-collapse: collapse; padding: 5px;}'+
		N'		table, th, td {border: 1px solid black;}'+
		N'		.tr_class0 {background-color: #CDF3F7;}'+
		N'  </style>'+
		N'</head>'+
		N'<body>'	+
		N'<h3>Прувэт !!1</h3>'+
		N'<table border="1">'+[dbo].[fnRawXMLToHTML](@xml,null)+N'</table>'+
		N'< br /><font size="2" color="#778899" face="Arial"><i>Покеда !</i></font>' +
		N'< br />' +
		N'<font size="1" color="#778899" face="Arial"><i>Время формирования: '+cast(datediff(ms, @StartTime, getdate()) as varchar)+' ms</i></font>' +
		N'</body>' +
		N'</html>';

print @HTML

...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / оформление репорта в HTML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]