如何传递和使用自定义类到RDLC报告

本文关键字:RDLC 报告 自定义 何传递 | 更新日期: 2023-09-27 18:16:43

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

在RDLC我配置Dataset字段如下:

   <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报告中有注册和处理自定义类的特定方法吗?

感谢斯图尔特

如何传递和使用自定义类到RDLC报告

没有回应,但我解决了。如果我使CustomClass1类可序列化,那么RDLC就能够处理这个类。

假设我有一个自定义类,它包含如下数据:

[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")

顺带一提:在我发现这个问题之前,我已经写了几百份报告了。