2010-02-18 53 views
2

我們正在考慮爲Microsoft Reporting Services構建自定義數據處理擴展,以便我們直接從我們的數據對象報告。Microsoft報告和複雜對象

我的問題: 假設我有一個表示該行的對象,但它有一個成員是一個複雜的對象:

 

public class TheRowObject 
{ 
    // a "normal" field 
    public string Name {get; set;} 

    // a complex field object 
    public Address BillingAddress { get; set;} 
} 

public class Address 
{ 
    public string City {get; set;} 
    public string State {get; set;} 
    public string Zip {get; set} 
} 
 

我有麻煩把TheRow.Name上的報告,但什麼如果我想把TheRow.BillingAddress.City?

報表設計器允許我將BillingAddress拖動到報表界面上,但在運行時,它會在字段中顯示文本「錯誤」。

有沒有辦法顯示覆雜對象的成員?

編輯 我後我真的什麼,如果可能的話,是最終用戶能夠拖動從ReportData工具窗口中的複雜對象的屬性右轉報告表面。我希望在報表查看器中有一些內置的功能。

如果沒有內置的方法來處理這個問題,我猜我需要在報告中提供自定義公式,或者提供一個數據擴展來「展平」複雜對象的屬性,所以他們看起來像普通的田野。

回答

2

看起來好像這個簡短的答案是「不」。我很欣賞這些回覆,但報表服務似乎希望簡單的數據類型作爲列。如果有人學到了不同的東西,我很樂意聽到它。

0

如果您使用自由文本編輯RDL或公式,該怎麼辦?例如,將TheRow.BillingAddress更改爲TheRow.BillingAddress.City。

+0

這似乎並不奏效。當我編輯公式文本時,它顯示錶達式:= First(Fields!Name.Value,「ProviderCollection」)(注意,「Value」字段不是我的,必須是報告包裝的一部分)。如果我嘗試將其更改爲使用address.City,則會出現構建時錯誤。我試過Address.Value.City,Address.City.Value,Address.Value.City.Value的各種組合都無濟於事。 – JMarsch 2010-02-18 22:26:39

+0

我有一些報告要從SSRS2005遷移到SSRS2008。在2005版本中,「Address.Value.City」表達式用於工作,但在遷移過程中,我不得不更改對象,因此不會顯示覆雜類型。我不知道爲什麼這在Reporting Services中發生了變化... – Fabio 2011-07-04 13:35:21