Completed
Last Updated: 05 Jun 2014 07:07 by ADMIN
For example:  If you grouping using of DateTimeGroupDescription you should be able to format date as dd.MM.yyyy  instead of Apr-22

Resolution: You can use the GroupElementFormatting event to format the text in the GroupDescription elements. Please, note that the developer should add an own logic for formatting a date (for example you should take the year and month from another fields)
Declined
Last Updated: 08 Feb 2021 17:03 by ADMIN
Completed
Last Updated: 05 Jun 2014 07:07 by Jesse Dyck
ADMIN
Created by: Peter
Comments: 1
Category: PivotGrid
Type: Bug Report
3
RadPivot prints only left columns and the columns placed on the right part of the control do not print
Completed
Last Updated: 05 Jun 2014 07:07 by ADMIN
Drag the field contains date from field choicer control to Column data area. Then remove one of the sum field. The exception will thrown.

Workaround: Use the DLLs for NET2.0
Completed
Last Updated: 15 Feb 2021 11:02 by ADMIN
Release R1 2021 SP2
GroupDescriptions loose the Custom Name after dragging.
Completed
Last Updated: 15 Jul 2015 10:56 by Marcel
Change the Decimal symbol/separator  to "," and run Excel export for the RadPivotGrid. Note that all "0,00" cells are displayed as "1" in Excel and all decimal values are displayed without decimal separator.

Another scenario is when you change the Format in the Regional settings to Russia. Then, when exporting data, the decimal separator for the GrandTotal column is not correct ".", instead of ",". However, for the data cells it is OK.
Unplanned
Last Updated: 25 Jan 2019 07:31 by ADMIN
Workaround: If possible add the label filters with code
PropertyGroupDescription dateGroupDescription = new PropertyGroupDescription();
dateGroupDescription.PropertyName = "Date";

LabelGroupFilter filter = new LabelGroupFilter();
ComparisonCondition condition = new ComparisonCondition
{
    Condition = Telerik.Pivot.Core.Filtering.Comparison.IsGreaterThan,
    Than = new DateTime(2010, 6, 6)
};
filter.Condition = condition;
dateGroupDescription.GroupFilter = filter;

this.provider.RowGroupDescriptions.Add(dateGroupDescription);
Completed
Last Updated: 16 May 2017 06:12 by ADMIN
Workaround: remove the localization provider before saving the layout and then add it back.
Completed
Last Updated: 18 Jul 2013 08:44 by Jesse Dyck
Steps to reproduce:
1. Add a RadPivotGrid to a form and populate it with data or use the one in the Demo application
2. Press Ctrl+A to select all cells
3, Press Ctrl+C to copy all cells to the clipboard

You will get an exception.
Completed
Last Updated: 07 Nov 2013 05:56 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: PivotGrid
Type: Bug Report
1
To reproduce:

Add a RadPivotGrid and a few columns, select one column and show the PrintingDialog. Select "Print Selection Only", exception will occur.

Workaround:
Use the following print style -

public class MyPrintStyle : PivotGridPrintStyle
{
    private Func<Rectangle, SizeF> getScaleFactors;
    private Func<int, Rectangle, float, int> getStartColumn;
    private Func<int, Rectangle, float, int> getEndColumn;
    private Func<int, Rectangle, float, int> getStartRow;
    private Func<int, Rectangle, float, int> getEndRow;

    private List<AggregateDescriptionBase> aggregates;
    private List<int> columnWidths;
    private List<int> rowHeights;

    private Type baseType;
    private BindingFlags flags;

    public override void Initialize()
    {
        base.Initialize();

        this.baseType = typeof(PivotGridPrintStyle);
        this.flags = BindingFlags.NonPublic | BindingFlags.Instance;

        this.getScaleFactors = this.GetFuncFromParent<Rectangle, SizeF>("GetScaleFactors");
        this.getStartColumn = this.GetFuncFromParent<int, Rectangle, float, int>("GetStartColumn");
        this.getEndColumn = this.GetFuncFromParent<int, Rectangle, float, int>("GetEndColumn");
        this.getStartRow = this.GetFuncFromParent<int, Rectangle, float, int>("GetStartRow");
        this.getEndRow = this.GetFuncFromParent<int, Rectangle, float, int>("GetEndRow");

        this.aggregates = GetField<List<AggregateDescriptionBase>>("aggregates");
        this.columnWidths = GetField<List<int>>("columnWidths");
        this.rowHeights = GetField<List<int>>("rowHeights");

    }

    private T GetField<T>(string name)
    {
        return (T)this.baseType.GetField(name, flags).GetValue(this);
    }

    private Func<T, TResult> GetFuncFromParent<T, TResult>(string method)
    {
        MethodInfo getScaleFactor = baseType.GetMethod(method, flags);
        var func = (Func<T, TResult>)Delegate.CreateDelegate(typeof(Func<T, TResult>), this, getScaleFactor);
        return func;
    }

