To reproduce: - Add a pivot grid and a field list to a blank form. - Populate the pivot grid with LocalDataSourceProvider - Show and close the form several times and collect the garbage. - The memory is freed properly. - Bind the controls and show and close the form several times again. - After the garbage collection the memory is not freed.
The TelerikData.dll and ChartView.dll should only be referenced when one needs to use the Export or Bind-to-ChartView functionality respectively. With the current implementation, when someone wants to merge the PivotGrid.dll in their application, the TelerikData.dll and ChartView.dll will always be required to merge because assemblies are resolved statically when merging.
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.
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.
DECLINED: The cells remain bold because there is no explicit setting for the Font property in the default state of the PivotCellElement. When one sets a style for a given element state, this setting will also remain for other states if they don't have an explicit setting for the same property. This is how our theming mechanism works. To resolve the issue, just set the Font property of the PivotCellElement in its default state in Visual Style Builder. To reproduce: Open ControlDefaultTheme in VisualStyleBuilder, go to RadPivotGrid -> RadPivotGridElement -> PivotCellElement and set bold font for the PivotCellElement.GrandTotalRow. Bind RadPivotGrid and set the properties AutoExpandColumnHeaders to false and AutoExpandRowHeaders to false. Start the application and expand the rows. You will see that the cells will be incorrectly formatted.
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.
In the PrintElementFormatting event you need to be allowed to specify the PivotCellPrintElement.Text property in the desired format. Workaround: use reflection to set the "formattedValue" readonly field for the PivotCellPrintElement.
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
RunExport(filename) method generates a System.UnauthorizedAccessException, Access to the path "C:\..." is denied. given that I`m the administrator and I`m able to export crystal report documents (all formats) with no issues at all. what could be the issue. below is the sample code: SaveFileDialog svd = new SaveFileDialog(); svd.FileName = "AnyThing"; svd.Filter = "Excel files (*.xls)|"; if (svd.ShowDialog() == DialogResult.OK) { PivotExportToExcelML exportExcel = new PivotExportToExcelML(radPivotGrid1); exportExcel.ShowGridLines = true; exportExcel.ExportVisualSettings = true; exportExcel.HeaderCellsFont = new System.Drawing.Font("Arial", 8); exportExcel.DataCellsFont = new System.Drawing.Font("Arial", 8); exportExcel.GridLinesColor = Color.Black; exportExcel.CellBackColor = Color.White; exportExcel.SheetName = "Test"; exportExcel.ExportFlatData = false; exportExcel.RunExport(Path.GetDirectoryName(svd.FileName)); }
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(); }
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.
Workaround: void exporter_PivotExcelCellFormatting(object sender, ExcelPivotCellExportingEventArgs e) { double d; if (double.TryParse(e.Cell.Text, out d)) { e.DataType = "double"; } }
When a filter dialog is shown (Report Filter or Label Filter) for OLAP Hierarchy, it contains the items only for the selected level. Instead items from all levels could be visible, so you won't have to open additional dialogs to filter them (show them like a tree).
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
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); } } }
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); }