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

相關問題