2011-12-02 37 views
2

所以我有一个名为CustomClass1的类,它有几个字符串和DateTime属性。我将另一个类的实例传递给RDLC,其中包含多个CustomClass1类型的属性。如何传递和使用自定义类到RDLC报告?

在RDLC

我配置数据集字段如下:

<DataSet Name="ExtensionRequestFormViewerModel"> 
    <Fields> 
     <Field Name="SomeField"> 
     <DataField>SomeField</DataField> 
     <rd:TypeName>FullyQualifiedNameSpace.CustomClass1</rd:TypeName> 
     </Field> 
     --- Other Fields 
    </Fields> 
    </DataSet> 

我可以看到该属性填充,数据会被发送到RDLC,但是当我尝试如下读取数据:

<Value>=Fields!SomeField.Value.Property1</Value> 

我得到一个#错误的FormViewer

是有登记和处理在RDLC报告自定义类的具体办法?

感谢

斯图尔特

回答

3

没有反应,但我的工作了。如果我使CustomClass1类可串行化,则RDLC能够处理该类。

+2

这也适用于我,谢谢。 (您应该接受这是正确的答案。) –

0

说我有持有这样一些数据的自定义类:

[Serializable] 
public class AppTelecommunicationsNumber : AppContactMechanism { 
    public int AreaCode { get; set; } 
    public string ContactNumber { get; set; } 
    public int? CountryCode { get; set; } 
    public string Extention { get; set; } 
} 

说我要显示报表上ContactNumber领域。您必须将[Serializable]属性添加到您的课程,然后才能在RDLC设计器的表达式编辑器中引用它。

然后,您可以直接引用字段名这样的:

=First(Fields!PhoneNumber.Value.ContactNumber, "WorkOrderViewModel") 

FWIW:我写了数以百计的报告我想通了这一点之前。