= MAX(LookupSet("SR Light Naphtha",Fields!DISPLAY_NAME.Value, Fields!Max.Value, "LIMS_VALUES"))
部署报告后,报告 UI 出现错误。
下面是返回值的数据集。我需要得到 MIN(Min) 和 MAX(MAX)。
使用下面的数据集,最大值的结果应该是 120。但它在报告 UI 上显示错误。
lookupset
函数返回一个对象,其中包含查找找到的所有值。由于 max
函数需要一列值,并且您给它一个对象,这意味着您正在尝试使用 max
执行 max
实际上无法执行的操作。
要查找
max
中返回的所有值中的 lookupset
,您需要向报告中添加一些自定义代码,然后将 lookupset
的结果传递给该自定义代码。
在自定义代码中,为每个循环编写一个循环,迭代
lookupset
的值并保留最大的值,输出循环末尾剩下的任何值。该值将是您所追求的最大值。
lookupset
的结果,尽管输出 HTML。您应该能够很容易地替换该函数的内部结构,以返回最小值、最大值或其他聚合,例如满足您自己需求的总和。
链接失效时的示例代码:
=LookupSet(Fields!SourceMatchCol.Value, Fields!TargetMatchCol.Value, Fields!ReturnCol.Value, "Dataset")
Function LookupSetMax(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim maxValue as Decimal = Decimal.MinValue
For Each item As Object In items
If thisItemAsDecimal > currentMax Then currentMax = thisItemAsDecimal
Next
Return maxValue
End Function
由于您的搜索值是硬编码的,因此您可以仅在带有 IIF 的数据集上使用 MAX:
= MAX(IIF(Fields!DISPLAY_NAME.Value = "SR Light Naphtha", Fields!Max.Value, NOTHING) "LIMS_VALUES")
= MIN(IIF(Fields!DISPLAY_NAME.Value = "SR Light Naphtha", Fields!Min.Value, NOTHING) "LIMS_VALUES")