SSRS 查找函数 Returns #Error

SSRS Lookup Function Returns #Error

我刚接触 SSRS,遇到了一个查找函数的问题,我看不出问题所在。

我有一个带有查找函数的表达式,它应该 return 来自另一个数据集的值,但它是 returning #Error

我想列出一个人所有的抵押贷款 return 在另一个 table 中列出抵押类型的描述字符串。

所以,我的抵押贷款 Table 看起来像这样:

我的查找 table 看起来像这样:

我想加入 Mortgages.MortgageType 到 TypeIndex.ID 和 return TypeIndex.Description

我认为应该执行以下操作:

=Lookup(Fields!MortgageType.Value,Fields!ID.Value,Fields!Description.Value, "TypeIndex")

我检查了又检查,但似乎无法解决问题?

在这种情况下,您的查找数据集可能 return 为描述字段输入多个值。如果 TypeIndex 数据集将 return 多个 'Description' 值用于 ID,那么它会抛出错误。

要处理此问题,您可以在报告代码部分中添加一个函数,然后在表达式中使用该函数。该功能将如下所示。这还没有经过测试,你可能会稍微修改一下。

Function MergeLookup(ByVal items As Object()) As String
If items Is Nothing Then
Return Nothing
End If
Dim suma As String = New String()
Dim ct as Integer = New Integer()
suma = ""
ct = 0
For Each item As Object In items
suma += Convert.ToString(item) + ","
ct += 1
Next
If (ct = 0) Then return 0 else return suma 
End Function

现在在表达式中你可以像下面这样调用这个函数。

=Code.MergeLookup(Lookup(Fields!MortgageType.Value,Fields!ID.Value,Fields!Description.Value, "TypeIndex"))

这个 MergeLookup 函数将 return 一个字符串,用逗号分隔相同 ID 的不同 'Description' 值。

如果您仍然遇到一些问题,请告诉我。