SSRS возвращает промежуточный итог в верхний ряд - PullRequest
0 голосов
/ 05 июля 2018

Я создал отчет, в котором пользователи могут выбрать компанию из сетки параметров, и он будет сравнивать результат с максимальным, минимальным, 2-м максимальным и 2-м мин (значения, сгенерированные с помощью пользовательского кода)

Если совпадение, он вернет взвешенную оценку, и я создал промежуточный итог для каждой строки, и я хотел бы использовать цветовое выражение для представления промежуточного итога в левой ячейке. (Если промежуточный итог больше 70, ячейка станет красным, ниже 49 станет зеленым, в промежутке от 50 до 70 станет желтым).

Для отчета столбец company и searchcompany является динамическим, строки являются статическими

Дизайн отчетов

enter image description here

Обзор отчетов

enter image description here

Однако, когда я реализую выражение, мой пользовательский код (все функции max min) не работает должным образом.

Представление дизайна отчета (размещение всех в одной строке)

enter image description here

Просмотр отчета (положить все в один ряд)

enter image description here

Я нашел решение, реализовав цветовое выражение в столбце промежуточных итогов.

Временное решение

enter image description here

Мне просто интересно, есть ли решение для меня, чтобы поместить все в одну колонку, как это?

Ожидаемый результат

enter image description here

Для пользовательского кода он ниже

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

функция сброса (я не показывал в шапках экрана)

=Code.resetMinMax(Fields!r.Value)

функция minmax (у меня есть ввод в столбце компании)

=Code.setMinMax(Sum(Fields!v.Value))

функция min и max

= Code.max1
= Code.max2
= Code.min1
= Code.min2

Пользовательский код предоставлен niktrs для более подробной информации

SSRS 2016 найти 2-й минимум / 2-й максимум

Заранее спасибо

...