Попытка сгенерировать выражение из таблицы на основе значений таблицы - PullRequest
1 голос
/ 23 апреля 2019

Мой отчет SSRS создает сводную таблицу. Мне нужно сделать расчет на основе 2 частей данных из таблицы и добавить его в качестве выражения в нижней части отчета. Мое выражение ошибки из-за отсутствия чтения данных из таблицы.

Я отслеживал все примеры, которые мог найти, с полученной ошибкой, но не нашел решения. Я новичок в SSRS. Я проверил выражение, просто используя оператор IIf для возврата искомых значений (без остальных необходимых мне вычислений), и оно не возвращает ни одно из значений. Я получаю "#Error" в результате. Я скопировал значения поиска непосредственно из кода SQL, поэтому я ЗНАЮ, что в моих сравнительных значениях нет опечаток.

У меня есть это для кода в моем выражении:

=Code.Divide
(IIf(Fields!Results.Value = "BKR3 - Total Overtime Hours", Fields!Results.Value, 0)) , 
(IIf(Fields!Emp_Type.Value = "BKR1 - Total Paid Hours", Fields!Results.Value, 1))

Через другой вопрос stackoverflow я нашел этот код и добавил его в свой отчет:

Public Function Divide(ByVal dividend as Double, ByVal divisor as Double) As Double
    If IsNothing(divisor) Or divisor = 0 Or IsNothing(dividend) Or dividend=0 THEN
        Return 0
    Else
        Return dividend/divisor
    End If
End Function

Я получаю эту ошибку:

Выражение Value для textrun ‘Textbox3.Paragraphs [0] .TextRuns [0]’ содержит ошибку: [BC30455] Аргумент не указан для параметра «делитель» публичной функции Делить (делить как двойные, делить как двойные) как двойные ».

Вот так выглядит мой вывод:

*Emp_Type                              Results
*A3-Facility Payroll Hours            28,252.20
*A4-Provider Payroll Hours             1,998.50
*BKR1-Total Paid Hours                30,250.70
*BKR2-Total Worked Hours              27,037.62
*BKR3-Total Overtime Hours               504.20
*BS1-Hospital FTEs                        99.72
*BS2-Clinic FTEs                          23.25

Сверхурочные% # Ошибка

(мне очень жаль, я не могу получить список для отступа!)

Я ожидаю, что это мои результаты:

      Overtime %                               0.18% 

Вот что я получаю вместо:

      Overtime %                               #Error
...