SSRS 2016 找到第二个最小值/第二个最大值
SSRS 2016 find 2nd minimum/ 2nd maximum
我想在我的行中找到第二个最小值。
我可以通过内置表达式完成 Min 和 Max。
有关 SSRS 的更多信息,它是从 SSAS 数据源加载的。
在 SSRS 设计中,我遵循了 Chris 的步骤
1.) 将自定义代码放入报表属性
2.) 将表达式输入到两个单独的列中(setMinMaxReset 和 setMinMax):
=Code.setMinMaxReset(字段!ID_AverageChangeRevenue_Value.Value)
=Code.setMinMax(字段!ID_AverageChangeRevenue_Value.Value)
SSRS design
3.) =code.min2 也被输入到列 MIN2
MAX2 相同
但事实证明结果不正确。感谢您的帮助
SSRS Review
您可以在报告中使用自定义代码将 min2 和 max2 存储在变量中(为避免与多个 get/set 函数混淆,我将变量声明为 public)
Public Dim max1 As Integer
Public Dim max2 As Integer
Public Dim min1 As Integer
Public Dim min2 As Integer
Public Function setMinMax(ByVal v As Integer) As Integer
If max1=0 Then
max1 = v
ElseIf v>max1 Then
max2 = max1
max1 = v
ElseIf v<max1 And v>max2 Then
max2 = v
End If
If min1 = 0 Then
min1 = v
ElseIf v < min1 Then
min2 = min1
min1 = v
Elseif min2=0
min2 = v
ElseIf v<min2
min2 = v
End If
Return v
End Function
Public Function resetMinMax(ByVal s As String) As String
max1 = 0
max2 = 0
min1 = 0
min2 = 0
Return s
End Function
对于每个行组(绿色),您将使用 resetMinMax 将组字符串作为参数传递。该函数将初始化每个组行的值并显示组名
=Code.resetMinMax(Fields!r.Value)
对于每个值单元格(蓝色),您将使用 setMinMax 将值作为参数传递。该函数将进行 min/max 计算并显示参数值
=Code.setMinMax(Sum(Fields!v.Value))
对于最小值和最大值,只需调用每个变量
= Code.max1
= Code.max2
= Code.min1
= Code.min2
我想在我的行中找到第二个最小值。 我可以通过内置表达式完成 Min 和 Max。
有关 SSRS 的更多信息,它是从 SSAS 数据源加载的。
在 SSRS 设计中,我遵循了 Chris 的步骤
1.) 将自定义代码放入报表属性
2.) 将表达式输入到两个单独的列中(setMinMaxReset 和 setMinMax): =Code.setMinMaxReset(字段!ID_AverageChangeRevenue_Value.Value) =Code.setMinMax(字段!ID_AverageChangeRevenue_Value.Value)
SSRS design
3.) =code.min2 也被输入到列 MIN2
MAX2 相同
但事实证明结果不正确。感谢您的帮助
SSRS Review
您可以在报告中使用自定义代码将 min2 和 max2 存储在变量中(为避免与多个 get/set 函数混淆,我将变量声明为 public)
Public Dim max1 As Integer
Public Dim max2 As Integer
Public Dim min1 As Integer
Public Dim min2 As Integer
Public Function setMinMax(ByVal v As Integer) As Integer
If max1=0 Then
max1 = v
ElseIf v>max1 Then
max2 = max1
max1 = v
ElseIf v<max1 And v>max2 Then
max2 = v
End If
If min1 = 0 Then
min1 = v
ElseIf v < min1 Then
min2 = min1
min1 = v
Elseif min2=0
min2 = v
ElseIf v<min2
min2 = v
End If
Return v
End Function
Public Function resetMinMax(ByVal s As String) As String
max1 = 0
max2 = 0
min1 = 0
min2 = 0
Return s
End Function
对于每个行组(绿色),您将使用 resetMinMax 将组字符串作为参数传递。该函数将初始化每个组行的值并显示组名
=Code.resetMinMax(Fields!r.Value)
对于每个值单元格(蓝色),您将使用 setMinMax 将值作为参数传递。该函数将进行 min/max 计算并显示参数值
=Code.setMinMax(Sum(Fields!v.Value))
对于最小值和最大值,只需调用每个变量
= Code.max1
= Code.max2
= Code.min1
= Code.min2