SSRS报告分为4列

时间:2016-07-13 15:09:35

标签: reporting-services

我按以下顺序拥有数据集

Phase  WP    FY     ITEMNO
3C     DS   2016   2007463
3D     DS1  2017   2007463
3E     DS2  2018   2007463
3F     DS3  2019   2007463
3G     DS4  2020   2007463

我试图在SSRS中制作一个报告,分为4个不同的部分,并用水平线分隔

2007463

3C     DS   2016      3D     DS1  2017   3E     DS2  2018   3F     DS3  2019  
3G     DS4  2020

1 个答案:

答案 0 :(得分:0)

这可能有点像黑客,但我会做的是

  • 在数据集中添加一个不等于1到4

  • 的列号
  • 在报告上横向放置4个相同的表格

  • 按列号

  • 过滤每个表格

例如,使用此数据集,我添加了一个从1到4不等的列号(我还添加了几行):

 WITH cteBase AS (
    SELECT 
        Phase
    ,   WP
    ,   FY
    ,   (ROW_NUMBER() OVER(ORDER BY Phase) - 1) % 4 + 1 AS ColumnNum
    FROM (VALUES
        ('3C', 'DS', '2016')
    ,   ('3D', 'DS1', '2017')
    ,   ('3E', 'DS2', '2018')
    ,   ('3F', 'DS3', '2019')
    ,   ('3G', 'DS4', '2020')
    ,   ('3H', 'DS5', '2020')
    ,   ('3I', 'DS6', '2020')
    ,   ('3J', 'DS7', '2020')
    ,   ('3K', 'DS8', '2020')
    ) v(Phase, WP, FY)
)

SELECT
    Phase
,   WP
,   FY
,   ColumnNum
FROM cteBase

使用包含的列#

返回数据集
Phase   WP  FY  ColumnNum
3C  DS  2016    1
3D  DS1 2017    2
3E  DS2 2018    3
3F  DS3 2019    4
3G  DS4 2020    1
3H  DS5 2020    2
3I  DS6 2020    3
3J  DS7 2020    4
3K  DS8 2020    1

然后为"第1列和第34列创建一个表格,然后根据需要对其进行格式化,然后复制/粘贴它。这些粘贴的表格将用于第2列,第3列和第4列。

在每个表格中,为相应的列#。

设置Tablix过滤器

enter image description here

这是预览结果

enter image description here

编辑:如果您希望重复每个ItemNo ...

这是我的样本数据集。注意我将Row_Number更改为按ItemNo分区

  WITH cteBase AS (
    SELECT 
        Phase
    ,   WP
    ,   FY
    ,   ItemNo
    ,   (ROW_NUMBER() OVER(PARTITION BY ItemNo ORDER BY Phase) - 1) % 4 + 1 AS ColumnNum
    FROM (VALUES
        ('3C', 'DS', '2016', '20074063')
    ,   ('3D', 'DS1', '2017', '20074063')
    ,   ('3E', 'DS2', '2018', '20074063')
    ,   ('3F', 'DS3', '2019', '20074063')
    ,   ('3G', 'DS4', '2020', '20074063')
    ,   ('3H', 'DS5', '2020', '20074063')
    ,   ('3I', 'DS6', '2020', '20074063')
    ,   ('3J', 'DS7', '2020', '20074063')
    ,   ('3K', 'DS8', '2020', '20074063')

    ,   ('3C', 'DS', '2016', '99991234')
    ,   ('3D', 'DS1', '2017', '99991234')
    ,   ('3E', 'DS2', '2018', '99991234')
    ,   ('3F', 'DS3', '2019', '99991234')
    ,   ('3G', 'DS4', '2020', '99991234')
    ,   ('3H', 'DS5', '2020', '99991234')
    ,   ('3I', 'DS6', '2020', '99991234')
    ,   ('3J', 'DS7', '2020', '99991234')
    ,   ('3K', 'DS8', '2020', '99991234')
    ) v(Phase, WP, FY, ItemNo)
)

SELECT
    Phase
,   WP
,   FY
,   ItemNo
,   ColumnNum
FROM cteBase

然后在SSRS报告中,首先放置一个List对象。按ItemNo进行分组。

enter image description here

在列表中放置一个文本框以显示ItemNo,然后将表格放在列表中。

enter image description here

这是预览

enter image description here

如果要在列表中的每个项目之间分页,请选择列表,然后打开行组属性,转到分页符部分并选中“#34;在组的每个实例之间" 。

enter image description here