Layout 如何在SSRS中创建布局表,如以下示例所示?

Layout 如何在SSRS中创建布局表,如以下示例所示?,layout,reporting-services,matrix,Layout,Reporting Services,Matrix,我希望创建一个这样的报告 Joe Smith Attr 1 - a Attr 4 - d Attr 2 - b Attr 5 - e Attr 3 - c Attr 6 - f 。。。其中,给定项的6个属性如下所示 我应该使用矩阵吗 矩阵可以这样使用吗 还是有比数据更与布局相关的更好的东西?首先,我要将值插入到临时表中,并为它们指定一个行号。然后,我将临时表连接到自身上,返回一列中的一半值和另一列中的另一半值: DECLARE @RowCount int DECLARE @

我希望创建一个这样的报告

Joe Smith
Attr 1 - a    Attr 4 - d
Attr 2 - b    Attr 5 - e
Attr 3 - c    Attr 6 - f
。。。其中,给定项的6个属性如下所示

我应该使用矩阵吗

矩阵可以这样使用吗


还是有比数据更与布局相关的更好的东西?

首先,我要将值插入到临时表中,并为它们指定一个行号。然后,我将临时表连接到自身上,返回一列中的一半值和另一列中的另一半值:

DECLARE @RowCount int

DECLARE @Items TABLE (
    Name nvarchar,
    RowNumber int
)

INSERT INTO @Items
SELECT      Name,
            ROW_NUMBER() OVER (ORDER BY Name)
FROM        SomeTable

SET @RowCount = CEILING((@@ROWCOUNT + 1) / 2)

SELECT          I1.Name LeftName,
                I2.Name RightName
FROM            @Items I1
LEFT OUTER JOIN @Items I2 ON I2.RowNumber = (I1.RowNumber + @RowCount)
WHERE           I1.RowNumber <= @RowCount
DECLARE@RowCount int
声明@Items表(
名字是nvarchar,
行数整数
)
插入到@Items中
选择名称,
行号()超过(按名称排序)
从某处
设置@RowCount=上限(@@RowCount+1)/2)
选择I1.Name LeftName,
I2.名称RightName
来自@Items I1
I2.RowNumber=(I1.RowNumber+@RowCount)上的左外联接@Items I2

其中I1.RowNumber是每个项目的属性数常量?现在,您的数据集是否将这些属性作为单独的字段(列)或记录(行)返回

如果它们已经作为单独的字段返回,那么我将向表中添加额外的数据组行:对于您给出的示例,增加三行。包含“Joe Smith”的单元格可以合并为几列


如果在SSRS中以这种方式布局表,并将字段作为不同的列返回,那么导出到.csv将比weenoid的解决方案好看得多。

多亏了你们两位,但基于我自己对SSRS的无知,我想要的是列表控件


如果我浪费了您的时间,我很抱歉。

我无法验证,但我相信总体而言,这也是一个很好的解决方案。(这意味着我的问题可能不够具体。)在我的例子中,我是从SharePoint连接获取数据的,所以我不认为临时表是一个选项。在我的例子中,这是一个比weenoid更好的解决方案,因为我所寻找的是一种改变布局的方法,这种布局更多的是SSR内部的,而不是数据。我最终使用了列表视图(参见我自己对问题的回答),但这个解决方案也同样好。