Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / оформление репорта в HTML / 7 сообщений из 7, страница 1 из 1
02.12.2020, 23:57
    #40024106
jevjem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оформление репорта в HTML
Имеется таблица вида:
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
03.12.2020, 01:32
    #40024112
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оформление репорта в HTML
jevjem
Помогите советом - как оформить запрос

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

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

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

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


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

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

court
jevjem,

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

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


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

...
Рейтинг: 0 / 0
04.12.2020, 11:08
    #40024489
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оформление репорта в HTML
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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / оформление репорта в HTML / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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