2017-08-24 102 views
0

使用VS 2015和SSRS版本14.0.608.142SSRS:如何使用自定義函數

我有類似我的報告屬性的代碼部分的功能下面,我嘗試使用它篩選查詢過濾掉我的數據集中的值,但它沒有返回任何值或給出任何錯誤。函數內部的值在運行時會被另一個應用程序改變,所以它裏面的值只是一個佔位符。

Function FilterBy() As String 
    FilterBy = "'REMIT'" 
End Function 

我有函數被用作參數的默認值,參數是在我的數據集的where子句中篩選出必要的值。

因此,內部參數默認值:

=code.FilterBy 

集查詢:

SELECT Blah 
FROM dbo.Table 
WHERE ID = @parameter; 

回答

0

所以,我注意到在你的函數,你設置一個變量,但沒有返回它。如果您試圖在報告屬性中設置變量,則不能修改它們。這些東西是靜態的。但是,您可以在代碼中聲明一個變量並使用set並獲取它們。

dim FilterBy = "REMIT" Function getFilter() As String return FilterBy End Function Function setFilter(input as String) FilterBy = input End Function

因此你的參數默認值是: =Code.getFilter()

還要注意,我沒有添加單引號匯出。當您在查詢中傳遞參數時,不需要向它添加單引號,它將由SSRS添加。除非數據庫中的值爲'REMIT',否則務必繼續。