Steps to reproduce: Just add a value filter using the ValueFilterDialog. The filter is being applied properly, however, if you read the PropertyGroupDescription to which the filter has been added and check its AggregateIndex property, it is always 0. Workaround: Use a custom ValueFilterDialog: http://docs.telerik.com/devtools/winforms/pivotgrid/dialogs/customizing-the-dialogs this.radPivotGrid1.DialogsFactory = new MyDialogsFactory(); this.radPivotFieldList1.DialogsFactory = new MyDialogsFactory(); public class MyDialogsFactory : PivotGridDialogsFactory { public override IValueFilterOptionsDialog CreateValueFilterOptionsDialog() { return new MyValueFilterOptionsDialog(); } } public partial class MyValueFilterOptionsDialog : ValueFilterOptionsDialog { public override Telerik.Pivot.Core.Filtering.IValueGroupFilter SelectedFilter { get { IValueGroupFilter filter = base.SelectedFilter; filter.AggregateIndex = ((RadDropDownList)this.Controls["groupBox"].Controls["dropDownField"]).SelectedIndex; return filter; } public override void LoadSettings(IValueGroupFilter filter, IValueGroupFilterHost filterHost, string fieldName, IEnumerable<string> aggregateNames) { base.LoadSettings(filter, filterHost, fieldName, aggregateNames); if (filter != null) { ((RadDropDownList)this.Controls["groupBox"].Controls["dropDownField"]).SelectedIndex = filter.AggregateIndex; } } } }
To reproduce: 1. Add RadPivotGrid on the form and populate it with data 2. Add 2 buttons to export to xls and xlsx formats 3. Run the form and export to xls format 4. Minimize the form. You will see that one of row is disappeared 5. Repeat the same action and you will see that a second row is disappeared. The issue if observed with both exporter providers (PivotGridSpreadExport/PivotExportToExcelML) and export with visual settings. Workaround: In the handler of the SizeChanged event clear the cached elements: void Form1_SizeChanged(object sender, EventArgs e) { this.radPivotGrid1.PivotGridElement.PivotRowsContainer.ElementProvider.ClearCache(); }
Workaround: Use the new PivotGridSpreadExport class: http://www.telerik.com/help/winforms/pivotgrid-export-srpead-export.html
To reproduce: Set the decimal separator to comma(,) in your regional settings and export the RadPivotGrid using PivotExportToExcellML. Open the exported file and you will see that the font size is very big. Workaround: Subscribe to the PivotExcelCellFormatting event and set the font size to an integer value: void excelExporter_PivotExcelCellFormatting(object sender, ExcelPivotCellExportingEventArgs e) { e.Cell.Font = new Font(e.Cell.Font.Name, (int)e.Cell.Font.Size, e.Cell.Font.Style); }
To reproduce: - Change some cell properties and export the grid. - You will notice that the the changed properties are not exported.
To reproduce: Create a RadPivotGrid with some data and export it by following the article http://www.telerik.com/help/winforms/pivotgrid-export-to-excel.html Set the following settings to the exporter: exporter.ShowGridLines = true; exporter.ExportVisualSettings = true; exporter.HeaderCellsFont = new System.Drawing.Font("Arial", 8); exporter.DataCellsFont = new System.Drawing.Font("Arial", 8); exporter.GridLinesColor = Color.Black; exporter.CellBackColor = Color.White; exporter.SheetName = this.ClientManager.CubeEngine.Title; exporter.ExportFlatData = false; Also subscribe to the PivotExcelCellFormatting event use the following code: e.Cell.TextAlignment = ContentAlignment.MiddleRight; e.Cell.DrawBorder = true; e.Cell.BorderColor = Color.Black; e.Cell.DrawText = true; e.Cell.DrawFill = true; You will see that the exported cells will not have borders, nor their font will be changed. Additionally, if you set a specific ForeColor, BackColor, it is not applied as well.
To reproduce: In RadPivotGrid set some cell values to start with "=" or "-". Export it using PivotGridSpreadExport. The exporter tries to convert the value to formula and if this is not successful an exception is thrown. Workaround: private void radButtonNewPivotToExcel_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Excel files (*.xlsx)|*.xlsx"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { SpreadExportRenderer renderer = new SpreadExportRenderer(); MyPivotSpreadExport exporter = new MyPivotSpreadExport(this.radPivotGrid1, renderer); exporter.ExportFormat = SpreadExportFormat.Xlsx; exporter.RunExportAsync(saveFileDialog.FileName + ".xlsx", renderer); } } public class MyPivotSpreadExport : PivotGridSpreadExport { private ISpreadExportRenderer spreadExportRenderer; public MyPivotSpreadExport(RadPivotGrid pivotGrid, ISpreadExportRenderer renderer) : base(pivotGrid) { this.spreadExportRenderer = renderer; } protected override void AddRowToWorksheet(PivotGridExportRowElement rowElement) { foreach (PivotGridSpreadExportCellElement exportCell in rowElement.Cells) { this.spreadExportRenderer.CreateCellSelection(rowElement.Index, exportCell.ColumnIndex); Color borderColor = this.ShowGridLines ? exportCell.BorderColor : Color.Transparent; this.spreadExportRenderer.CreateCellStyleInfo(exportCell.BackColor, exportCell.ForeColor, exportCell.Font.FontFamily, exportCell.Font.Size, exportCell.Font.Bold, exportCell.Font.Italic, exportCell.Font.Underline, exportCell.TextAlignment, exportCell.TextWrap, BorderBoxStyle.SingleBorder, borderColor, Color.Empty, Color.Empty, Color.Empty, Color.Empty); if (exportCell.DataType == DataType.String || exportCell.DataType == DataType.Other) { this.spreadExportRenderer.SetCellSelectionFormat("@"); } this.spreadExportRenderer.SetCellSelectionValue(exportCell.DataType, exportCell.Value ?? exportCell.Text); } } }
Wokaround: Private Sub GroupDescriptorElementCreating(sender As Object, e As Telerik.WinControls.UI.GroupDescriptorElementCreatingEventArgs) RemoveHandler e.GroupDescriptorElement.FilterPopup.TextBoxMenuItem.TextBox.TextChanged, AddressOf TextBoxMenuItemTextChanged AddHandler e.GroupDescriptorElement.FilterPopup.TextBoxMenuItem.TextBox.TextChanged, AddressOf TextBoxMenuItemTextChanged End Sub Private Sub TextBoxMenuItemTextChanged(sender As Object, e As EventArgs) Dim tb As RadTextBox = TryCast(sender, RadTextBox) Dim popup As PivotGroupFilterPopup = TryCast(tb.Parent, PivotGroupFilterPopup) popup.TreeViewMenuItem.TreeElement.TreeView.EndUpdate() End Sub
I came across an exception when trying to use the Report Filter area with data that contains blank (DBNull) values. It looks like the control tries to build a distinct list of values to show in the filter's drop-down, but throws an exception if one of the values is blank. I attached a ZIP file with a Visual Studio project that demonstrates the issue, and included a Word file to describe how to reproduce the error. Any assistance is greatly appreciated. Thank you. Drew White Developer CRMCulture, LLC Email: dwhite@CRMCulture.com Web: http://www.crmculture.com
One cannot copy cells from collapsed row groups.
To reproduce: Bind a RadPivotGrid and set the theme to Breeze. You will see that there are no filtering buttons. Workaround: Use the following code to set an image to the buttons: protected override void OnLoad(EventArgs e) { base.OnLoad(e); List<PivotFilterFunctionButton> elements = this.FindAllElements<PivotFilterFunctionButton>(this.pivot.PivotGridElement); Image img = Image.FromFile(@"filter.png"); foreach (PivotFilterFunctionButton item in elements) { item.Image = img; } } public List<T> FindAllElements<T>(RadElement parent) where T : RadElement { List<T> list = new List<T>(); this.FindAllElementsCore(parent, list); return list; } private void FindAllElementsCore<T>(RadElement parent, List<T> list) where T : RadElement { if (parent is T) { list.Add(parent as T); return; } foreach (RadElement item in parent.Children) { FindAllElementsCore<T>(item, list); } } The image can be downloaded below.
To reproduce: 1. Drag and drop RadPivotGrid. 2. On FormLoad call BestFitRowHeaders() method 3. When run the project, an exception is thrown
To reproduce: Bind RadPivotGrid and associate it with RadPivotFieldList. Start the application and start selecting/unselecting fields from the field list. Observe how the memory usage is raising.
Workaround: void exporter_PivotExcelCellFormatting(object sender, ExcelPivotCellExportingEventArgs e) { double d; if (double.TryParse(e.Cell.Text, out d)) { e.DataType = "double"; } }
To reproduce: use the following code snippet. It is reproducible in target framework less than .NET Framework 4.0. Sub New() InitializeComponent() Me.RadPivotGrid1.RowGroupDescriptions.Add(New DoubleGroupDescription() With { _ .PropertyName = "EmployeeID", _ .GroupComparer = New GroupNameComparer() _ }) UpdatePivotGrid() End Sub Private Sub UpdatePivotGrid() Dim ds As DataSet = New DataSet Dim conn As New SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=True") Dim cmd As New SqlCommand("SELECT * FROM Orders", conn) conn.Open() Dim da As SqlDataAdapter = New SqlDataAdapter(cmd) da.Fill(ds) ds.Dispose() Me.RadPivotGrid1.DataSource = ds.Tables(0) Me.RadPivotGrid1.Refresh() End Sub Please refer to the attached gif file. Workaround : use .NET Framework 4.0.
To reproduce: Open the demo application and navigate to Pivot -> Printing. Move the Aggregates descriptor next to the Product one and remove the Promotions descriptor. Click PrintPreview and you will see that the Product descriptor will not be visible
Workaround: private void radButton1_Click(object sender, EventArgs e) { radPivotGrid1.RowGroupsExpandBehavior = new GroupsExpandBehavior() { Expanded = true }; radPivotGrid1.ColumnGroupsExpandBehavior = new GroupsExpandBehavior() { Expanded = true }; radPivotGrid1.DataProvider.Refresh(); ExportTo.ExportToExcel(this); radPivotGrid1.RowGroupsExpandBehavior = new GroupsExpandBehavior() { Expanded = false }; radPivotGrid1.ColumnGroupsExpandBehavior = new GroupsExpandBehavior() { Expanded = false }; radPivotGrid1.DataProvider.Refresh(); }