Back to Devexpress

PivotGridOptionsPrint.MergeRowFieldValues Property

corelibraries-devexpress-dot-xtrapivotgrid-dot-pivotgridoptionsprint-fff43648.md

latest6.7 KB
Original Source

PivotGridOptionsPrint.MergeRowFieldValues Property

Gets or sets whether the values of outer row fields are merged when a pivot grid is printed.

Namespace : DevExpress.XtraPivotGrid

Assembly : DevExpress.PivotGrid.v25.2.Core.dll

NuGet Packages : DevExpress.PivotGrid.Core, DevExpress.Win.Navigation

Declaration

csharp
[DefaultValue(true)]
public bool MergeRowFieldValues { get; set; }
vb
<DefaultValue(True)>
Public Property MergeRowFieldValues As Boolean

Property Value

TypeDefaultDescription
Booleantrue

true if the values of outer row fields are merged; otherwise, false.

|

Property Paths

You can access this nested property as listed below:

Object TypePath to MergeRowFieldValues
PivotGridControl

.OptionsPrint .MergeRowFieldValues

|

Remarks

If this property is set to true , the field values of outer row fields are merged when a pivot grid is printed (in the same way as the outer field values are displayed in the control on a form). Otherwise, merged cells are split into small cells, and each cell duplicates the value of the original cell.

The MergeRowFieldValues property is used to customize Pivot Grid export settings when data is exported in WYSIWYG export mode. This property is not in effect in data-aware mode. To customize the Pivot Grid export settings when you export data in data-aware mode, use the PivotXlsExportOptions and PivotXlsxExportOptions descendants. See the example below for more details.

To specify whether to merge the neighboring column headers when a pivot grid is printed, use the PivotGridOptionsPrint.MergeColumnFieldValues property. See the example for more details.

Example

WYSIWYG Mode

The following example illustrates how to disable merged values of outer row fields in the exported Excel document. Use the ExportType property to enable the WYSIWYG export mode and set the MergeRowFieldValues property to false.

csharp
private void btnExportToWYSIWYG_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e){
    PivotXlsxExportOptions pivotExportOptions = new DevExpress.XtraPivotGrid.PivotXlsxExportOptions();
    pivotExportOptions.ExportType = DevExpress.Export.ExportType.WYSIWYG;
    pivotGridControl1.OptionsPrint.MergeRowFieldValues = false;
    var path = "D:/temp/pivot-grid-data.xlsx";
    pivotGridControl1.ExportToXlsx(path, pivotExportOptions);
}
vb
Private Sub btnExportToWYSIWYG_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
    Dim pivotExportOptions As PivotXlsxExportOptions = New DevExpress.XtraPivotGrid.PivotXlsxExportOptions()
    pivotExportOptions.ExportType = DevExpress.Export.ExportType.WYSIWYG
    pivotGridControl1.OptionsPrint.MergeRowFieldValues = False
    Dim path = "D:/temp/pivot-grid-data.xlsx"
    pivotGridControl1.ExportToXlsx(path, pivotExportOptions)
End Sub

Data-Aware Mode

When you export data in Excel format, the exporting mechanism does not duplicate values of outer row fields for each child field value in the exported document. To duplicate field value for every empty cell of outer row fields, handle the PivotXlsExportOptions.CustomizeCell event and fill empty cells with the values, as illustrated in the code snippet below. The resulting table looks similar to the table exported in the WYSIWYG mode with the disabled MergeRowFieldValues property.

csharp
private void btnExportToDataAware_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
    PivotXlsxExportOptions options = new PivotXlsxExportOptions();
    options.CustomizeCell += options_CustomizeCell;
    options.ExportType = DevExpress.Export.ExportType.DataAware;
    options.AllowCellMerge = DevExpress.Utils.DefaultBoolean.False;
    string path = "D:/temp/pivot-grid-data.xlsx";
    pivotGridControl1.ExportToXlsx(path, options);
}
void options_CustomizeCell(CustomizePivotCellEventArgs e) {
    if (e.ExportArea == PivotExportArea.Row && e.ValueItemInfo.Field != null 
    && e.Value == null && e.ValueItemInfo.Value != null) { 
        e.Value = e.ValueItemInfo.Field.GetValueText(e.ValueItemInfo.Value);
        e.Handled = true;
    }
}
vb
Private Sub btnExportToDataAware_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
    Dim options As New PivotXlsxExportOptions()
    AddHandler options.CustomizeCell, AddressOf options_CustomizeCell
    options.ExportType = DevExpress.Export.ExportType.DataAware
    options.AllowCellMerge = DevExpress.Utils.DefaultBoolean.False
    Dim path As String = "D:/temp/pivot-grid-data.xlsx"
    pivotGridControl1.ExportToXlsx(path, options)
End Sub
Private Sub options_CustomizeCell(ByVal e As CustomizePivotCellEventArgs)
    If e.ExportArea = PivotExportArea.Row AndAlso e.ValueItemInfo.Field IsNot Nothing AndAlso e.Value Is Nothing AndAlso e.ValueItemInfo.Value IsNot Nothing Then
        e.Value = e.ValueItemInfo.Field.GetValueText(e.ValueItemInfo.Value)
        e.Handled = True
    End If
End Sub

See Also

MergeColumnFieldValues

PivotGridOptionsPrint Class

PivotGridOptionsPrint Members

DevExpress.XtraPivotGrid Namespace