void InitPivotLayoutSampleOlapDB(AsyncOperationResult result)
        {
            PivotGrid.RetrieveFields(FieldArea.FilterArea, false);
            if (PivotGrid.Fields.Count == 0)
            {
                InitializationCompletedCallback.Invoke(null);
                return;
            }
            PivotGrid.BeginUpdate();
            PivotGridField fieldProduct       = PivotGrid.Fields[CategoryFieldName],
                           fieldYear          = PivotGrid.Fields[YearFieldName],
                           fieldTotalCost     = PivotGrid.Fields[TotalCostFieldName],
                           fieldFreightCost   = PivotGrid.Fields[FreightFieldName],
                           fieldOrderQuantity = PivotGrid.Fields[QuantityOrderFieldName];

            PivotGrid.Groups[1].Caption = "Calendar";
            PivotGrid.Groups[2].Caption = "Products";

            fieldProduct.Area           = FieldArea.RowArea;
            fieldYear.Area              = FieldArea.ColumnArea;
            fieldYear.SortOrder         = FieldSortOrder.Descending;
            fieldTotalCost.Width        = DefaultFieldWidth;
            fieldTotalCost.CellFormat   = "c2";
            fieldFreightCost.Width      = DefaultFieldWidth;
            fieldFreightCost.CellFormat = "c2";
            fieldOrderQuantity.Width    = DefaultFieldWidth;

            fieldProduct.Visible       = true;
            fieldYear.Visible          = true;
            fieldTotalCost.Visible     = true;
            fieldFreightCost.Visible   = true;
            fieldOrderQuantity.Visible = true;

            PivotGrid.EndUpdateAsync(ExpandAll);
        }
        void InitPivotLayoutGeneratedDB(AsyncOperationResult result)
        {
            PivotGrid.BeginUpdate();
            PivotGridField fieldSalesPerson = CreatePivotGridField("SalesPersonName", "Sales Person", FieldArea.RowArea);
            PivotGridField fieldCustomer    = CreatePivotGridField("CustomerName", "Customer", FieldArea.FilterArea);
            PivotGridField fieldQuantity    = CreatePivotGridField("Quantity", "Quantity", FieldArea.DataArea);
            PivotGridField fieldUnitPrice   = CreatePivotGridField("UnitPrice", "Unit Price", FieldArea.DataArea);

            fieldUnitPrice.SummaryType         = FieldSummaryType.Average;
            fieldUnitPrice.ShowSummaryTypeName = true;
            PivotGridField fieldOrderID       = CreatePivotGridField("OrderID", "Order ID", FieldArea.FilterArea);
            PivotGridField fieldCategory      = CreatePivotGridField("CategoryName", "Category", FieldArea.RowArea);
            PivotGridField fieldProduct       = CreatePivotGridField("ProductName", "Product", FieldArea.RowArea);
            PivotGridField fieldOrderDateYear = CreatePivotGridField("OrderDate", "Year", FieldArea.ColumnArea);

            fieldOrderDateYear.GroupInterval = FieldGroupInterval.DateYear;
            PivotGridField fieldOrderDateMonth = CreatePivotGridField("OrderDate", "Month", FieldArea.ColumnArea);

            fieldOrderDateMonth.GroupInterval = FieldGroupInterval.DateMonth;
            PivotGridField fieldPrice = new PivotGridField();

            fieldPrice.Area        = FieldArea.DataArea;
            fieldPrice.Caption     = "Price";
            fieldPrice.UnboundType = FieldUnboundColumnType.Decimal;

            fieldQuantity.Width  = DefaultFieldWidth;
            fieldUnitPrice.Width = DefaultFieldWidth;
            fieldPrice.Width     = DefaultFieldWidth;

            PivotGrid.Fields.AddRange(new PivotGridField[] { fieldSalesPerson, fieldCustomer, fieldQuantity, fieldUnitPrice,
                                                             fieldOrderID, fieldCategory, fieldProduct, fieldOrderDateYear, fieldOrderDateMonth, fieldPrice });
            PivotGrid.Groups.Add(fieldOrderDateYear, fieldOrderDateMonth);

            fieldPrice.UnboundExpression = "[" + fieldQuantity.ExpressionFieldName + "] * [" + fieldUnitPrice.ExpressionFieldName + "]";
            PivotGrid.EndUpdateAsync(InitializationCompletedCallback);
        }