如何传递和使用自定义类到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报告中有注册和处理自定义类的特定方法吗?
感谢斯图尔特没有回应,但我解决了。如果我使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")
顺带一提:在我发现这个问题之前,我已经写了几百份报告了。