2009-09-09 77 views
4

有沒有從ssrs報告的嵌入代碼引用ssrs報告的字段的正確方法?如何引用SSRS報告的嵌入代碼中的字段

當我嘗試使用Fields!Program.Value我得到以下錯誤 -

有上的自定義代碼3行的錯誤:[BC30469]
參考非共享成員需要對象參考。

當谷歌搜索時,我發現你可以通過在開始時預先加上Report.來引用報告的參數。所以我試過這個Report.Fields.Program.Value

導致以下錯誤...

有上的自定義代碼3行的錯誤:[BC30456]「字段」不是「Microsoft.ReportingServices.ReportProcessing.ExprHostObjectModel的成員.IReportObjectModelProxyForCustomCode」。

所以......總之,有沒有辦法從嵌入代碼中引用字段。我發現我可以將字段val傳遞給函數本身,但我更願意直接引用這些字段。

Seth

回答

4

您必須將它作爲參數傳入。

=Code.ToUSD(Fields!StandardCost.Value)

+0

謝謝...這就是我需要知道的。 Seth – 2009-09-09 18:49:33

+0

對於我來說,在報告服務中,一個參數可以直接訪問,而一個字段必須被傳入,這是毫無意義的。如果其中一個參數不能被直接訪問,或者一個字段可以被直接訪問。無論如何,@gbn感謝您的回答,並且@Seth Spearman感謝您的提問。 – 2011-05-31 12:26:58

+1

@Michael Eakins:對數據集有意義。一個參數是單一的,標量和離散的,因此可以普遍訪問。如果您有1000個數據行,您如何知道哪一行屬於該行中的數據?這個語法使得它明確且不易出錯 – gbn 2011-05-31 12:54:55

4

你做有兩個其他替代的參數傳遞,雖然也不是很漂亮。

(當心!之後我寫了下面一段,我發現從查詢默認在本地處理模式下不支持所以這第一個解決方案是不可行的你,因爲它是不適合我。)

你可以創建一個隱藏的報告參數,其默認值是從數據集中設置的,然後使用Report.Parameters!MyParam.Value語法引用此參數。因爲(至少在BI studio 2005中)測試時必須小心,報表參數在預覽選項卡中似乎無法從數據庫中可靠地重新初始化。

或者,您可以在報告中創建隱藏文本框,並從數據集中設置其文本,然後從代碼中引用文本框。在這種情況下,您必須將ReportItems對象作爲參數傳遞,但其優點是它只有一個額外的參數。聲明時,一定要堅決類型的參數:

public Sub MyCustomCode(ri as ReportItems) 

的代碼將在BI工作室工作,沒有類型聲明,但對我來說,造成在本地處理模式下的報表查看器控件錯誤,如果「as ReportItems」不當下。

在這兩種情況下,這隻對頁面級數據非常有用,所以表中使用的函數仍然需要參數。