从所选参数中获取最大值报表生成器

时间:2015-10-28 15:28:55

标签: reporting-services report builder

我的报告有一个年份参数,您可以一次选择多年。对于小计行,我需要它来总结参数中选择的所有年份的总数,除了他们选择的最大年份。我尝试了以下两个例子但它们不起作用。

第一个例子我尝试使用参数基于\

的字段
=Sum(iif(Fields!YEAR.Value < Max(Fields!YEAR.Value), Fields!Year_Sold.Value, Nothing))

第二个例子我尝试使用实际的最大参数值

=Sum(iif(Fields!YEAR.Value < Max(Parameters!BLDYEAR.Value), Fields!Year_Sold.Value, Nothing))

所以,让我们说当你运行报告并在下拉列表中选择bldyear参数时,它将具有年份2010,2011,2012,2013,2014,2015。现在假设您选择2010年至2013年的年份我想要除2013年以外的所有年份的小计。

2 个答案:

答案 0 :(得分:1)

如果您的参数为Integer类型,则可以使用以下方法。

转到报告属性

enter image description here

Code tab /自定义代码中输入以下代码:

Public Function GetMax(ByVal parameter as Parameter) as Integer
   Dim max as Integer
   max = 0
      For i as integer = 0 to parameter.Count-1
    If max < parameter.Value(i) Then
        max = parameter.Value(i)
    End If
      Next
   Return max
End Function

然后在表达式中调用传递参数的函数。

=Sum(iif(Fields!YEAR.Value < Code.GetMax(Parameters!BLDYEAR),
Fields!Year_Sold.Value, 0))

亲自试试并告诉我这是否可以帮助您。

答案 1 :(得分:0)

如果您的参数值按从高到低的顺序排列,Parameters!Seasons.Value(0) 应返回最高(最大)选定值。否则,必须使用 Custom Code 来计算所选的最高值。