    private Func<T1, T2, T3, TResult> GetFuncFromParent<T1, T2, T3, TResult>(string method)
    {
        MethodInfo getScaleFactor = baseType.GetMethod(method, flags);
        var func = (Func<T1, T2, T3, TResult>)Delegate.CreateDelegate(typeof(Func<T1, T2, T3, TResult>), this, getScaleFactor);
        return func;
    }

    public override void DrawPage(Rectangle drawArea, Graphics graphics, int pageNumber)
    {
        int x = drawArea.X;
        int y = drawArea.Y;
        SizeF scale = this.getScaleFactors(drawArea);
        
        int startColumn = this.getStartColumn(pageNumber, drawArea, scale.Width);
        int endColumn = this.getEndColumn(startColumn, drawArea, scale.Width);
        int startRow = this.getStartRow(pageNumber, drawArea, scale.Height);
        int endRow = this.getEndRow(startRow, drawArea, scale.Height);
        int aggregateIndex = 0;
        for (int i = startRow; i <= endRow; i++)
        {
            x = drawArea.X;
            int maxHeight = 0;
        
            for (int j = startColumn; j <= endColumn; j++)
            {
                if (j == 0 && i == 0 && aggregateIndex < this.aggregates.Count)
                {
                    while (aggregateIndex < this.aggregates.Count)
                    {
                        if (j >= this.columnWidths.Count || i >= this.rowHeights.Count)
                        {
                            break;
                        }
        
                        Rectangle aggregateElementRect = new Rectangle(x, y, this.columnWidths[j], this.rowHeights[i]);
                        RadPrintElement aggregatePrintElement = this.GetAggregateDescriptorCell(aggregateIndex++);
                        aggregatePrintElement.ScaleTransform = scale;
                        RectangleF aggregateTransformedRect = aggregatePrintElement.GetTransformedBounds(aggregateElementRect);
                        this.PrintElement(aggregatePrintElement, drawArea, aggregateElementRect, graphics);
                        x += (int)Math.Floor(aggregateTransformedRect.Width);
                        maxHeight = Math.Max(maxHeight, (int)Math.Floor(aggregateTransformedRect.Height));
                        if (aggregateIndex < this.aggregates.Count)
                        {
                            j++;
                        }
                    }
        
                    continue;
                }
        
                Rectangle elementRect = new Rectangle(x, y, this.columnWidths[j], this.rowHeights[i]);
                RadPrintElement printElement = this.GetPrintElementForCell(i, j);
                printElement.ScaleTransform = scale;
                RectangleF transformedRect = printElement.GetTransformedBounds(elementRect);
        
                this.PrintElement(printElement, drawArea, elementRect, graphics);
                x += (int)Math.Floor(transformedRect.Width);
                maxHeight = Math.Max(maxHeight, (int)Math.Floor(transformedRect.Height));
            }
        
            y += maxHeight;
        }
    }
}
Completed
Last Updated: 20 Oct 2014 14:30 by ADMIN
To reproduce:
- Open the demo application and navigate to the olap browser demo.
- Click the filter icon in the Product Line (top left corner).
Completed
Last Updated: 21 Nov 2014 11:22 by ADMIN
To reproduce:

private void Form1_Load(object sender, EventArgs e)
{
    this.ordersTableAdapter.Fill(this.nwindDataSet.Orders);
    
    LocalDataSourceProvider dataProvider = new LocalDataSourceProvider(); 
    dataProvider.Culture = new System.Globalization.CultureInfo("ru-RU"); 
    dataProvider.ItemsSource = this.ordersBindingSource;

    dataProvider.BeginInit();
    dataProvider.RowGroupDescriptions.Add(new DateTimeGroupDescription() { PropertyName = "OrderDate", Step = DateTimeStep.Year, GroupComparer = new GroupNameComparer() });
    dataProvider.RowGroupDescriptions.Add(new DateTimeGroupDescription() { PropertyName = "OrderDate", Step = DateTimeStep.Quarter, GroupComparer = new GroupNameComparer() });
    dataProvider.RowGroupDescriptions.Add(new DateTimeGroupDescription() { PropertyName = "OrderDate", Step = DateTimeStep.Month, GroupComparer = new GroupNameComparer() });
    dataProvider.ColumnGroupDescriptions.Add(new PropertyGroupDescription() { PropertyName = "EmployeeID", GroupComparer = new GrandTotalComparer() });
    dataProvider.EndInit();

    dataProvider.BeginInit();
    dataProvider.AggregateDescriptions.Add(new PropertyAggregateDescription() { PropertyName = "Freight", AggregateFunction = AggregateFunctions.Sum });
    dataProvider.AggregateDescriptions.Add(new PropertyAggregateDescription() { PropertyName = "Freight", AggregateFunction = AggregateFunctions.Average });
    dataProvider.EndInit();

    this.radPivotGrid1.DataProvider = dataProvider;
}


Workaround:

CultureInfo russianCultureInfo = new System.Globalization.CultureInfo("ru-RU"); 
List<string> monthNames = DateTimeFormatInfo.CurrentInfo.MonthNames.ToList();

