xtrareports-7052-feature-guide-to-devexpress-reports-shape-report-data-use-calculated-fields-create-a-calculated-field-runtime-sample.md
Tip
Online Example : How to create a calculated field at runtime
This example demonstrates how to create a calculated field at runtime, and bind the field to the report control’s Text property.
using DevExpress.XtraReports.UI;
using DevExpress.XtraReports.Configuration;
// ...
// Create a report.
XtraReport1 report = new XtraReport1();
// Create a calculated field
// and add it to the report's collection.
CalculatedField calcField = new CalculatedField();
report.CalculatedFields.Add(calcField);
// Specify the calculated field's properties.
calcField.DataSource = report.DataSource;
calcField.DataMember = report.DataMember;
calcField.FieldType = FieldType.Double;
calcField.DisplayName = "Calculated Field";
calcField.Name = "myField";
calcField.Expression = "[UnitPrice] * [UnitsInStock]";
// Bind the label's Text property to the calculated field.
report.FindControl("xrlabel3", true).ExpressionBindings
.Add(new ExpressionBinding() {
EventName = "BeforePrint",
PropertyName = "Text",
Expression = "FormatString('{0:c2}', [myField])"
});
Imports DevExpress.XtraReports.UI
Imports DevExpress.XtraReports.Configuration
' ...
' Create a report.
Dim report As New XtraReport1()
' Create a calculated field
' and add it to the report's collection.
Dim calcField As New CalculatedField()
report.CalculatedFields.Add(calcField)
' Define the calculated field's properties.
calcField.DataSource = report.DataSource
calcField.DataMember = report.DataMember
calcField.FieldType = FieldType.Double
calcField.DisplayName = "Calculated Field"
calcField.Name = "myField"
calcField.Expression = "[UnitPrice] * [UnitsInStock]"
' Bind a label's Text property to the calculated field.
report.FindControl("xrlabel3", True).ExpressionBindings.Add(New ExpressionBinding("BeforePrint", "Text", "FormatString('{0:c2}', [myField])"))
The result is shown in the following image.