Back to Devexpress

PivotGridControl.SaveCollapsedStateToStream(Stream) Method

windowsforms-devexpress-dot-xtrapivotgrid-dot-pivotgridcontrol-dot-savecollapsedstatetostream-x28-system-dot-io-dot-stream-x29.md

latest8.7 KB
Original Source

PivotGridControl.SaveCollapsedStateToStream(Stream) Method

Saves the collapsed state of field values to the specified stream.

Namespace : DevExpress.XtraPivotGrid

Assembly : DevExpress.XtraPivotGrid.v25.2.dll

NuGet Package : DevExpress.Win.PivotGrid

Declaration

csharp
public void SaveCollapsedStateToStream(
    Stream stream
)
vb
Public Sub SaveCollapsedStateToStream(
    stream As Stream
)

Parameters

NameTypeDescription
streamStream

A Stream descendant to which the collapsed state of field values is saved.

|

Remarks

The saved settings can then be restored using the PivotGridControl.LoadCollapsedStateFromStream method.

Note

The collapsed states for server mode and regular data sources are stored in different formats and not compatible with each other. Some issues can appear on restoring the collapsed state from different data source modes.

Example

This example demonstrates how to restore the Pivot Grid layout and row/column state.

View Example

The Save button uses the PivotGridControl.SaveLayoutToStream and PivotGridControl.SaveCollapsedStateToStream methods to save the layout and field values’ collapsed state to memory streams.

The Load button uses the PivotGridControl.RestoreLayoutFromStream and PivotGridControl.LoadCollapsedStateFromStream methods to restore the saved layout and column/row state.

The Clear button clears the field collection.

cs
using System;
using System.IO;
using System.Windows.Forms;
using DevExpress.Utils;

namespace XtraPivotGrid_RestoreLayoutExample {
    public partial class Form1 : DevExpress.XtraEditors.XtraForm {
        MemoryStream layoutStream = new MemoryStream();
        MemoryStream collapseStateStream = new MemoryStream();
        public Form1() {
            InitializeComponent();
            btnClear.Enabled = false;
        }
        private void Form1_Load(object sender, EventArgs e) {
            excelDataSource1.FileName = "SalesPerson.xlsx";
            excelDataSource1.Fill();
            pivotGridControl1.DataSource = excelDataSource1;
        }
        private void btnSave_Click(object sender, EventArgs e) {
            if (pivotGridControl1.Fields.Count > 0) {
                layoutStream.Dispose();
                layoutStream = new MemoryStream();
                pivotGridControl1.SaveLayoutToStream(layoutStream, OptionsLayoutBase.FullLayout);
                collapseStateStream.Dispose();
                collapseStateStream = new MemoryStream();
                pivotGridControl1.SaveCollapsedStateToStream(collapseStateStream);
                btnClear.Enabled = true;
            }
        }
        private void btnLoad_Click(object sender, EventArgs e) {
            if (layoutStream.Length > 0 && collapseStateStream.Length > 0) {
                layoutStream.Seek(0, SeekOrigin.Begin);
                pivotGridControl1.RestoreLayoutFromStream(layoutStream, OptionsLayoutBase.FullLayout);
                collapseStateStream.Seek(0, SeekOrigin.Begin);
                pivotGridControl1.LoadCollapsedStateFromStream(collapseStateStream);
            }
        }
        private void btnClear_Click(object sender, EventArgs e) {
            if (layoutStream.Length > 0 && collapseStateStream.Length > 0) {
                pivotGridControl1.Fields.Clear();
            }
        }
    }
}
vb
Imports System
Imports System.IO
Imports System.Windows.Forms
Imports DevExpress.Utils

Namespace XtraPivotGrid_RestoreLayoutExample
    Partial Public Class Form1
        Inherits DevExpress.XtraEditors.XtraForm

        Private layoutStream As New MemoryStream()
        Private collapseStateStream As New MemoryStream()
        Public Sub New()
            InitializeComponent()
            btnClear.Enabled = False
        End Sub
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
            excelDataSource1.FileName = "SalesPerson.xlsx"
            excelDataSource1.Fill()
            pivotGridControl1.DataSource = excelDataSource1
        End Sub
        Private Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
            If pivotGridControl1.Fields.Count > 0 Then
                layoutStream.Dispose()
                layoutStream = New MemoryStream()
                pivotGridControl1.SaveLayoutToStream(layoutStream, OptionsLayoutBase.FullLayout)
                collapseStateStream.Dispose()
                collapseStateStream = New MemoryStream()
                pivotGridControl1.SaveCollapsedStateToStream(collapseStateStream)
                btnClear.Enabled = True
            End If
        End Sub
        Private Sub btnLoad_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLoad.Click
            If layoutStream.Length > 0 AndAlso collapseStateStream.Length > 0 Then
                layoutStream.Seek(0, SeekOrigin.Begin)
                pivotGridControl1.RestoreLayoutFromStream(layoutStream, OptionsLayoutBase.FullLayout)
                collapseStateStream.Seek(0, SeekOrigin.Begin)
                pivotGridControl1.LoadCollapsedStateFromStream(collapseStateStream)
            End If
        End Sub
        Private Sub btnClear_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnClear.Click
            If layoutStream.Length > 0 AndAlso collapseStateStream.Length > 0 Then
                pivotGridControl1.Fields.Clear()
            End If
        End Sub
    End Class
End Namespace

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the SaveCollapsedStateToStream(Stream) method.

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-pivotgrid-save-restore-state-and-layout/CS/XtraPivotGrid_RestoreLayoutExample/Form1.cs#L26

csharp
collapseStateStream = new MemoryStream();
pivotGridControl1.SaveCollapsedStateToStream(collapseStateStream);
btnClear.Enabled = true;

winforms-pivotgrid-save-restore-state-and-layout/VB/XtraPivotGrid_RestoreLayoutExample/Form1.vb#L28

vb
collapseStateStream = New MemoryStream()
pivotGridControl1.SaveCollapsedStateToStream(collapseStateStream)
btnClear.Enabled = True

See Also

LoadCollapsedStateFromStream(Stream)

SaveCollapsedStateToFile(String)

PivotGridControl Class

PivotGridControl Members

DevExpress.XtraPivotGrid Namespace