public Form1()
{
    InitializeComponent();
    this.radPivotGrid1.GroupDescriptorElementCreating += radPivotGrid1_GroupDescriptorElementCreating;
}

private void radPivotGrid1_GroupDescriptorElementCreating(object sender, GroupDescriptorElementCreatingEventArgs e)
{
    if (e.GroupDescriptorElement.Text == "Month")
    {
        e.GroupDescriptorElement.FilterPopup.PopupOpening -= FilterPopupPopupOpening;
        e.GroupDescriptorElement.FilterPopup.PopupOpening += FilterPopupPopupOpening;
    }
}

private void FilterPopupPopupOpening(object sender, CancelEventArgs args)
{
    PivotGroupFilterPopup popup = sender as PivotGroupFilterPopup;
    if (popup != null)
    {
        popup.TreeViewMenuItem.TreeElement.TreeView.NodeFormatting -= TreeView_NodeFormatting;
        popup.TreeViewMenuItem.TreeElement.TreeView.NodeFormatting += TreeView_NodeFormatting;
    }
}

private void TreeView_NodeFormatting(object sender, TreeNodeFormattingEventArgs e)
{
    DateTime date;
    int monthIndex = monthNames.IndexOf(e.Node.Text);
  
    if (monthIndex > -1)
    {
        e.Node.Text = russianCultureInfo.DateTimeFormat.MonthNames[monthIndex];
    }
}
Completed
Last Updated: 21 Nov 2014 12:41 by ADMIN
To reproduce: 

Create a localization provider following the article - http://wwwsit.telerik.com/help/winforms/pivotgrid-localization-localization.html. When you start the app you will see that the PivotAggregateP0ofP1 is not used.

Workaround:

Use the formatting events to format the needed values - http://wwwsit.telerik.com/help/winforms/pivotgrid-formatting-appearance.html
Completed
Last Updated: 12 Feb 2015 16:48 by ADMIN
Completed
Last Updated: 23 Mar 2015 09:42 by ADMIN
If you have an object with string property and for all the available objects in the RadPivotgrid you have numeric values for this property with leading zero digits (e.g. "002"), it is exported in Excel as a numeric cell.
Completed
Last Updated: 23 Jul 2015 13:06 by ADMIN
To reproduce:
- Add calculated field
- Try to set its number format, by clicking the Number Format option in the context menu in the field list (see image)

Workaround:
 Private Sub RadPivotGrid1_CellFormatting(sender As Object, e As UI.PivotCellEventArgs) Handles RadPivotGrid1.CellFormatting
        If e.CellElement.Column.Name = "Commission" Then
            e.CellElement.Text = String.Format(System.Threading.Thread.CurrentThread.CurrentUICulture, "{0:C}", e.CellElement.Value)
        End If
    End Sub
Completed
Last Updated: 05 Aug 2015 13:40 by ADMIN
Completed
Last Updated: 17 Aug 2015 09:56 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: PivotGrid
Type: Bug Report
1
To reproduce:

1. Add a RadPivotGrid and  change its theme to TelerikMetro. This theme uses Segoe UI font for its cells.
2. Export the RadPivotGrid.
3. You will notice that the font is applied to some of the cells, but for others, e.g. Grand Total the default font is set to Microsoft Sans Serif

Second scenario: use Demo application PivotGrid >> Export to Excel example. Use ControlDefault theme.
1. Ctrl + H to show the spy.  Check font for row  "Jun-1 >> Sum of Net", column "Printer stand >> 1 Free with 10".  The font is Segoe UI.
2. Run the export and check the same cell in Excel. Its font is Microsoft Sans Serif.

Workaround: use the PivotExcelCellFormatting event to specify the font.
Completed
Last Updated: 10 Sep 2015 06:40 by ADMIN
Workaround: 

private void radPivotGrid1_GroupDescriptorElementCreating(object sender, Telerik.WinControls.UI.GroupDescriptorElementCreatingEventArgs e)
{
    e.GroupDescriptorElement.FilterPopup.PopupOpened -= FilterPopup_PopupOpened;
    e.GroupDescriptorElement.FilterPopup.PopupOpened += FilterPopup_PopupOpened;
}

private void FilterPopup_PopupOpened(object sender, EventArgs args)
{
    PivotGroupFilterPopup filterPopup = (PivotGroupFilterPopup)sender;
    RadTreeView tree = filterPopup.TreeViewMenuItem.TreeElement.TreeView;
    int height = this.CalculateHeight(tree);
    if (height > tree.Height)
    {
        ((RadScrollBarElement)tree.TreeViewElement.Children[2]).Value = 0;
        ((RadScrollBarElement)tree.TreeViewElement.Children[2]).Maximum = height;
        ((RadScrollBarElement)tree.TreeViewElement.Children[2]).Visibility = Telerik.WinControls.ElementVisibility.Visible;
    }
}

private int CalculateHeight(RadTreeView tree)
{
    int height = 0;
    for (int i = 0; i < tree.Nodes[0].Nodes.Count + 1; i++)
    {
        height += tree.ItemHeight;
    }

    return height;
}

1 2 3 4 5