0

你能做到吗?我想要使​​用的列表过滤器如下所示:按Reporting Services 2005中的自定义代码过滤列表?

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

没有骰子。基本上,就像过滤器一样,函数返回null,但是当我关闭过滤器并将完全相同的函数调用放在列表中的文本框中时,它将返回应该返回的内容。你能不能做到这一点,或者我错过了什么?

编辑:这里的功能,完全简单:

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

OccCat是通过先前的函数调用填充整数数组公开。再次,正确的值显示,如果我只是把它放在一个文本框中,所以数组被验证正确填写。

编辑:数组通过报表顶部的列表进行填充。该列表重复accountnumber没有过滤器。里面的列表包含此代码的文本框:

=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,我也试着基于占用阵列上该过滤器(即>在这0.85案例)并得到相同的结果。

回答

0

你可以在你的代码中显示你的函数吗?

我刚刚检查过它,它肯定会过滤掉自定义代码。虽然我完全不使用你的,因为我不太明白你想要过滤的内容。

您想过滤哪个字段?

我想你只是把你的代码放在你的表达错误的地方。基本上,将要过滤的字段放在下拉的表达式框中。然后将你的= code.getocccat(我的值)放在值表达式中。

试试这个,让我知道,但它确实有效。我认为你的位置有点偏离。

+0

我把它放进去了,但它非常简单。 – extarbags 2010-09-02 17:03:31

+0

只需进行编辑,请检查并让我知道。 – user404463 2010-09-02 18:01:49

+0

我没有试图根据每个字段的字段进行过滤,实际上我试图根据函数调用的结果进行过滤,并将字段作为参数传递。换句话说,我真正想要的是它评估Code.GetOccCat(accountnumber)并显示返回1的行。 – extarbags 2010-09-02 18:45:16

相关问题