在SSRS中显示可变数量的图像

时间:2011-08-12 12:35:49

标签: sql reporting-services reporting

我想创建一个报告,显示可变数量的图像,即2或3或4等。我有一个数据集,它返回每个图像的路径,参见示例。

选择路径FROM照片
回报:
“C:\照片\ PHOTO1.JPG
“C:\照片\ photo2.jpg
“C:\照片\ photo3.jpg
“C:\照片\ photo4.jpg

另一个数据集可以返回:
“C:\照片\ photo7.jpg
“C:\照片\ photo8.jpg
“C:\照片\ photo9.jpg

我希望报告看起来像:

例如1我希望报告中有3张图片,然后是第二行的另一张图片

例如,我只想在报告中找到3张图片。

我尝试过使用表格和tablix,但无法使用它。任何想法?

2 个答案:

答案 0 :(得分:2)

从三个字段中的数据库中获取路径。然后将字段放在表的三列中。

查询的想法是获取第1列中的第1,第4,第7 ...路径,第2列中的第2,第5,第8 ...路径以及第3,第6,第9 ...路径第3栏。

使用How to select the nth row in a SQL database table?对路径进行编号,并使用带有自联接的模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

答案 1 :(得分:0)

我使用矩阵报告

在列中使用4行不同数量的图像

选择ImageLink,         ImageRowNumber,         ROW_NUMBER()OVER(由ImageLink分割ImageRowNumber ORDER)ImageColumns

这     (     SELECT ImageLink,             NTILE(4)OVER(由ImageLink ORDER BY ImageLink分割)AS ImageRowNumber     FROM {Table} WITH(NOLOCK)     )X