xtrareports-devexpress-dot-xtrareports-dot-ui-dot-calculatedfield-860eb8fb.md
Occurs when a calculated field obtains its value, enabling you to return a custom value for this calculated field.
Namespace : DevExpress.XtraReports.UI
Assembly : DevExpress.XtraReports.v25.2.dll
NuGet Package : DevExpress.Reporting.Core
public event GetValueEventHandler GetValue
Public Event GetValue As GetValueEventHandler
The GetValue event's data class is GetValueEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| Report | Provides access to a report which owns the calculated field, for which the CalculatedField.GetValue event was raised. |
| Row | Provides access to a data row whose data can be used to calculate a calculated field‘s custom value in the CalculatedField.GetValue event handler. |
| Value | Gets or sets a value of a calculated field. |
The event data class exposes the following methods:
| Method | Description |
|---|---|
| GetColumnValue(String) | Returns the value of a specified column. |
Although the CalculatedField.Expression property supports numerous standard functions, operators, and constants, for some tasks these may not be enough. Handle the GetValue event to make a calculated field return a value based on your custom expression.
The GetValueEventArgs class introduces the GetValueEventArgs.Value property, which accepts the final calculated value for a calculated field, and the GetValueEventArgs.Row and GetValueEventArgs.Report properties, which enable you to obtain any information required to calculate a value for a calculated field.
The report created in this example is bound to the “Orders” table of the sample Northwind database.
To sort records by days of the week at runtime, do the following.
CalculatedField.GetValue and the hdrLabel ‘s XRControl.BeforePrint event handlers in the following way.using System;
using System.Data;
using System.Windows.Forms;
using DevExpress.XtraReports.UI;
// ...
private void calculatedField1_GetValue(object sender, GetValueEventArgs e) {
object columnValue = e.GetColumnValue("OrderDate");
e.Value = (int)((DateTime)columnValue).DayOfWeek;
}
private void hdrLabel_BeforePrint(object sender, System.ComponentModel.EventArgs e) {
hdrLabel.Text = ((DayOfWeek)this.GetCurrentColumnValue(this.calculatedField1.Name)).ToString();
}
Imports System
Imports System.Data
Imports System.Windows.Forms
Imports DevExpress.XtraReports.UI
' ...
Private Sub calculatedField1_GetValue(ByVal sender As Object, _
ByVal e As GetValueEventArgs) Handles calculatedField1.GetValue
Dim columnValue As Object = e.GetColumnValue("OrderDate")
e.Value = CInt(Fix((CDate(columnValue)).DayOfWeek))
End Sub
Private Sub hdrLabel_BeforePrint(ByVal sender As Object, _
ByVal e As System.ComponentModel.EventArgs) Handles hdrLabel.BeforePrint
hdrLabel.Text = (CType(Me.GetCurrentColumnValue(Me.calculatedField1.Name), _
DayOfWeek)).ToString()
End Sub
See Also