Отображение переменного количества изображений в SSRS - PullRequest
2 голосов
/ 12 августа 2011

Я хотел бы создать отчет, который будет отображать переменное количество изображений, т.е. 2 или 3 или 4 и так далее.У меня есть набор данных, который возвращает путь к каждому из этих изображений, см. Пример.

ВЫБРАТЬ путь из фотографий
возвращает:
'C: \ photos \ photo1.jpg
' C:\ photos \ photo2.jpg
'C: \ photos \ photo3.jpg
' C: \ photos \ photo4.jpg

другой набор данных может вернуть:
'C:\ photos \ photo7.jpg
'C: \ photos \ photo8.jpg
' C: \ photos \ photo9.jpg

Как я хочу, чтобы отчет выглядел:

Например, 1 я хочу, чтобы в отчете было 3 изображения, а затем еще одна во второй строке

Например, 2, я просто хочу, чтобы в отчете было 3 изображения.

Я пытался использоватьтаблица и таблица и не может заставить его работать.Есть идеи?

Ответы [ 2 ]

2 голосов
/ 12 августа 2011

Получите ваши пути из базы данных в трех полях.Затем поместите поля в три столбца таблицы.

Идея запроса - получить 1-й, 4-й, 7-й ... путь в столбце 1, 2-й, 5-й, 8-й ... путь в столбце 2 и 3-й, 6-й, 9-й ... path в столбце 3.

Пронумеровать пути с помощью Как выбрать n-ую строку в таблице базы данных SQL? и использовать функцию modulo 3 с самостоятельным объединением для создания трех столбцов.

create table #photo
(
    Path varchar(100)
)
go

insert into #photo values ('Path1')
insert into #photo values ('Path2')
insert into #photo values ('Path3')
insert into #photo values ('Path4')
insert into #photo values ('Path5')
insert into #photo values ('Path6')
insert into #photo values ('Path7')
insert into #photo values ('Path8')

go

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY Path)-1 AS RowNumber, Path
FROM #photo)
SELECT Ord1.Path as Col1Path, Ord2.Path as Col2Path, ord3.Path as Col3Path
FROM Ordered Ord1
left outer join
Ordered Ord2
on Ord1.RowNumber = Ord2.RowNumber - 1
left outer join 
Ordered Ord3
on Ord3.RowNumber = Ord2.RowNumber + 1
where Ord1.RowNumber % 3 = 0


drop table #photo

This is the report

0 голосов
/ 19 августа 2015

Я использовал это, чтобы иметь 4 строки различного количества изображений в столбцах с использованием отчета Matrix

ВЫБРАТЬ ImageLink, ImageRowNumber, ROW_NUMBER () OVER (PARTITION BY ImageRowNumber ORDER BY ImageLink) ImageColumns

FROM (ВЫБЕРИТЕ ImageLink, NTILE (4) OVER (РАЗДЕЛЕНИЕ ПО ImageLink, ПОРЯДОК ImageLink) КАК ImageRowNumber ОТ {Table} WITH (NOLOCK)) x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...