商信互联
本主题描述如何在计算的字段表达式中访问报表参数对象(从ReportParametersObjectBase继承并使用IReportDataV2.ParametersObjectType指定)的数据。
移动平台不支持本主题中描述的方法。
重写Parameters对象的ToString方法。
public class DemoParameters : ReportParametersObjectBase {
// ...
public override string ToString() {
return City;
}
}
Public Class DemoParameters
Inherits ReportParametersObjectBase
' ...
Public Overrides Function ToString() As String
Return City
End Function
End Class
结果,可以使用“ [Parameters.XafReportParametersObject]”表达式引用ToString结果,例如:
Concat([全名],来自',[Parameters.XafReportParametersObject])
或者,您可以创建报告脚本,处理某个字段的GetValue事件,然后访问参数值,如“如何:访问报告脚本中的报告参数对象”主题中所示。
private void calculatedFieldCity_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e) {
DevExpress.XtraReports.Parameters.Parameter param =
(DevExpress.XtraReports.Parameters.Parameter)
((DevExpress.XtraReports.UI.XtraReport)e.Report).Parameters["XafReportParametersObject"];
if (param != null) {
ReportV2Demo.Module.BusinessObjects.Contact contact =
(ReportV2Demo.Module.BusinessObjects.Contact)e.Row;
ReportV2Demo.Module.Reports.DemoParameters xafParameter =
(ReportV2Demo.Module.Reports.DemoParameters)param.Value;
e.Value = contact.FullName " from " xafParameter.City;
}
}
Private Sub calculatedFieldCity_GetValue(ByVal sender As Object, ByVal e As DevExpress.XtraReports.UI.GetValueEventArgs)
Dim param As DevExpress.XtraReports.Parameters.Parameter = _
CType(((DevExpress.XtraReports.UI.XtraReport)e.Report).Parameters("XafReportParametersObject"), _
DevExpress.XtraReports.Parameters.Parameter)
If param IsNot Nothing Then
Dim contact As ReportV2Demo.Module.BusinessObjects.Contact = _
CType(e.Row, ReportV2Demo.Module.BusinessObjects.Contact)
Dim xafParameter As ReportV2Demo.Module.Reports.DemoParameters = _
CType(param.Value, ReportV2Demo.Module.Reports.DemoParameters)
e.Value = contact.FullName & " from " & xafParameter.City
End If
End Sub