Я использую несколько пользовательских функций для выполнения некоторых статистических данных в SSRS. Код был построен и протестирован в Visual Studio 2010, и отлично работает, когда я пытаюсь и просматриваю отчет. Однако, когда я пытаюсь развернуть отчет в SSRS 2008R2 я получаю сообщение об ошибке:Ошибка SSRS в пользовательском коде: выражение ожидается
There is an error on line 40 of custom code: [BC30201] Expression expected.
я искал высоко и низко для решения этой проблемы, но я до сих пор найти. Вот проблемный код:
Public Function Avrg(c1 As Double, c2 As Double, c3 As Double, c4 As Double, c5 As Double, c6 As Double, c7 As Double, c8 As Double, NumQuarters As Integer) As Double
Dim AV_Data As Double() =
IIf(NumQuarters = 1, {c1, c2, c3, c4, c5},
IIf(NumQuarters = 2, {c1, c2, c3, c4, c5, c6},
IIf(NumQuarters = 3, {c1, c2, c3, c4, c5, c6, c7}, {c1, c2, c3, c4, c5, c6, c7, c8})))
Dim stats = STDEV_Ave(AV_Data)
Avrg = stats(2)
End Function
EDIT: Строка 40 является, по-видимому объявление функции (первая строка представлена) ... хотя я не могу найти ничего плохого.
Функция принимает 8 параметров из отчета и на основе количества неархивированных кварталов данных, которые считывает отчет (который может варьироваться от 1-4), объявление массива отличается. Этот массив подается в статистическую функцию, которая выполняет фактическую статистику и возвращает нужный номер. В этом примере это простое среднее.
Я изменил код один раз, первоначально это было предложение if-elseif-else, но я прочитал несколько мест, которые мне нужно было заменить каскадным IIF, потому что SSRS VB-компилятор имеет gimped.
Любая помощь была бы принята с благодарностью!
Мы не можем определить, какие из этих строк являются «Линией 40». – OneFineDay
Это первая строка кодового блока; Я уточнил это в вопросе. Благодаря! –
Отладить эту функцию и посмотреть, какая она. Это может быть даже функция 'STDEV_Ave' – OneFineDay