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: 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: 10 Nov 2014 11:23 by ADMIN
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
Declined
Last Updated: 07 Nov 2014 15:00 by ADMIN
Created by: Rayan
Comments: 1
Category: PivotGrid
Type: Bug Report
0
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));
            }
Completed
Last Updated: 23 Oct 2014 13:25 by Kevin
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.
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: 20 Oct 2014 14:19 by ADMIN
To reproduce: 

1. Drag and drop RadPivotGrid.
2. On FormLoad call BestFitRowHeaders() method 
3. When run the project, an exception is thrown
Completed
Last Updated: 01 Oct 2014 13:00 by ADMIN
One cannot copy cells from collapsed row groups.
Declined
Last Updated: 23 Jul 2014 14:00 by ADMIN
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.
Completed
Last Updated: 23 Jul 2014 13:08 by ADMIN
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.


Completed
Last Updated: 12 Jun 2014 10:34 by ADMIN
To reproduce:
- Change some cell properties and export the grid.
- You will notice that the the changed properties are not exported. 
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: 05 Jun 2014 07:07 by ADMIN
User is not able to open the Filter Popup Dialog when filter items contains DBNULL Workaround: Replace the DBNULL values with empty strings in your datatable.
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)
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: 31 Mar 2014 10:16 by ADMIN
To reproduce: - Set the text of a GroupElement in the GroupElementFormatting event handler.
- Start the grid and resize a column for example.
- You will notice the the text is reverted to its original value.

Workaround:
- Use the following CustomGroupElement class: public class CustomGroupElement : PivotGroupElement { protected override void SynchronizeProperties() { base.SynchronizeProperties(); this.Text = "test"; } protected override Type ThemeEffectiveType { get { return typeof(PivotGroupElement); } } }
- you can replace the default element with the custom one in GroupElementCreating event handler: Private Sub radPivotGrid1_GroupElementCreating(sender As Object, e As PivotGroupElementCreatingEventArgs) e.GroupElement = New CustomGroupElement() End Sub
Completed
Last Updated: 28 Mar 2014 07:12 by ADMIN
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.
Completed
Last Updated: 27 Mar 2014 11:18 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: PivotGrid
Type: Bug Report
0
When a class implements ICustomTypeDescriptor or has a custom TypeDescriptor, the "Field chooser" in the RadPivotGrid displays the correct property display name, but the RadPivotFieldList does not.
Completed
Last Updated: 15 Feb 2014 11:03 by ADMIN
To reproduce:

1. Open QSF => Pivot => Printing example2. Click Print settings button3. Choose layout type  - Compact4. Click Preview button and will see that there is exception

WORKAROUND:

radPivotGrid1.PrintStyle = new MyPrintStyle();        

        
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;
        }
    }
}