Back to Devexpress

XRPivotGrid.CustomRowHeight Event

xtrareports-devexpress-dot-xtrareports-dot-ui-dot-xrpivotgrid-2735cd86.md

latest13.8 KB
Original Source

XRPivotGrid.CustomRowHeight Event

Enables you to specify a custom row height (e.g., to hide some rows based on specific criteria).

Namespace : DevExpress.XtraReports.UI

Assembly : DevExpress.XtraReports.v25.2.dll

NuGet Package : DevExpress.Reporting.Core

Declaration

csharp
public event EventHandler<PivotCustomRowHeightEventArgs> CustomRowHeight
vb
Public Event CustomRowHeight As EventHandler(Of PivotCustomRowHeightEventArgs)

Event Data

The CustomRowHeight event's data class is PivotCustomRowHeightEventArgs. The following properties provide information specific to this event:

PropertyDescription
ColumnCountGets the number of columns in the pivot grid.
CustomTotalGets the custom total that corresponds to the currently processed column/row header. Inherited from PivotFieldValueEventArgsBase<T>.
DataFieldGets the data field that specifies the processed value. Inherited from PivotFieldValueEventArgsBase<T>.
FieldGets the field being processed. Inherited from PivotFieldEventArgsBase<T>.
FieldIndexGets the field position among the visible fields within the header area. Inherited from PivotFieldValueEventArgsBase<T>.
IsCollapsedGets whether the processed field value is collapsed. Inherited from PivotFieldValueEventArgsBase<T>.
IsColumnGets whether the field is displayed within the Column Header Area. Inherited from PivotFieldValueEventArgsBase<T>.
IsOthersValueGets or sets whether the current header corresponds to the “Others” row/column. Inherited from PivotFieldValueEventArgsBase<T>.
ItemFor internal use. Inherited from PivotFieldValueEventArgsBase<T>.
MaxIndexGets the maximum row index (for row fields) or column index (for column fields) that corresponds to the processed field value. Inherited from PivotFieldValueEventArgsBase<T>.
MinIndexGets the minimum row index (for row fields) or column index (for column fields) that corresponds to the processed field value. Inherited from PivotFieldValueEventArgsBase<T>.
RowHeightSpecifies the height of the current row.
RowIndexGets the visual index of the row that contains the processed cell.
ValueGets the column field or row field value that corresponds to the currently processed column/row header. Inherited from PivotFieldValueEventArgsBase<T>.
ValueTypeGets the type of the currently processed header of a column or a row. Inherited from PivotFieldValueEventArgsBase<T>.

The event data class exposes the following methods:

MethodDescription
ChangeExpandedState()Changes the expanded state of the field value currently being processed. Inherited from PivotFieldValueEventArgsBase<T>.
CreateDrillDownDataSource()Returns data records that are used to calculate a summary value for the specified cell. Inherited from PivotFieldValueEventArgsBase<T>.
CreateDrillDownDataSource(List<String>)Returns data records that are used to calculate a summary value for the specified cell. Inherited from PivotFieldValueEventArgsBase<T>.
CreateDrillDownDataSource(Int32, List<String>)Returns data records used to calculate a summary value for the specified cell in OLAP and server mode. Inherited from PivotFieldValueEventArgsBase<T>.
CreateDrillDownDataSource(Int32)Returns data records that are used to calculate a summary value for the specified cell. Inherited from PivotFieldValueEventArgsBase<T>.
CreateOLAPDrillDownDataSource(Int32, List<String>)Obsolete. In OLAP mode, returns a list of records used to calculate a summary value for the specified cell. Inherited from PivotFieldValueEventArgsBase<T>.
CreateServerModeDrillDownDataSource(Int32, List<String>)Obsolete. In server mode, returns a list of records used to calculate a summary value for the specified cell. Inherited from PivotFieldValueEventArgsBase<T>.
GetCellValue(Int32, Int32)Returns a value displayed in the specified cell. Inherited from PivotFieldValueEventArgsBase<T>.
GetFieldValue(T, Int32)Returns the specified column or row field value for the cell, addressed by its zero-based index in the Data Area. Inherited from PivotFieldValueEventArgsBase<T>.
GetHigherLevelFields()Returns the parent field for the field value currently being processed. Inherited from PivotFieldValueEventArgsBase<T>.
GetHigherLevelFieldValue(T)Returns the value of a specific parent field corresponding to the field value currently being processed. Inherited from PivotFieldValueEventArgsBase<T>.
GetRowCellValue(Int32)Returns a cell value calculated for the specified column field value, against the specified data field.

Example

The following code illustrates how to automatically adjust the row height to fit the XRPivotGrid content, by handling the XRPivotGrid.CustomRowHeight event.

csharp
using System;
using DevExpress.XtraReports.UI.PivotGrid;
// ...

private Graphics gr = Graphics.FromHwnd(IntPtr.Zero);

private void xrPivotGrid1_CustomRowHeight(object sender, PivotCustomRowHeightEventArgs e) {
    e.RowHeight = 0;
    for (int i = 0; i <= e.ColumnCount - 1; i++) {
        var rowCellValue = e.GetRowCellValue(i);
        if (rowCellValue == null)
            continue;
        string value = rowCellValue.ToString();
        SizeF size = gr.MeasureString(value, e.DataField.Appearance.Cell.Font, e.DataField.Width);
        int height = Convert.ToInt32(size.Height + 0.5);
        e.RowHeight = e.RowHeight > height ? e.RowHeight : height;
    }
}
vb
Imports System
Imports DevExpress.XtraReports.UI.PivotGrid
' ...

Private gr As Graphics = Graphics.FromHwnd(IntPtr.Zero)

Private Sub xrPivotGrid1_CustomRowHeight_1(ByVal sender As Object, _
ByVal e As PivotCustomRowHeightEventArgs)
    e.RowHeight = 0
    For i As Integer = 0 To e.ColumnCount - 1
        Dim rowCellValue = e.GetRowCellValue(i)
        If rowCellValue Is Nothing Then
            Continue For
        End If
        Dim value As String = rowCellValue.ToString()
        Dim size As SizeF = gr.MeasureString(value, e.DataField.Appearance.Cell.Font, e.DataField.Width)
        Dim height As Integer = CInt(Fix(size.Height+0.5))
        e.RowHeight = If(e.RowHeight > height, e.RowHeight, height)
    Next i
End Sub

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the CustomRowHeight event.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

winforms-dashboard-pivot-custom-export/CS/WinformsExport/Form1.cs#L35

csharp
pivot2.CustomColumnWidth += PivotCustomColumnWidth;
pivot2.CustomRowHeight += PivotCustomRowHeight;
pivot2.AfterPrint += PivotAfterPrint;

winforms-dashboard-pivot-custom-export/VB/WinFormsExport/Form1.vb#L37

vb
AddHandler pivot2.CustomColumnWidth, AddressOf PivotCustomColumnWidth
AddHandler pivot2.CustomRowHeight, AddressOf PivotCustomRowHeight
AddHandler pivot2.AfterPrint, AddressOf PivotAfterPrint

See Also

CustomColumnWidth

XRPivotGrid Class

XRPivotGrid Members

DevExpress.XtraReports.UI Namespace