2010-02-18 24 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