矩阵表在不同的行中具有不同的值并在SSRS中求和

时间:2015-07-16 17:21:37

标签: sql-server matrix reporting-services

我必须创建一个类似于下面的SSRS报告。进入城市A&从城市B获得的是一个矩阵,而从城市C获得的是在不同的矩阵表中。这些是我从数据集获得的字段,最后一个%字段是由A / C计算的字段。由于A位于不同的Matrix表中,因此我无法获得该值进行计算。

Information         January February    March   April   May June    July    August

Entered into City        A                          
Leaved From City         B  
    TOTAL COUNTS AND ENTERED % OF COUNTS ARE MENTIOEND BELOW                    
Total Count in City      C                          
%of Ppl Entered         A/C                         

使用两个数据集的原因是我在表格的中间有一个单独的标题。 你能否就此提出建议

1 个答案:

答案 0 :(得分:0)

您可以通过在报告代码中创建哈希表来存储城市值,然后根据需要获取城市值来实现此目的。报告代码如下所示:

Dim cityTotals As System.Collections.Hashtable

Public Function AddCityValues(ByVal city As Object, ByVal amount As Object)
        If (cityTotals Is Nothing) Then
            cityTotals = New System.Collections.Hashtable
        End If
        If (Not cityTotals.Contains(customer)) Then
            cityTotals.Add(city, amount)
       End If
AddCityValues = amount
End Function

Public Function GetCityValues(ByVal city)
    If (Not cityTotals.Contains(city)) Then
        GetCityValues = 0
    End If        
        If (cityTotals.Contains(city)) Then
            For Each cityPair As System.Collections.DictionaryEntry In cityTotals
                If cityPair.Key.ToString() = customer Then
                GetCityValues = cityPair.Value
            End If
        Next
        End If
End Function

在报表表达式中,为了向哈希表添加值,请使用AddCityValues函数,如下所示:

=Code.AddCityValues(Fields!CityName.Value,Fields!Amount.Value)

为了在报告中稍后获取值,请使用GetCityValues,如下所示:

=Code.GetCityValues(Fields!CityName.Value)

您可以创建字符串键连接值,以便存储和获取更精细的数据。