Фильтровать список по пользовательскому коду в службах Reporting Services 2005? - PullRequest
0 голосов
/ 02 сентября 2010

Ты можешь сделать это? Фильтр списка, который я хочу использовать, выглядит следующим образом:

Expression                                      Operator    Value
=Code.GetOccCat(Fields!accountnumber.Value)     =           =1

Без кубиков. По сути, она действует так, что эта функция возвращает ноль в отношении фильтра, но когда я снимаю фильтр и помещаю точно такой же вызов функции в текстовое поле в списке, она возвращает то, что должна вернуть. Ты можешь просто не делать этого, или чего мне не хватает?

Редактировать: вот функция, совершенно простая:

Public Function GetOccCat(ByVal AccountNum As Integer) As Integer
Return OccCat(AccountNum)
End Function

OccCat - это открытый массив целых чисел, который заполняется с помощью более раннего вызова функции. Опять же, правильные значения отображаются, если я просто поместил это в текстовое поле, поэтому проверяется, что массив заполнен правильно.

Редактировать: массив заполняется списком в верхней части отчета. Список повторяется по номеру аккаунта без фильтра. Внутри списка есть текстовое поле, содержащее этот код:

=Code.SetOccupancy(Fields!accountnumber.Value, First(Fields!new_total_hours.Value)/First(Fields!new_capacity.Value))

А вот эта функция:

Public Function SetOccupancy(ByVal AccountNum As Integer, ByVal Occ As Double) As String
Occupancy(AccountNum) = Occ
Select Occ
    Case Is > .85
        OccCat(AccountNum) = 1
    Case .7 to .849
        OccCat(AccountNum) = 2
    Case .4 to .699
        OccCat(AccountNum) = 3
    Case Is < .4
        OccCat(AccountNum) = 4
End Select
Return ""
End Function

FWIW, я также пробовал этот фильтр на основе массива Occupancy (в данном случае> 0,85) и получил тот же результат.

1 Ответ

0 голосов
/ 02 сентября 2010

Не могли бы вы показать свою функцию в своем коде?

Я только что проверил ее, и она, безусловно, работает для фильтрации пользовательского кода.Хотя я не использовал ваш именно потому, что не совсем понимаю, по чему вы пытаетесь фильтровать.

По какому полю вы хотите фильтровать?ваш код для вашего выражения в неправильном месте.В основном, поместите поле, по которому вы хотите фильтровать, в поле выражения, которое выпадает вниз.Затем поместите ваш = code.getocccat (мое значение) в выражение значения.

Попробуйте и дайте мне знать, но это, безусловно, работает.Я думаю, что у вас есть немного размещения.

...