2010-08-31 62 views
13

如何在自定義代碼中循環訪問數據集的行?
我有一個包含數據集的報告。我將數據集作爲參數傳遞給自定義代碼函數。但是呢?關於可用會員等的參考在哪裏?
這是迄今爲止我啞示例代碼:如何在Reporting Services rdl自定義代碼中循環數據集行

Public Function ShowParameterValues(ByVal ds as DataSet) as object() 
    Dim codes() As Object 
    Array.Resize(codes,dc.???.Count) 
    codes(0)=ds??(field???)(row??) 
    return codes 
End Function 

請注意:這將是一個非常簡單的腳本(如果它會工作),所以我並不想進入定製組件等

+0

您是否試圖在報告上顯示數據? – beakersoft 2011-01-18 16:33:45

+1

告訴我們你想達到什麼目的。 RDL文件包含報告結構的XML模式,而不是數據。當報表檢索數據時,報表的數據在運行時綁定。您最好製作一個腳本,以便在報告已經運行的情況下抓取網頁,並向您顯示數據。再次,沒有更多的信息,這很難破譯你想要達到的目標, – Fandango68 2016-08-14 20:33:15

回答

-1

我想你有你的答案:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a7d59224-0ee5-491e-883b-2e5fcb3edeab/iterate-through-rows-of-dataset-in-reports-custom-code?forum=sqlreportingservices

共有的兩條重要信息我可以從上面的鏈接把握:

首先,Reporting Services中的數據集與ADO.Net數據集的對象類型不同。報表數據集是由SSRS運行時管理的內部對象(它實際上是從DataReader對象派生的),而不是包含數據表等的XML結構,並且無法傳遞到報表的自定義代碼中。

第二,有一個解決方案,通過將數據集「轉換」爲多值參數(或者如果需要多個字段,將其轉換爲多個多值參數),可以在報表的自定義代碼中遍歷數據集的行):

多值報表參數必須具有以下特點:

隱藏= True,則允許多個值=真

可選值標籤:選擇所需的數據集。選擇可搜索的ID作爲值標識,並選擇要作爲標籤字段公開的字段。

默認值選項卡:從查詢中獲取值。 選擇與可用值選項卡中選擇的數據集相同的數據集。 值字段您爲值ID選擇相同。

將參數設置爲永不刷新(或將從另一個參數的每次迭代中加載數據)。

現在,想法是使這個參數「可搜索」。從這一點開始,您將數據集作爲多值參數中的數組公開。

現在,在自定義代碼中插入下面的代碼:

function GetDataSetLabelFromValue(id as integer) as String 
dim i as integer 
i = 0 
for i = 1 to Report.Parameters!YourParameter.Count() 
if Report.Parameters!YourParameter.Value(i) = id then 
    GetDataSetLabelFromValue = Report.YourParameter!ReportParameter1.Label(i) 
    Exit For 
End if 
next i 
End Function 

是你能夠做你想要什麼?

相關問題