SSRS: как остановить сброс пользовательского кода с помощью интерактивной сортировки - PullRequest
0 голосов
/ 17 января 2020

Итак, я перешел к этому сообщению означает, медиана, режим в SQL Служба отчетов сервера , чтобы вычислить медиану с помощью пользовательского кода (см. Код ниже).

Я вставляю функцию AddValue в мой tablix и GetMedian в ячейку вне tablix, как указано. Он прекрасно работает с параметрами, которые фильтруют табликс (в данном случае, поставщики медицинских услуг) при изменении медианы.

Единственная проблема заключается в том, что я нажимаю на интерактивную сортировку в табликсе или даже нажимаю триггер, чтобы показать некоторые скрытая ячейка, она сбрасывает медиану на 0 (и я бы хотел, чтобы она не сбрасывалась). Я попытался изменить свою переменную на Publi c shared, и, похоже, это решает проблему в Preview, но это приводит к неправильному вычислению медианы в SSRS при ее развертывании. Любая идея для исправления этого?

[! [Конечный результат в SSRS того, что я пытаюсь сделать] [1]] [1]


Function AddValue(newValue As Integer) As Integer
    If newValue > 0 Then
        values.Add(newValue)
        AddValue = newValue
    Else
        AddValue = newValue
    End If
End Function

Public Function GetMedian() As Double
    Dim count As Integer = values.Count
    If count = 0 Then
        Return 0
    Else
        values.Sort()
        If count Mod 2 = 1 Then
            Return values(CInt((count / 2) - 0.5))
        Else
            Dim index1 As Integer = count \ 2
            Dim index2 As Integer = index1 - 1

            Dim value1, value2 As Integer
            value1 = values(index1)
            value2 = values(index2)

            Return (value1 + value2) / 2
        End If
    End If
End Function```


  [1]: https://i.stack.imgur.com/jheiw.png
...