在SSRS的三列中显示一列

时间:2016-07-29 15:15:28

标签: sql-server reporting-services expression reporting ssrs-2012

我有一份SSRS报告,根据参数显示不同的记录数。结果是两列但是60行或更多,我试图将我的数据集结果显示在六列而不是两列中,以便更加用户友好并利用空白空间。 我有三个tablix和每个tablix点,所以相同的数据集和相同的列,但我在row visibility上应用了此表达式 第一个tablix的表达式是

=IIF((RowNumber(Nothing) Mod 3) = 1, False, True)

第二个tablix的表达式是

=IIF((RowNumber(Nothing) Mod 3) = 2, False, True)

最后tablix的表达式是

=IIF((RowNumber(Nothing) Mod 3) = 0, False, True)

我得到的结果是

T01 65       T02 85         T03 21
T04 85       T05 89         T06 85
T07 87       T08 85         T09 85

我有什么方法可以将结果显示为:

T01 65       T04 85         T07 87
T02 85       T05 89         T08 85
T03 21       T06 85         T09 85

2 个答案:

答案 0 :(得分:0)

SSRS内置了此功能。在布局选项卡上的报告属性下。

https://msdn.microsoft.com/en-us/library/ms159107.aspx

答案 1 :(得分:0)

您应该可以使用多列或"时事通讯样式"报告,但只有在渲染为PDF或其他图像格式时才能正常工作。您还可以考虑并排放置三个Tablix控件,并使用一些分页功能在它们之间平均分配行数。以下是article on technet

的示例
-- 2 - QUERY USING "ROW_NUMBER"
DECLARE @PageNumber AS INT, @RowspPage AS INT
SET @PageNumber = 2
SET @RowspPage = 10 
SELECT * FROM (
             SELECT ROW_NUMBER() OVER(ORDER BY ID_EXAMPLE) AS Numero,
                    ID_EXAMPLE, NM_EXAMPLE , DT_CREATE FROM TB_EXAMPLE
               ) AS TBL
WHERE Numero BETWEEN ((@PageNumber - 1) * @RowspPage + 1) AND (@PageNumber * @RowspPage)
ORDER BY ID_EXAMPLE
GO