如何将自定义类传递给RDLC报告?

时间:2011-12-02 15:49:58

标签: c# reportviewer rdlc

所以我有一个名为CustomClass1的类,它有几个字符串和DateTime属性。我将另一个类的实例传递给RDLC,其中包含一些CustomClass1类型的属性。

在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中得到一个#Error

是否有在RDLC报告中注册和处理自定义类的特定方法?

由于

斯图尔特

2 个答案:

答案 0 :(得分:3)

没有回应,但我解决了。如果我将CustomClass1类序列化,则RDLC能够处理该类。

答案 1 :(得分: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:在我弄清楚之前,我已经写了数百份报告。