Как получить общее количество групп в строке в отчете RDL? - PullRequest
1 голос
/ 03 июня 2019

Как получить общее количество группы в строке? Я попытался Fields!Sales.Value/SUM(Fields!Sales.Value), но он возвращает 1 вместо row_amount/group_total, отчет возвращается row_amount/row_amount

PS: данные поступают из куба SSAS. Я сделал изображение ниже 1 , чтобы подвести итог, что я хочу сделать enter image description here

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Вы можете просто сравнить значения по ReportItems.То есть вы можете указать имя для текстового поля sales и для текстового поля totalsales и выполнить сравнение, используя эти значения.Следующее выражение, скорее всего, будет работать так, как задумано.

= (ReportItems!SalesTextbox.Value / ReportItems!SalesTotalTextbox.Value) * 100.0

Другая вещь, на которую следует обратить внимание, это то, что если ваш результат равен 1, вы можете иметь дело с целочисленным делением ваших данных.Убедитесь, что возвращаемые данные имеют тип данных double или decimal, а не integer.Если вы исправите тип данных, он может работать так, как у вас сейчас.

0 голосов
/ 03 июня 2019

Вам также необходимо обработать ошибки «деление на ноль». Использование «= IIf (знаменатель = 0, 0, числитель / знаменатель) не работает, поскольку функция« IIf »оценивает как« тогда », так и«еще "и все равно вернет ошибку.Мы используем немного пользовательского кода, который я нашел в SO (хотелось бы, чтобы я мог вспомнить, откуда он взялся, чтобы я мог отдать ему должное).

Public Function HandleDivideByZero(ByVal numerator As Decimal, denominator As Decimal) As Decimal
        If denominator = 0 Then
            Return 0
        Else
            Return numerator / denominator
        End If
End Function
...