Изменение% отклонения в матрице SSRS - PullRequest
0 голосов
/ 07 февраля 2019

Привет. Я пытаюсь включить дисперсию в свою матрицу SSRS для процентов в месяц за месяцем.

Вот чего я хочу достичь:

FInal Matrix Result

выражение, которое я пытаюсь использовать, которое я получил от форума, выглядит следующим образом:

=ReportItems!Textbox15.Value - Code.GetPreviousValue(ReportItems!Textbox15.Value)

И это снова ссылается на пользовательский код из того же форума следующим образом:

Private previousValue As Integer = 0

Public Function GetPreviousValue(ByVal runningValue) As Integer

  Dim temp As Integer = previousValue
  previousValue = runningValue
  Return temp

End Function

Моя проблема в том, что это не работает для разницы между апрелем и маем, например, дает мне неверные результаты.

Чтобы быть ясными, апрельские и майские% значения верны, но отклоненияне отображаются, как в моем примере.Когда я проверяю их, они неверны.

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

Я думаю, что проблема в том, что проценты не проходят через часть пользовательского кода правильно.Может ли это быть из-за того, что это работает в соответствии с INT?

Я понимаю, что это может быть так же ясно, как грязь ... Немного изо всех сил, чтобы объяснить мою проблему.Спасибо

1 Ответ

0 голосов
/ 07 февраля 2019

Да, целое число создает проблему, потому что у вас есть значения с точками (97.3, 91.8 и т. Д.).Когда эти значения преобразуются в целое число, они теряют правильные десятичные разряды.Просто замените тип данных в вашей функции следующим образом:

Private previousValue As Double = 0

Public Function GetPreviousValue(ByVal runningValue) As Double

  Dim temp As Double = previousValue
  previousValue = runningValue
  Return temp

End Function
...