如何将细节行包装成多行?

时间:2012-10-11 14:40:07

标签: sql-server-2008 reporting-services

SQL Server Reporting Services 2008

我有30个字段的行。而不是一行有30个字段,我想安排它们,所以我有三行,每行10个字段。我使用向导创建了此报告,报告类型是表(不是矩阵)。我该怎么做?

这是所需的输出:

Header1   Header2   Header3
Data1     Data2     Data3

Header4   Header5   Header6
Data4     Data5     Data6 

Header7   Header8   Header9
Data7     Data8     Data9 

2 个答案:

答案 0 :(得分:1)

使用三个详细信息行(如果使用标题,则使用三个标题行)。这意味着添加另外两个细节(最里面的)行和另外两个标题(最外面的)行。完成后,它应该如下所示:

HEADER:       Header1 | Header2 | Header3 | ...
HEADER:       Header11| Header12| Header13| ...
HEADER:       Header21| Header22| Header23| ...
GROUP HEADER: Group Name
DETAILS:      Field1  | Field2  | Field3  | ...
DETAILS:      Field11 | Field12 | Field13 | ...
DETAILS:      Field21 | Field22 | Field23 | ...

答案 1 :(得分:0)

我知道一个老问题,但是以防万一其他人在寻找,这个线程对我来说很有效:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/32f28407-e1ca-457e-92fd-d292e32dde4e/limit-no-of-columns-in-ssrs-matrix-report

为防止链接消失,我在下面复制了其中的一部分:

第一步:将以下代码复制到自定义代码区域

Dim FlagTable As System.Collections.Hashtable

Dim Flag AS Integer

 Function MyFunc(ByVal NewValue As Object) As Integer

If (FlagTable Is Nothing) Then

FlagTable = New System.Collections.Hashtable

End If

If (NewValue Is Nothing) Then

NewValue = "-"

End If

If (Not FlagTable .Contains(NewValue )) Then

Flag =Flag + 1

FlagTable.Add(NewValue, nothing)

End If

MyFunc = Flag

End Function

第二步:将列表添加到报告中

  1. 右键单击列表,然后选择“属性”。

  2. 单击“编辑详细信息组”按钮

  3. 键入表达式=Ceiling(Code.MyFunc(Fields!Productname.Value)/2)

注意:

1)Fields!Productname.Value是您的列组数据字段

2)2是要在一行中显示的列数